web-dev-qa-db-ja.com

JLabelをクリックして新しいフレームを開く

プログラミングしているゲームのグラフィックをデザインしていますが、JLabelが気に入ったときにフレームを開く簡単な方法があるかどうか知りたいですか?

このための簡単なコードはありますか?

enter image description here

10
user1992697

MouseListenerインターフェースを実装し、それをmouseClickedメソッドを使用して、JLabelのクリックを処理します。

label.addMouseListener(new MouseAdapter()  
{  
    public void mouseClicked(MouseEvent e)  
    {  
       // you can open a new frame here as
       // i have assumed you have declared "frame" as instance variable
       frame = new JFrame("new frame");
       frame.setVisible(true);

    }  
}); 
23
Robin Chander

ラベルを作成し、それにクリックイベントを追加します。

このようなもの :

JLabel click=new JLabel("Click me");

 click.addMouseListener(new MouseAdapter() {
        public void mouseClicked(MouseEvent e) {
           JFrame jf=new JFrame("new one");
        jf.setBackground(Color.BLACK);
        jf.setSize(new Dimension(200,70));
        jf.setVisible(true);
        jf.setDefaultCloseOperation(EXIT_ON_CLOSE);
        }
    });
2
Arpit

あなたはこのようにすることができます:

label.addMouseListener(new MouseAdapter()   {   

        public void mouseClicked(MouseEvent e)   
        {   
              JPanel j = new JPanel();
              frame.setContentPane(j);
        }   
});
1
Vuk Vasić
  • 新しい JFrame を作成しないでください。JFrameの束は決してありません。このOutOfMemoryExceptionはGCされないため、Objectで計算する必要があります。

  • 複数のビューを使用する場合 CardLayout

  • 回答を参照してください 複数のJFrameの使用、良い/悪い習慣? by @Andrew Thompson

1
mKorbel
1:- Implement your class containing the JLabel with MouseListener interface
2:- add MouseListener to your JLabel 
3:-Override mouseClicked Event in your class
4:- In mouseClicked Even't body add your code to open a new JFrame/Frame .
0
c.pramod