我对 Java 还很陌生。我决定编写井字游戏代码作为练习(从头开始)。
无论如何,我试图在单击时更改“JLabel 标签”;从1,然后2,等等。最终,它会变成数字以外的东西。但是,目前,它适用于测试。
'System.out.println("点击次数:"+ mouseIn);'工作正常,并产生我想要的输出。控制台和 JFrame/JPanel/JLabel 的图片可以在这里看到:
(JFrame中的小1是JLabel。我想匹配控制台中的输出。
我已经用谷歌搜索,搜索,并尝试了我所知道的一切(这并不多!),但我无法让这该死的东西发挥作用......我只是寻求一些指导。 Main方法只包括JFrame/Panel的构建。
代码如下:
来自主类,称为(namone.java [将其命名为我自己的原因]):
public void run(JPanel p) //Takes panel from main method {
for(int i = 0; i < ticList.length; i++){
ticList[i] = new JButton(buttonText); //For every position in
//ticList[], create a JButton object
p.add(ticList[i]);
ticList[i].setPreferredSize(new Dimension(140,140));
ticList[i].addMouseListener(mouse); //Load mouseListner
}
//Set mouseIn to click value in MouseEvents Class
int mouseIn = mouse.getClicks();
//Set text value to text value in MouseEvents class
text = mouse.getText();
//Output...
System.out.println("Number of clicks: " + mouseIn); //For testing
String mouse = Integer.toString(mouseIn); //Convert mouseIn value (from MouseEvents.java) to mouse
JLabel label = new JLabel(); //New JLabel
p.add(label); //Add label to screen
label.setText(mouse); //Set the text of the label to value of mouse
System.out.println(mouse); //For testing
//So I can see if it's working (clicks wise)
}
然后是我的 MouseEvents.java 类中的代码:
public class MouseEvents extends namone implements MouseListener {
int clicks = 1;
String text = "first"; //For testing purposes
public namone game = new namone();
public int getClicks(){
return clicks;
}
public String getText(){
return text;
}
public int intToString(){
Integer.toString(clicks);
return clicks;
}
@Override
public void mouseClicked(MouseEvent e) {
clicks++;
intToString();
JPanel p = new JPanel();
text = "" + clicks;
game.run(p);
}
正如我所说。我对 Java 很陌生,我正在尝试学习如何用它开发应用程序。我确信这是我自己的无知造成的。
谢谢。
最佳答案
假设 mouse
是您编写的 MouseEvents 类型,一种可能性是您需要将 mouse.getText()
传递给对 label 的调用。 setText(.)
。
无论如何,你设置游戏的方式对我来说有点奇怪。每次有人点击时创建一个全新的 JPanel
的原因是什么?为什么不维护原来的 JPanel 并更新它呢。我个人会将一个自定义的 ActionListener 附加到每个 JButton,每次单击按钮时都会运行一些代码。如果这个ActionListener是一个内部类,它还可以查看JButton定义范围内的变量。
关于java - 如何解决应用程序中的 Java JLabel 问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25368339/