2014-07-25 21 views
0

我需要帮助这个代码,我试图做一个简单的cookie点击器类型的游戏,我已经完成了大部分代码,但由于某种原因,当我尝试添加JLabel的框架,它创造了一个错误,我希望你们中的一个人能够帮助我,我对Java相当陌生,感谢您的帮助!我想要一个JLabel出现后按JButton

//Variables 
static int clicked = 0; 
private FlowLayout layout; 
private Container container;  

public static void main(String [] args) { 

    //Declaring the buttons, panels, etc... 
    JButton button = new JButton("Click"); 
    JPanel panel = new JPanel(); 
    panel.add(button); 

    final JFrame frame = new JFrame("Button Pressed"); 
    frame.setSize(400, 200); 
    frame.setVisible(true); 
    frame.setDefaultCloseOperation(EXIT_ON_CLOSE); 
    frame.add(panel); 

    //Action Listener Code 
    button.addActionListener(new ActionListener() { 

     public void actionPerformed(ActionEvent e) { 
      //Execute when button is pressed 
      clicked++; 
      System.out.println("Button pressed " + clicked + " times!"); 
     } 
    }  
} 

回答

1

您可以添加JLabel然后更新它的文本按钮被点击时。

说明:最后在调用JFrame.setVisible(true)时添加所有组件。

示例代码:

// Declaring the buttons, panels, etc... 
JButton button = new JButton("Click"); 
final JLabel label = new JLabel(); 

button.addActionListener(new ActionListener() { 

    @Override 
    public void actionPerformed(ActionEvent arg0) { 
     clicked++; 
     label.setText("Button pressed " + clicked + " times!"); 
    } 
}); 

JPanel panel = new JPanel(); 
panel.add(button); 
panel.add(label); 

final JFrame frame = new JFrame("Button Pressed"); 
frame.setDefaultCloseOperation(EXIT_ON_CLOSE); 
frame.add(panel); 
frame.setVisible(true); 

找到更多的例子herehere

+0

非常感谢的人! – Mrsoldier3201

+0

不客气。 – Braj

+0

@ Mrsoldier3201你应该接受答案,如果它真的帮助你:) –

1

基本原理比较简单。为了向其他东西添加内容,首先需要访问(或引用)您要添加的内容。

虽然有很多方法可以实现这一点,但最简单的方法可能是使用实例/类字段。然后,该场将在类内的任何地方访问,例如

import java.awt.EventQueue; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 
import javax.swing.JButton; 
import javax.swing.JFrame; 
import static javax.swing.JFrame.EXIT_ON_CLOSE; 
import javax.swing.JLabel; 
import javax.swing.JPanel; 
import javax.swing.UIManager; 
import javax.swing.UnsupportedLookAndFeelException; 

public class ClickTest { 

    public static void main(String[] args) { 
     new ClickTest(); 
    } 

    private JPanel panel; 

    public ClickTest() { 
     EventQueue.invokeLater(new Runnable() { 
      @Override 
      public void run() { 
       try { 
        UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); 
       } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException ex) { 
       } 

       //Declaring the buttons, panels, etc... 
       JButton button = new JButton("Click"); 

       panel = new JPanel(); 
       panel.add(button); 

       final JFrame frame = new JFrame("Button Pressed"); 
       frame.setSize(400, 200); 
       frame.setVisible(true); 
       frame.setDefaultCloseOperation(EXIT_ON_CLOSE); 
       frame.add(panel); 

       button.addActionListener(new ActionListener() { 
        @Override 
        public void actionPerformed(ActionEvent e) { 
         panel.add(new JLabel("You clicked me")); 
         panel.revalidate(); 
        } 
       }); 
      } 
     }); 
    } 
} 

看看Creating a GUI With JFC/SwingUnderstanding Class Members更多细节

相关问题