プログラミングしているゲームのグラフィックをデザインしていますが、JLabelが気に入ったときにフレームを開く簡単な方法があるかどうか知りたいですか?
このための簡単なコードはありますか?
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);
}
});
ラベルを作成し、それにクリックイベントを追加します。
このようなもの :
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);
}
});
あなたはこのようにすることができます:
label.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e)
{
JPanel j = new JPanel();
frame.setContentPane(j);
}
});
新しい JFrame を作成しないでください。JFrameの束は決してありません。このOutOfMemoryException
はGCされないため、Object
で計算する必要があります。
複数のビューを使用する場合 CardLayout
回答を参照してください 複数のJFrameの使用、良い/悪い習慣? by @Andrew Thompson
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 .