我有一个JFrame,我有时需要隐藏,然后再次可见。我注意到,只要发生这种情况,它会在屏幕上移动一点。我甚至通过剥离除JFrame之外的所有代码来测试为什么会发生这种情况,并调用setVisible(false),然后是true,并且发生了同样的事情。 这是一个最小的例子,我包括OK按钮来表示我想在使框架不可见和可见之间完成的其他事情:
public class CopyOfPanel {
private JFrame frame;
private JButton buttn; //the ok button
public CopyOfPanel(){
frame = new JFrame();
OKHandler ok = new OKHandler();
buttn = new JButton("OK");
buttn.addActionListener(ok); //add the listener
frame.add(buttn);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(600,400);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
public static void main (String[] args){
CopyOfPanel copy = new CopyOfPanel();
}
private class OKHandler implements ActionListener { //for the ok button
public void actionPerformed(ActionEvent event){
frame.setVisible(false);
frame.setVisible(true);
}}
}
请问这是否易于预防?