我正在为我正在编程的游戏设计图形,我想知道是否有一种简单的方法可以在单击 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);
}
});
不要创建一个新的JFrame,永远不要创建一堆 JFrame,必须计算 with OutOfMemoryException
,因为这Object
永远不会被 GC 处理,
让多个视图使用CardLayout
查看答案多个 JFrame 的使用,好的/坏的做法?经过@Andrew Thompson
你可以这样做:
label.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e)
{
JPanel j = new JPanel();
frame.setContentPane(j);
}
});
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 .