【问题标题】:InputDialog box showing a random "-1"输入对话框显示一个随机的“-1”
【发布时间】:2014-05-20 16:42:50
【问题描述】:

一切运行完美,但String am1 = (String)JOptionPane.showInputDialog 显示随机默认“-1”。

private void am1ActionPerformed(java.awt.event.ActionEvent evt) {     

getinfo();//Set the random question and answer
    am1.setEnabled(false);
Object[] options = {"Answer", "Cancel"};
int n = JOptionPane.showOptionDialog(null,
        JeopardyGUI.question1_1,//Reference the question set
        "",
        JOptionPane.YES_NO_OPTION,
        JOptionPane.PLAIN_MESSAGE,
        null,     //do not use a custom Icon
        options,  //the titles of buttons
        options[0]); //default button title

    if(n == JOptionPane.YES_OPTION){
       String am1 = (String)JOptionPane.showInputDialog("",JOptionPane.PLAIN_MESSAGE);

       if(am1.equalsIgnoreCase(JeopardyGUI.answer1_1)){
           Jscore += 100;
           JOptionPane.showMessageDialog(null, JeopardyGUI.answer1_1 );
       }
       else if(!am1.equalsIgnoreCase(JeopardyGUI.answer1_1)){
           Jscore += -100;
           JOptionPane.showMessageDialog(null, JeopardyGUI.answer1_1 );
       }
 //           else
 //               am1.setEnabled(true);

    }
    if(n == JOptionPane.NO_OPTION){
        //am1.setVisible(false);
        am1.setEnabled(true);
    }
}                                   

【问题讨论】:

    标签: java user-interface joptionpane inputbox


    【解决方案1】:

    您正在使用:

    public static String showInputDialog(Object message, Object initialSelectionValue)
    

    JOptionPane.PLAIN_MESSAGE 在这种情况下是您的 initialSelectionValue。我猜这是一个等于-1的int。你真正想要的可能是:

    JOptionPane.showInputDialog("Actual message", "");
    

    另外,要小心:

    String am1 = ...
    

    正在隐藏 am1 类成员,它似乎是某个组件。

    我还建议将处理逻辑重写为:

    if(am1 != null && am1.equalsIgnoreCase(JeopardyGUI.answer1_1)){
        Jscore += 100;
    else Jscore += -100;
    JOptionPane.showMessageDialog(null, JeopardyGUI.answer1_1 );
    

    【讨论】:

    • @Magiichalo 我更新了答案以建议更好地处理答案。但请避免在 cmets 中提出后续问题,这会使问题整体的可读性降低。
    【解决方案2】:

    你需要使用其他静态方法,它不接收默认值:

    JOptionPane.showInputDialog("")
    

    检查 JOptionPane API here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-12-25
      • 2016-04-14
      • 1970-01-01
      • 2011-08-05
      • 2010-11-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多