Java 单击JLabel以打开新帧
我正在为我正在编程的游戏设计图形,我想知道当一个JLabel被点击时,是否有一种打开框架的简单方法 有简单的代码吗Java 单击JLabel以打开新帧,java,swing,frame,jlabel,mouselistener,Java,Swing,Frame,Jlabel,Mouselistener,我正在为我正在编程的游戏设计图形,我想知道当一个JLabel被点击时,是否有一种打开框架的简单方法 有简单的代码吗 实现MouseListener界面,并使用它mouseClicked方法处理JLabel上的点击 label.addMouseListener(new MouseAdapter() { public void mouseClicked(MouseEvent e) { // you can open a new frame here as
实现
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);
}
});
你可以这样做:
label.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e)
{
JPanel j = new JPanel();
frame.setContentPane(j);
}
});
创建标签并在其中添加单击事件 大概是这样的:
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);
}
});
- 不要创建一个新的、从不使用JFrames的堆,必须使用
进行计算,因为这个OutOfMemoryException
永远不会被GC'ed对象
- 供多个视图使用
- 请参见安德鲁·汤普森的回答
MouseListener
界面,在mouseClicked(MouseEvent e)
中使用e.getSource()==您的标签检查单击的来源,并在那里创建新的框架。它们实际上是没有背景和边框的按钮。标签不是为那个用例设计的,并且将更难适应游戏的未来需求。标签甚至没有焦点。如果您关心的话,它们的可访问性支持不适合您的用例。最后,作为旁注,我不会在图纸上绘制文本,特别是如果部分内容与文本颜色相同。我认为开发一个定制的外观和感觉会比在游戏的许多部分重复使用标签技巧更少痛苦…正如建议的,这里应该考虑卡片布局
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 .