java,swing,awt,从所有对象中删除焦点

时间:2010-12-09 23:49:06

标签: java

我正在为学校做这个项目,由于某种原因,我的一个面板中的按钮之一有焦点(我可以用标签按钮改变它)好吧按钮的重点是表现得很奇怪。

有没有办法让我没有按钮有焦点?即。标签按钮没有选择任何内容?

注意Rectangle按钮周围有一条虚线。我想让它消失。

谢谢! alt text

4 个答案:

答案 0 :(得分:11)

button.setFocusable(false);

答案 1 :(得分:5)

如果您只是希望它不显示虚线,您也可以使用

button.setFocusPainted(false);

该按钮仍然可以对焦,但您不会看到虚线。

答案 2 :(得分:0)

如果您不希望任何事情成为焦点,则可以使用:

button.getRootPane().requestFocus();

使用setFocusable会将焦点移至下一个可聚焦的组件。

答案 3 :(得分:0)

public void removeFocusFromAllObjects(Container container) {
    container.setFocusable(false);
    for (Component child : container.getComponents()) {
        if (child instanceof Container) {
            removeFocusFromAllObjects((Container) child);
        } else {
            child.setFocusable(false);
        }
    }
}

我已经编写了上面的代码来递归地从父组件内的所有组件中移除焦点。希望它对访问此帖子的人有用。