问题
I'm trying to dispose my JFrame by clicking a button, located on a JPanel that is placed on the JFrame that I want to close.
I tried to make a static method on the JFrame class, but ofcourse my IDE told me that wasn't going to happen.
Anyone thinking of a solution?
Thanks!
回答1:
Try this:
public class DisposeJFrame extends JFrame{
JPanel panel = new JPanel();
JButton button = new JButton("Dispose JFrame");
public DisposeJFrame(){
super();
setTitle("Hi");
panel.add(button);
add(panel);
pack();
button.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent arg0) {
dispose();
}
});
}
public static void main(String args[]){
SwingUtilities.invokeLater(new Runnable(){
public void run(){
DisposeJFrame jf = new DisposeJFrame();
jf.setVisible(true);
}
});
}
}
回答2:
Do something like this:
JButton closeFrameButton = new JButton("Close");
closeFrameButton.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
((Window) getRootPane().getParent()).dispose();
}
});
来源:https://stackoverflow.com/questions/2358296/disposing-jframe-by-clicking-from-an-inner-jpanel