gpt4 book ai didi

java - 如何可视化 Swing 控件中的焦点?

转载 作者:行者123 更新时间:2023-12-01 13:43:29 25 4
gpt4 key购买 nike

我有一些 Swing 控件,它不显示它是否有焦点(实际上,这是 PCanvas ,但这可能并不重要)。

现在我想让这个控件显示它是否获得焦点。

我期望有两个选择:

1) Swing 中的任何控件都能够显示焦点,但此功能默认处于关闭状态。那么如何开启呢?

2)控件默认不显示焦点,那怎么办?我可以覆盖 paintBorder,但我应该做其他事情吗?

最佳答案

为此,您可以使用 FocusListener例如:

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;

import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextField;

public class Example extends JFrame {

public Example() {
JButton button = new JButton("btn");
add(button,BorderLayout.WEST);
JTextField field = new JTextField(5);
field.addFocusListener(new FocusListener() {

@Override
public void focusGained(FocusEvent arg0) {
((JTextField)arg0.getComponent()).setBorder(BorderFactory.createLineBorder(Color.RED));
}

@Override
public void focusLost(FocusEvent arg0) {
((JTextField)arg0.getComponent()).setBorder(null);
}
});

add(field,BorderLayout.EAST);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
pack();
setVisible(true);
}


public static void main(String[] args) {
new Example();
}
}

enter image description here

关于java - 如何可视化 Swing 控件中的焦点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20516320/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com