我正在做一個家庭作業項目,它是一個簡單的彩票程序。該程序必須要求使用JOptionPane六個數字,他們必須少於60.我的問題是我可以只使用一個JOPtionPane輸入獲得全部六個數字嗎?Java-你可以使用一個JOptionPane消息獲得多個變量嗎?
程序使用隨機數生成器的六個輸入數字比較。
我正在做一個家庭作業項目,它是一個簡單的彩票程序。該程序必須要求使用JOptionPane六個數字,他們必須少於60.我的問題是我可以只使用一個JOPtionPane輸入獲得全部六個數字嗎?Java-你可以使用一個JOptionPane消息獲得多個變量嗎?
程序使用隨機數生成器的六個輸入數字比較。
JOptionPane.showInputDialog()
返回一個字符串,所以你可以split
返回值。
String input = JOptionPane.showInputDialog(...);
String[] array = input.split("\\s+");
檢查數組長度是否爲6以及它們是否都是數字。將它放在while
循環中,直到滿足這兩個條件。如果沒有繼續顯示對話框。如果他們是遇到然後然後做一些與輸入。
int num1 = Integer.parseInt(array[0]);
int num2 = Integer.parseInt(array[1]);
int num3 = Integer.parseInt(array[2]);
...
String.split()
如果你是unfamiliair用這種方法。while
loops如果您不熟悉它們。是的,這是可能的。所述message
參數的各種方法showXXX()
被定義爲Object
。如果你通過一個Swing組件的「消息」,它會正確顯示:
喜歡的東西:
JPanel panel = new JPanel();
JCheckBox cbx = JCheckBox("Option 1");
JTextField tf = new JTextField();
panel.add(cbx);
panel.add(tf);
... add more controls
int result = JOptionPane.showConfirmDialg(yourFrame, panel, "Dialog titel", JOptionPane.OK_CANCEL_OPTION);
if (result == JOptionPane.OK_OPTION)
{
boolean doStuff = cbx.isSelected();
String someValue = tv.getText();
... process other options here
}
你可以利用這一點,並可以相應地調整它
public class JOptionPaneMulti {
public static void main(String[] args) {
JTextField Field1 = new JTextField(5);
JTextField Field2 = new JTextField(5);
JTextField Field3 = new JTextField(5);
JTextField Field4 = new JTextField(5);
JPanel myPanel = new JPanel();
myPanel.setLayout(new GridLayout(2,2));
myPanel.add(new JLabel("input 1:"));
myPanel.add(Field1);
myPanel.add(new JLabel("input 2:"));
myPanel.add(Field2);
myPanel.add(new JLabel("input 3:"));
myPanel.add(Field3);
myPanel.add(new JLabel("input 4:"));
myPanel.add(Field4);
int result = JOptionPane.showConfirmDialog(null, myPanel,
"Please Enter Values", JOptionPane.OK_CANCEL_OPTION);
if (result == JOptionPane.OK_OPTION) {
System.out.println("1 value: " + Field1.getText());
System.out.println("2 value: " + Field2.getText());
System.out.println("3 value: " + Field3.getText());
System.out.println("4 value: " + Field4.getText());
}
}
}
謝謝你的幫助很多 – user3303096
@ user3303096請投票並將此答案標記爲已接受。顯示你的問題已解決。如果這個答案是有效的,並且相應地要求。看[爲什麼投票很重要](http://stackoverflow.com/help/why-vote) – Sarz
您可以使用如果你正在問的是什麼,那麼在一個循環中六次相同的'JOptionPane'實例。 –
@nachokk:是的,這是可能的。看到我的答案。 –