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