1

ユーザーがボタンを押すたびに、カウンターamountWrongGuessedは1ずつ増加します(を使用したテストで正しく機能しますSystem.prinln

しかし、ボタンを押すたびにラベルでこれを更新するにはどうすればよいですか?

この値を返すプロパティを作成しました。

 public int getAmountGuessed(){
    return amountGuessed;
}

次に、ラベルの値を取得しようとしますが、値は常に0のままです。

lblAmountGuessDisplay = new JLabel(String.valueOf(hg.getAmountGuessed()));


private void UpdateComponents()
{
      lblAmountGuessDisplay.setText(String.valueOf(hg.getAmountGuessed()));
}/*updateComponents*/
4

4 に答える 4

1

このは、ボタンがクリックされるたびにラベルを更新する 1 つの方法を示しています。

于 2010-11-28T12:42:45.793 に答える
1

スレッドの問題である可能性があります。こちらをご覧ください。

于 2010-11-28T12:43:56.090 に答える
1

質問に答えるのに十分な情報を投稿していないこと、および参照の問題である可能性があること、および変更しようとしている JLabel がプログラムに表示されるものではないことについて、Fredrick に同意します。より多くのコードを投稿すると、適切な回答が得られる可能性が高くなります。また、これはスレッド化の問題のような匂いはしません。

于 2010-11-28T12:56:13.407 に答える
1

ActionListenerボタンに を追加する必要があります。ActionListenerボタンが押されたことが に通知されると、カウンタをインクリメントして を更新できますJLabel。メソッドはactionPerformedEDT でトリガーされるため、スレッド化に問題はありません。

lblAmountGuessDisplay.addActionListener( new ActionListener() {
       public void actionPerformed(ActionEvent ae) {
            hg.incrementAmountGuessed();
            lblAmountGuessDisplay.setText(String.valueOf(hg.getAmountGuessed()));
       }
} 

おそらくメソッドを実装する必要がありincrementAmountGuessedます(そもそもこれが問題の原因である可能性があります)。

于 2010-11-28T13:55:33.680 に答える