[英]close JFrame on button click
我正在制作菜單系統。 我遇到了一個問題。每當我按下按鈕移至下一個菜單時,舊的JFrame就會在新菜單的后面保持打開狀態。 代碼是:
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
MainMenu frame = new MainMenu();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public MainMenu() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
JButton btnStart = new JButton("Start Game");
btnStart.setBounds(154, 82, 126, 23);
contentPane.add(btnStart);
JLabel lblBattleKoalas = new JLabel("Battle Koalas");
lblBattleKoalas.setFont(new Font("Times New Roman", Font.BOLD, 35));
lblBattleKoalas.setBounds(121, 11, 219, 48);
contentPane.add(lblBattleKoalas);
JButton btnNewButton = new JButton("Player Menu");
btnNewButton.setBounds(154, 116, 126, 23);
contentPane.add(btnNewButton);
btnStart.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Game.main(null);
}
});
btnNewButton.addActionListener(new DispPlayer());
}
static class DispPlayer implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
PlayerMenu.main(null);
//Close Current Frame Here
}
}
}如何關閉MainMenu並打開PlayerMenu? 任何幫助將是巨大的!
setVisile(boolean b)
方法不僅用於使幀顯示,還可以使用它使它們消失。 例如,如果frame是您的MainMenu對象,則可能要調用frame.setVisible(false);
當有人按下您想要的按鈕時。
因此,讓我們考慮您的按鈕為btn
,您的第一個菜單為oldMenu
,而您要顯示的菜單為newMenu
。 我相信你可以寫:
btn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
oldMenu.setVisible(false);
//don't forget to create the new menu
newMenu.setVisible(true);
}
}
我發現了我的問題。 我需要做MainMenu.this.dispose();
訪問JFrame
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.