2012-03-17 14 views
1

私はデフォルトで1つのクラスを開いていますが、次にSwingボタンをクリックすると他のフォームを実行したいと思います。私は、Visual Basicを使用するために使用されると、それはとても簡単だった:Java Swingの2つのフォームクラス

Form2.Show() 

Form2.Hide() 

しかし、Javaで、私はそのような何かを見つけることができません。簡単にこれを行う方法はありますか?

ありがとうございます!

+4

あなたはこの提案を好まないかもしれないが、ユーザーがされます:スワップJFramesをしません。代わりに、1つのJFrameを表示して、「ビュー」をCardLayoutと入れ替えることを学びます。 –

答えて

2

ボタンを押して新しいフレームを表示させる方法を調べるには、以下を検討してください。

public static void main(String args[]) throws Exception { 
    new JFrame(){{ 
     setDefaultCloseOperation(DISPOSE_ON_CLOSE); 
     setSize(300,300); 
     setLocation(100,100); 
     setVisible(true); 
     setLayout(new BorderLayout()); 
     add(new JButton("PressToOpenNewFrame"){{ 
      addActionListener(new ActionListener(){ 
      public void actionPerformed(ActionEvent e) { 
       new JFrame(){{ 
        setDefaultCloseOperation(DISPOSE_ON_CLOSE); 
        setSize(300,300); 
        setLocation(200,200); 
        setVisible(true); 
        setLayout(new BorderLayout()); 
        add(new JButton("PressMeToBeep"){{ 
         addActionListener(new ActionListener(){ 
         public void actionPerformed(ActionEvent e) { 
         Toolkit.getDefaultToolkit().beep(); 
         }}); 
        }}, BorderLayout.SOUTH); 
       }}; 
      }}); 
     }}, BorderLayout.SOUTH); 
    }}; 
} 
+0

おかげでチャック!これは私をたくさん助けました! – Lucas

+0

[* double brace initialization *](http://stackoverflow.com/q/1958636/230513)も参照してください。 – trashgod

+0

setVisible(true);コンストラクタ内の最後のコード行でなければなりません – mKorbel

0

あなたは試すことができます:Form#setVisible(boolean)

関連する問題