0

こんにちは、私が書いている暗号化プログラムの一種のメニューを書いています。私はそれのコアを完成させたので、今はそのための GUI を作成してみたいと思っています。最初のメニューのコードは次のとおりです。

package matrix_with_GUI;

import javax.swing.*;
import java.awt.event.* ;
import java.awt.* ;

public class Main_Menu extends JFrame implements ActionListener{
     private JButton action1 = new JButton ("");
     private JButton action2 = new JButton ("");
     private JPanel pane = new JPanel();
     private JLabel lbl;

public static void main(String[] args) {
    Main_Menu main = new Main_Menu();
}

public Main_Menu(){
    super();
    JPanel pane=new JPanel();
    setTitle ("Start Menu") ;
    JFrame frame = new JFrame("");

    setVisible(true);
    setSize (380, 260) ;
    setLocation (450, 200) ;
    frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE) ;

    action1 = new JButton("Start");
    action2 = new JButton("Exit");
    lbl = new JLabel ("Welcome to the Matrix Encoder/Decoder!!!");
    setLayout(new FlowLayout());

    add (lbl) ;
    add(action1, BorderLayout.CENTER);
    action1.addActionListener (this);
    add(action2, BorderLayout.CENTER);
    action2.addActionListener (this);
}
@Override
public void actionPerformed(ActionEvent event) {
    // TODO Auto-generated method stub
    OptionsMenu x = new OptionsMenu();
    if (event.getSource() == action1)
    {
        System.exit(0);
        x.OptionsMenu();
    }
    else if(event.getSource() == action2){
      System.exit(0);
    }

}

スタート ボタンをクリックすると、新しいメニューが正常に表示されますが、最初のメニューは開いたままです。この最初のメニューを閉じて、最初のボタン クリックで 2 番目のメニューを開く方法はありますか? 私はGUIに非常に慣れていないので、最も簡単な解決策が非常に役立ちます。ちなみに、スタートボタンを次の行に移動する簡単な方法はありますか? ありがとう

4

2 に答える 2

2

2 つのオプションがあります。ウィンドウ リスナーを使用するか、dispose() メソッドを使用できます。dispose() を実行するには、次のように入力します

* This is better to be used with subframes and 2nd level windows.*

this.dispose();

または、ウィンドウリスナーの使用については、このリンクを確認してください

JFrame を閉じる

于 2013-06-09T17:10:40.103 に答える
1

Main_Menu を閉じるには、disposeメソッドを呼び出すだけです。

this.dispose();

を呼び出す代わりにSystem.exit(0)、JVM を完全に終了します。

于 2013-06-09T17:08:09.320 に答える