ユーザーが希望する各ピザのカーナリズムを選択できるユーザーインターフェイスを作成したいと考えています。 そして私は上記のユーザーによってenterという値を使用するためにablになりたいと思います。スイングで複数のフィールドを作成してforループの値を使用する方法
(ユーザーによって前に定義)
JPanel panelComm2 = new JPanel();
String[] crust = Crust.names();
String[] size = Size.names();
String[] drink = Drink.names();
Box verticalBox = Box.createVerticalBox();
for(int i=0;i<nbPizza;i++){
Box horizontalBox = Box.createHorizontalBox();
JLabel crustJLabel = new JLabel("Crust Pizza "+ (i+1)+": ");
horizontalBox.add(crustJLabel);
JComboBox comboCrust = new JComboBox(crust);
horizontalBox.add(comboCrust);
JLabel sizeJLabel = new JLabel("Size Pizza "+ (i+1)+": ");
horizontalBox.add(sizeJLabel);
JComboBox comboSize = new JComboBox(size);
horizontalBox.add(comboSize);
verticalBox.add(horizontalBox);
}
for (int j=0;j<nbDrink;j++){
Box horizontalBox = Box.createHorizontalBox();
JLabel drinkJLabel = new JLabel("Drink "+ (j+1) +": ");
horizontalBox.add(drinkJLabel);
JComboBox comboChooseDrink = new JComboBox(drink);
horizontalBox.add(comboChooseDrink);
verticalBox.add(horizontalBox);
}
panelComm2.add(verticalBox);
int p = JOptionPane.showOptionDialog(null, panelComm2, "Select option",
JOptionPane.YES_NO_OPTION,
JOptionPane.QUESTION_MESSAGE,
null, options2, options2[0]);
if (p == JOptionPane.YES_OPTION) {
// Here I want to store the value enter by the user in the comboBox
// Without a for, I would do this
//
// String crust1 = comboCrust().getSelectedItem().toString();
//
//But comboCrust don't exist anymore cause it exist only in the for
System.out.println("To do");
}
あなたは、私がループのためのいくつかの中の私のインターフェースを生成見ることができますが、それらのループの大きさは、いくつかの変数に依存されていますので、ここで
は私のコードです「クラスト」、「サイズ」、「ドリンク」のいずれかを選択するためのJComboBoxが作成されます。 (3つはすべて列挙型です)
そして、インターフェイスは、 "ボックス"の助けを借りて構成されています。私がメインパネル「panelComm2」に入れたものは、最後にJoptionPaneを作るのにも使われます。
は、ここでは次のようになります。
をしかし、私は私のインターフェイスを構築した方法で、私は、ユーザーが選択した情報を取得することはできません。
私は、ユーザーが「OK」をクリックしたときに使用できるように、インターフェースの各フィールドに変数を追加する方法を探しています。
後で検査したいフィールドへの参照を維持する必要があります。 1つの解決方法は、すべてを配列に入れることです。もう一つは、情報の各行の基本的なプロパティを含んだカスタム 'JPanel'を作成することです。選択されたプロパティについて質問したり、他の決定を下したりすることで、インスタンスを配列に配置できます。 – MadProgrammer
私はかなり理解しましたJpanelのアイデア。しかし、配列のものは本当にうまく動作します。 私は自分の考えを変数にすることに焦点を当てていました – kaless
基本的な考え方は、必要な機能を再利用可能な単一のコンポーネントに「カプセル化」することです。 – MadProgrammer