2016-12-21 16 views
-1

これは何千回も尋ねられたことがわかっていますが、私にとってはうまくいく答えが見つかりませんでした。私はJava Developers(Eclipse Kepler)用のJava IDEを使用しています。新しいJFrameを開くときにJButton経由でJFrameを閉じる

ボタンをクリックすると、ボタンがオンになっているJFrameが閉じられ、別のクラスに存在する新しいボタンが開きます。私は何のactionPerformed後に置く見当がつかない

 JButton button = new JButton("Click Me!"); 
 
     add(button); 
 
     
 

 
     button.addActionListener(new ActionListener() 
 
     { 
 
      public void actionPerformed(ActionEvent e) { 
 

 
      } 
 
     }); 
 
     
 
    }

:私はこれを持っています。そして、frame.dispose();私のために働かない。

JButtonでJFrameを閉じるにはどうすればいいですか?同じボタンをクリックすると、新しいクラスのJFrameも開きますか?ここで

+1

'frame.setVisible(偽);' frame'変数が実際に適切なウィンドウを指している場合、 '、動作するはずです。新しいJFrameを開くには、 'setVisible(true)'を呼び出します。 – markspace

+0

まず、新しいJFrameを作成し、現在のフレームを廃棄する必要があります。 –

+0

フレームの内容を非表示にするだけです。 – Fletch614

答えて

0

を助けるかもしれない例です:

import java.awt.BorderLayout; 
import java.awt.Dimension; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 

import javax.swing.*; 

public class MyFrame extends JFrame { 

    public MyFrame() { 

     setLayout(new BorderLayout()); 
     getContentPane().setPreferredSize(new Dimension(400, 250)); 

     JButton btn = new JButton("Click Me"); 
     btn.addActionListener(new ActionListener() { 
      public void actionPerformed(ActionEvent e) { 
       setVisible(false); 

       JFrame frame2 = new JFrame(); 
       frame2.setDefaultCloseOperation(EXIT_ON_CLOSE); 
       frame2.setLocation(300, 150); 
       frame2.add(new JLabel("This is frame2.")); 
       frame2.setVisible(true); 
       frame2.setSize(200, 200); 

      } 
     }); 
     add(btn,BorderLayout.SOUTH); 

    } 

    public static void main(String[] args) { 
     SwingUtilities.invokeLater(new Runnable() { 
      @Override 
      public void run() { 
       MyFrame frame = new MyFrame(); 
       frame.setDefaultCloseOperation(EXIT_ON_CLOSE); 
       frame.pack(); 
       frame.setLocation(150, 150); 
       frame.add(new JLabel("This is frame1."), BorderLayout.NORTH); 
       frame.setVisible(true); 
      } 
     }); 
    } 
} 
+1

はい!これは完全に動作します!どうもありがとうございました!あなたは命の恩人です – Fletch614

関連する問題