1

我正在尝试使我的代码更加用户友好。我有这部分代码,想知道如何将其转换为 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();
};      
4

3 回答 3

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

在此处输入图像描述

于 2013-10-04T17:06:33.430 回答
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。

于 2013-10-04T16:59:08.913 回答
1

试过这个并且有效:

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

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

                       }
于 2013-10-04T17:03:56.680 回答