0

私は、基本的に配列から一定量の文字 (ABCDE など) を表示する単純な Java アプリケーションを実行しており、それぞれがグリッドの一部に表示されます。2 つのボタンがあり、1 つは文字を左にシフトします (したがって、1 つのシフトは BCDEA になり、右のシフトは EABCD になります)。

システム出力を使用してテストしたので、シフトと他のすべてが機能しています。しかし、ウィンドウをリフレッシュして、更新された JLabels を表示するにはどうすればよいでしょうか? シフトした後も、同じ (ABCDE) のままです。

ボタンの ActionListeners 内とそれらが呼び出す shift メソッドの両方で revalidate() と repaint() を試しましたが、何も起こりません。これに関するヒントはありますか?

4

1 に答える 1

2

revalidate() と repaint() を試しました

これらのメソッドは、新しいコンポーネントを作成し、そのコンポーネントを可視 GUI に追加する場合にのみ使用します。したがって、ラベルを表示したい新しい順序でラベルを削除/追加しようとしているようです。

おそらく、ラベルを同じ順序のままにして、各ラベルのテキストを変更するだけの方が簡単な方法です。その後、あなたがする必要があるのは

label.setText();

revalidate() と repaint() を呼び出さなくても、ラベルは自動的に再描画されます。

于 2013-06-20T00:08:25.623 に答える