Java 関連の一般的な質問があります。
GUI メニューを持つアプリケーションを作成しています。ラジオ ボタンの選択に基づいて、GUI メニューの一部を変更しようとしています。
する必要がありますか:
ウィンドウ全体を再描画するか、その部分を次のように更新します。
setVisible(true)?
上記の #1 のステートメントをそのまま使用すると、GUI は問題ありません。マウスをその上に移動すると、前のボタンの選択が表示されます。私は何を間違っていますか?
Java 関連の一般的な質問があります。
GUI メニューを持つアプリケーションを作成しています。ラジオ ボタンの選択に基づいて、GUI メニューの一部を変更しようとしています。
する必要がありますか:
ウィンドウ全体を再描画するか、その部分を次のように更新します。
setVisible(true)?
上記の #1 のステートメントをそのまま使用すると、GUI は問題ありません。マウスをその上に移動すると、前のボタンの選択が表示されます。私は何を間違っていますか?
Swing コンポーネントには、repaint()、revalidate()、および doLayout() メソッドがあります。それらの 1 つは、おそらく必要な部分を再描画できるはずです。ただし、doLayout はユーザーが責任を負うべきものではなく、レイアウト エンジンの責任です。
また、この投稿をチェックすることもできます。最初の応答には、かなり適切な説明と、より詳細な記事へのリンクがあります。
あなたの質問の 2 番目の部分に関しては、よくわかりませんが、アイデアを得るためにいくつかのコードを確認する必要があるかもしれません。「置換された領域」は実際にビューから削除されていますか?
..私のアプリケーションでは、ユーザーはトップ テストを行うデバイス プラットフォームの種類を選択します (その選択は、左側にある 2 つのラジオ ボタンのセットです)。ユーザーが Android または iOS のいずれかを選択すると、チェック ボックスの中央のグループが変更され、テストできる Android デバイスのグループまたはテストできる iOS デバイスのグループが反映されます。
CardLayout
パネルには a を使用します。revalidate()
トップレベルのコンポーネントを呼び出します。