사용자가 원하는 각 피자의 특성을 선택할 수있는 사용자 인터페이스를 만들고 싶습니다. 그리고 나는 상기 사용자가 입력 한 값을 사용하기 위해 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는 '빵 껍질', '크기'또는 '음료'를 선택하기 위해 만들어집니다. (세 개 모두 열거 형입니다)
그리고이 인터페이스는 "박스"수평 및 수직의 도움으로 구성됩니다. 메인 패널 "panelComm2"에 넣은 것을 사용하여 마지막에 JoptionPane을 만듭니다.
이 모양은 다음과 같습니다
을하지만 내 인터페이스를 내장 한 방법을, 나는 사용자가 선택한 정보를 얻을 수 없습니다.
사용자가 '확인'을 클릭 할 때 사용할 수 있도록 인터페이스의 각 필드에 변수를 추가하는 방법을 찾고 있습니다.
나중에 검사 할 필드에 대한 참조를 유지해야합니다. 한 가지 해결책은 그것들을 모두 배열에 넣는 것입니다. 또 다른 방법은 정보의 각 행에 대한 기본 속성을 포함하는 사용자 정의 'JPanel'을 만드는 것입니다. 선택한 속성에 대해 질문하거나 다른 결정을 내릴 수 있습니다. 그러면 배열의 인스턴스를 배치 할 수 있습니다. – MadProgrammer
나는 꽤 이해했습니다. Jpanel 아이디어. 그러나 배열 일은 정말 잘 작동합니다. 변수를 만드는 것에 중점을 두었습니다 – kaless
기본적인 아이디어는 원하는 기능을 하나의 재사용 가능한 구성 요소에 "캡슐화"하는 것입니다. – MadProgrammer