4

netbeans を使用して Java デスクトップ アプリケーションの作業を開始しました。私は7つの異なる画面を持っており、それらを表すために使用していJPanelます。それらのそれぞれを表す 1 つの JPanel と、JFrame 内にあるそれらすべて (mainPanel という名前) を含む 1 つの JPanel。mainPanel はCardlayout、画面(JPanels)を切り替える目的で使用します。このインターフェイスはすべて、netbeans ui ウィジェット、つまりドラッグ ドロップを使用して構築しました。

レイアウト

JFrame
    mainPanel (Jpanel) CardLayout
        Child1 (JPanel)
        Child2 (JPanel)
        .
        .
        .
        .
        Childn (Jpanel)

JPanel.next()と を使用して画面を切り替えることができることを知っていJpanel.previousます。ただし、これらは、連続する画面間で切り替えが行われる場合、つまりすぐ隣の画面に切り替えなければならない場合にのみ使用できます。特定の画面に移動する方法もありJPanel.show()ますが、問題は、関数を使用して mainPanel に追加するときに関連付けるパラメーターnameを取ることです。ドラッグアンドドロップを使用してすべてを追加したので、関連付けられている場合、何が関連付けられるかわかりません。非常にプリミティブに見えますが、今回は Cardlayout なしで実行しましたが、Cardlayout は必須です。StringJPanel.add()StringCardlayout

ヘルプは非常に高く評価されます

4

3 に答える 3

6

このでは、JComboBoxカードを変更するために a を使用しています。この例はJPanel名前を追加するように拡張されていますが、代わりにメソッドとメソッドComponentがあります。この関連する回答も参照してください。getName()setName()

画像

于 2012-09-10T11:38:42.137 に答える
5

ええと...答えがわかりました。問題は、インターフェイスを介して何かを追加すると、デフォルトで非表示になっているコードが自動生成されることです。そのため、関連付けられた文字列の自動生成コードを調べる必要がありました。デフォルトでは、card1、card2、card3 などです。

Trashgod による回答の例は、まさに私が望むものですが、私が望む方法ではありません。カスタム Jpanel で文字列を手動で関連付けました。しかし、自動生成されたコードを調べることを考えさせられました。それでは、どうもありがとうございました:)

今私がする必要があるのは次のようなものです

 mainPanel.show (gameHome, "Card3");
于 2012-09-10T11:56:08.960 に答える
3

別の方法として、 ViewSwitcherを使用します。

ここでやろうとしていることにより適しています。

于 2012-09-10T13:08:23.827 に答える