2014-02-12 62 views
2

我正在做一個家庭作業項目,它是一個簡單的彩票程序。該程序必須要求使用JOptionPane六個數字,他們必須少於60.我的問題是我可以只使用一個JOPtionPane輸入獲得全部六個數字嗎?Java-你可以使用一個JOptionPane消息獲得多個變量嗎?

程序使用隨機數生成器的六個輸入數字比較。

+0

您可以使用如果你正在問的是什麼,那麼在一個循環中六次相同的'JOptionPane'實例。 –

+0

@nachokk:是的,這是可能的。看到我的答案。 –

回答

1

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]); 
... 
3

是的,這是可能的。所述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 
} 
2

你可以利用這一點,並可以相應地調整它

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()); 
     } 

    } 
} 
+0

謝謝你的幫助很多 – user3303096

+0

@ user3303096請投票並將此答案標記爲已接受。顯示你的問題已解決。如果這個答案是有效的,並且相應地要求。看[爲什麼投票很重要](http://stackoverflow.com/help/why-vote) – Sarz

相關問題