如何将此扫描仪输入“转换”为JOptionPane showOptionDialog

时间:2013-10-04 16:51:57

标签: java swing joptionpane

我正在努力让我的代码更加用户友好。我有这部分代码,想知道如何将其转换为joptionpane。 我找到了int result = JOptionPane.showConfirmDialog(frame, "Continue printing?"); 但是使用另一个jframe似乎有点奇怪。

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

3 个答案:

答案 0 :(得分: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 :(得分: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 :(得分:1)

试过这个并且有效:

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

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

                       }