2012-10-12 23 views
5

私はJava関連の一般的な質問があります。JavaでGUIを更新するにはどうすればよいですか?

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

私はする必要があります:

  1. がウィンドウ全体を再描画またはちょうどでその部分を更新:GUIが..です上記の私は#1からのステートメントを使用している場合

    setVisible(true)? 
    
  2. 私はそれを上にマウスを移動し、私は前のボタンの選択を参照してください。私は間違って何をしていますか?

+0

paint()メソッドがあると思われます – amphibient

+0

repaint()はおそらくあなたがwnatと書いています – jozefg

+0

私はrepaint()メソッドを試してみましたが、全く動作しませんでした。私はsetVisible(true)を試してみたところ、どちらもうまくいきませんでした。 – ironmantis7x

答えて

6

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

また、this postをチェックアウトすることもできます。最初のレスポンスはかなり良い説明があり、さらに詳細な記事へのリンクがあります。

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

+1

repaint()またはdoLayout()を使用するには、何をインポートする必要がありますか? – ironmantis7x

+0

余分なものをインポートする必要はありません。使用しているSwingコンポーネントのメソッドにする必要があります。http://docs.oracle.com/javase/6/docs/api/java/awt/Componentを参照してください。 .html。 Componentのサブクラスには、これらのメソッドを使用できるようにする必要があります。 – shortstuffsushi

+0

doLayoutを直接呼び出すのは避けてください。これがうまくいっていれば、あなたは間違ったことをしただけです。 doLayoutはあなたの現在のコンテナだけをさらに効果的にするはずです。代わりに、代わりにinvalidateを使用してください – MadProgrammer

0

最上位コンポーネントのrevalidate()を呼び出します。

+0

私はJavaに慣れていますので、私には気をつけてください....正確にどのように私はrevalidate()を最上位コンポーネントで呼び出しますか? repaint()の後に挿入しようとするたびに、コンパイラエラーが発生します。 – ironmantis7x

4

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

  1. '中央のグループ化' にパネルを置きます。
  2. パネルにはCardLayoutを使用してください。
  3. AndroidのコントロールをiOS &の両方をカードレイアウトのパネルに追加します。
  4. 必要に応じてそれらの間をフリップします。
関連する問題