6

Java 関連の一般的な質問があります。

GUI メニューを持つアプリケーションを作成しています。ラジオ ボタンの選択に基づいて、GUI メニューの一部を変更しようとしています。

する必要がありますか:

  1. ウィンドウ全体を再描画するか、その部分を次のように更新します。

    setVisible(true)?
    
  2. 上記の #1 のステートメントをそのまま使用すると、GUI は問題ありません。マウスをその上に移動すると、前のボタンの選択が表示されます。私は何を間違っていますか?

4

3 に答える 3

8

Swing コンポーネントには、repaint()、revalidate()、および doLayout() メソッドがあります。それらの 1 つは、おそらく必要な部分を再描画できるはずです。ただし、doLayout はユーザーが責任を負うべきものではなく、レイアウト エンジンの責任です。

また、この投稿をチェックすることもできます。最初の応答には、かなり適切な説明と、より詳細な記事へのリンクがあります。

あなたの質問の 2 番目の部分に関しては、よくわかりませんが、アイデアを得るためにいくつかのコードを確認する必要があるかもしれません。「置換された領域」は実際にビューから削除されていますか?

于 2012-10-12T19:29:51.317 に答える
4

..私のアプリケーションでは、ユーザーはトップ テストを行うデバイス プラットフォームの種類を選択します (その選択は、左側にある 2 つのラジオ ボタンのセットです)。ユーザーが Android または iOS のいずれかを選択すると、チェック ボックスの中央のグループが変更され、テストできる Android デバイスのグループまたはテストできる iOS デバイスのグループが反映されます。

  1. パネルを「センター グループ」に配置します。
  2. CardLayoutパネルには a を使用します。
  3. カード レイアウトを使用して、iOS と Android の両方のコントロールをパネルに追加します。
  4. 必要に応じてそれらの間を切り替えます。
于 2012-10-12T19:59:43.553 に答える
2

revalidate()トップレベルのコンポーネントを呼び出します。

于 2012-10-12T19:37:45.733 に答える