gpt4 book ai didi

java JScrollPane问题

转载 作者:行者123 更新时间:2023-11-30 04:50:29 25 4
gpt4 key购买 nike

这是我的代码:

public class JJD extends JFrame {

/**
*
*/
private static final long serialVersionUID = 1L;

public JJD() {
super("test");

JPanel center = new JPanel();
center.setBackground(Color.red);
JScrollPane pane = new JScrollPane(center);

this.getContentPane().add(pane, BorderLayout.CENTER);
final JFrame fr = this;
this.addWindowFocusListener(new WindowFocusListener() {

@Override
public void windowLostFocus(WindowEvent arg0) {
// TODO Auto-generated method stub

if (fr.isValid()) {
System.out.println("FOCUS VALID!");
} else {
System.out.println("Focus INVALID");
}
}

@Override
public void windowGainedFocus(WindowEvent arg0) {
// TODO Auto-generated method stub

}
});

this.setVisible(true);
this.setSize(500, 500);
}

public static void main(String[] args) {
// TODO Auto-generated method stub
JFrame fr = new JJD();
fr.validate();

}

}

你能告诉我为什么监听器打印出我的框架无效吗?我还尝试了其他方法,例如 pack() revalidate(),但监听器仍然打印出我的框架无效。

提示:问题是由于 JScrollPane 造成的,但我不知道如何使我的框架有效。

最佳答案

我认为这可能是因为您没有重写 windowsGainedFocus 方法。

public void windowGainedFocus(WindowEvent arg0) {
if (fr.isValid()) {
System.out.println("FOCUS VALID!");
} else {
System.out.println("Focus INVALID");
}
}

您可以像另一个一样覆盖它并查看它是否有效。如果不起作用,您可以在 else 子句中添加 fr.validate() 方法调用。我希望这会有所帮助。

关于java JScrollPane问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9963459/

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