2013-02-06 26 views
8

我正在设计一个我正在编程的游戏的图形,我想知道是否有一个简单的方法在JLabel被绑定时打开框架?单击一个JLabel打开一个新框架

有没有简单的代码呢?

enter image description here

+0

您可以用'MouseListener'界面和'的mouseClicked(的MouseEvent E)'使用'e.getSource检查点击来源()==你label',创造新那里的框架。 – kaysush

+0

它们实际上是没有背景和边框的按钮。标签不是针对该用例设计的,而且很难适应游戏未来的需求。标签甚至没有焦点。而且他们的可访问性支持对您的用例不合适,如果您关心这一点。最后,作为一个附注,我不会在一幅图上绘制文本,特别是如果它的一部分是文本的相同颜色。我认为在游戏的许多部分,开发自定义的外观和感觉不会很麻烦,而不是重复使用标签技巧。 – ignis

+0

...因为建议的卡片布局应该在这里考虑 –

回答

17

实现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); 

    } 
}); 
1

你可以是这样做的:

label.addMouseListener(new MouseAdapter() { 

     public void mouseClicked(MouseEvent e) 
     { 
       JPanel j = new JPanel(); 
       frame.setContentPane(j); 
     } 
}); 
1

创建一个标签,并在其中添加click事件。

事情是这样的:

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); 
     } 
    }); 
-1
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 . 
相关问题