2011-11-07 85 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

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