1
这是我的代码:的Java JScrollPane的问题
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
,但我无法弄清楚如何使我的框架有效。
为什么在你的上下文中这很重要?当您的监听器被调用时,机会验证更新尚未准备好。 – kleopatra 2012-04-01 14:12:47