2011-11-07 125 views
0

我的问题似乎很简单,但我一直坚持了几个月;现在这是一项任务要求,从现在起两天后,我必须放弃并寻求帮助。通过按钮重画框架/标签

基本上,我有一个int变量(称为分数这里),并且改变这个变量的值的按钮;这工作。但是我也显示Score的现值,并且我希望它改变来表示值。然而,它保持在0,并且根本不会改变。

我做了一段代码尽可能简单(实际项目中有大约15个文件),其中包括这个问题:显示得分值的按钮,并增加它。如果有人可以给我如何有显示的数值是一样的变量的值的解决方案,那将是巨大的:)

import java.awt.*; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 
import javax.swing.*; 

public class Main extends JFrame { 
public static void main (String [] args) { 
new Main(); 
} 

public Main() { 
setLocation (100, 100); 
setSize (200, 200); 
setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE); 
Container content = getContentPane(); 
content.add (new CrisButton()); 
setVisible (true); 
} 

public class CrisButton extends JButton implements ActionListener{ 

    public int Score; 
    CrisButton(){ 
     setText(""+Score); 
     addActionListener(this); 
    } 

    public void actionPerformed(ActionEvent e){ 
     System.out.println("Score="+Score); 
     Score=Score+2; 
     this.repaint(); 
    } 
} 

} 

回答

2

您必须使用this.setText(“” +分数);

得分不作为指针,所以值永远不会改变。 您必须每次都传递一个全新的字符串。

+0

哈哈,那是可笑容易,我很惭愧..感谢很多关于快回答! –

2

您的假设是,由于JButton的文本是使用Score变量创建的(它应该以小写字母开头并命名为“score”以符合已批准的Java命名约定),因此更改分数值JButton的文本值,但不会发生。你需要通过setText自己设置JButton的文本来改变它的文本。

+0

感谢您的快速回答,它工作:) –