2013-10-04 39 views
1

我試圖讓我的代碼更加用戶友好。我有這部分代碼,並想知道如何將它轉換爲joptionpane。 我發現這個int result = JOptionPane.showConfirmDialog(frame, "Continue printing?"); 但似乎有點奇怪使用另一個jframe它。如何將此掃描器輸入「轉換」爲JOptionPane showOptionDialog

System.out.println("Make more selections? Type Yes or No"); 

Scanner scanre = new Scanner(System.in); 
String selecend; 
selecend = scanre.next(); 
if(selecend.equalsIgnoreCase("Yes")) { 
    System.out.println("Enter next selection: "); 
    query(); 
};  
+0

[你嘗試過什麼?](http://www.whathaveyoutried.com/)我的意思是,除了* *問我們。 BTW - *「,但似乎有點奇怪使用另一個jframe的。」*所以使用任何你有*的框架,但注意參數也可以是一個組件,或'空'.. –

回答

2

更友好

怎麼樣的一個用戶?

private Something showMessage() { 

    // null for 'console' mode or this if the enclosing type is a frame 
    Component parentComponent = null; 
    Object message = "Make more selections?"; 
    String title = "Message"; 
    int optionType = JOptionPane.YES_NO_OPTION; // 2 buttons 
    int messageType = JOptionPane.QUESTION_MESSAGE; // icon from style 
    Icon icon = null; 

    // String in the buttons! 
    Object[] options = { "Yup!", "Nope!" }; 

    // option saves the index 'clicked' 
    int option = JOptionPane.showOptionDialog(
      parentComponent, message, title, 
      optionType, messageType, icon, 
      options, options[0]); 

    switch (option) { 
    case 0: 
     // button with "Yup!" 
     break; 
    case 1: 
     // button with "Nope!" 
     break; 
    default: 
     // you close the dialog or press 'escape' 
     break; 
    } 

    return Something; 
} 

enter image description here

2

我想你可能想還是用一個JFrame因爲你可以改變所有的系統進行打印消息使用類似標籤的狀態(一個JLabel將改變基於郵件文本) 你不需要使用一個框架來使用showConfirmDialog。

JOptionPane.showConfirmDialog(null,"choose one", "choose one", JOptionPane.YES_NO_OPTION); 

您可以檢查例子和JOptionPane

在您的示例框架文件是該對話消息父:

parentComponent - 
determines the Frame in which the dialog is displayed; 
if null, or if the parentComponent has no Frame, a default Frame is used 

我覺得這個家長是用來防止焦點在父框架上,如果對話框是活着的。當您在繼續使用程序之前必須接受或關閉對話框時,類似於Windows警報的某些內容會鎖定gui。

1

嘗試這樣做的工作:

int dialogresult = JOptionPane.showConfirmDialog (null, "Continue Selecting?"); 

         if(dialogresult == JOptionPane.YES_OPTION){ 
          query(); 
         }else if(dialogresult == JOptionPane.NO_OPTION) { 

         } 
相關問題