有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java JOptionPane错误找不到showMessageDialog(<null>,String,int)的合适方法

代码如下:

class ButtonHearerer implements ActionListener
{

  public void actionPerformed(ActionEvent event)
  {
     ///////////////

     if ( event.getSource() == overviewButton )
     {
        welcomeJPanel.setVisible(false);

        overviewJPanel.setVisible(true);

        get.add ( overviewJPanel );

     }
     /////////////////

     else 

        if ( event.getSource() == infoButton )
        {
           JOptionPane.showMessageDialog(null,
                "<html>"
              + "<tr><th>ID INFORMATION</th><tr><table style ='border:2px solid black'>"
              + "<tr><td halign='left'>Programmer</td><td align=center width = 200px>:</td><td align=right>Mohamed Ahmed</td></tr>"
              + "<tr><td halign='left'>Assignment #</td><td align=center width = 200px>:</td><td align=right>Final Project</td></tr>"
              + "<tr><td halign='left'>Assignment Name</td><td align=center width = 200px>:</td><td align=right>The Final Escape</td></tr>"
              + "<tr><td halign='left'>Course # and Title</td><td align=center width = 200px>:</td><td align=right>CISC 190 - Java</td></tr>"
              + "<tr><td halign='left'>Instructor</td><td align=center width = 200px>:</td><td align=right>Professor Forman</td></tr>"
              + "<tr><td halign='left'>Hours</td><td align=center width = 200px>:</td><td align=right>MW 9:35 - 12:45</td></tr>"
              + "<tr><td halign='left'>Difficulty</td><td align=center width = 200px>:</td><td align=right>9</td></tr>"
              + "<tr><td halign='left'>Completion Date</td><td align=center width = 200px>:</td><td align=right>05/21/14</td></tr>"
              + "<tr><td halign='left'>Program Name</td><td align=center width = 200px>:</td><td align=right>MohamedsFinalRevised</td></tr></table>"
              +"</html>",
              "ID Info",
              JOptionPane.PLAIN_MESSAGE);

        }

        //////////////

        else 

           if ( event.getSource() == acctBalButton )
           {

           String  playersDeposit  = deposit.getText(); 

           doubleDeposit  = Double.parseDouble(playersDeposit);

           String acctBalText  =  accountBalance(acctBalTxt);

           acctBalance = doubleDeposit - totalFee;

           String  playersAlias  = alias.getText();                                                   

           JOptionPane.showMessageDialog(null,"Account Balance", "<html>THE GREATEST ESCAPE ACCOUNT BALANCE\n"
                  + "===================================="
                  + "\n\n Summary of" + name + "Account for"
                  + "alias of" + playersAlias + ":"
                  + "\n"+ moneyFormatter.format(playersDeposit) 
                  + " in the THE GREATEST ESCAPE GAME IN THE WORLD"
                  + "- Total ESCAPE Registration Fee\n"
                  + moneyFormatter.format(totalFee)
                  + "- Total Escape Registration Fee\n"
                  + "=====\n"
                  + moneyFormatter.format(acctBalance)
                  + "- Current Account Balance\n\n"
                  + "HAVE A NICE DAY...</html>",
                  JOptionPane.PLAIN_MESSAGE);

           }

因此,我刚刚更新了代码并运行了它,但是当我按下按钮时,我收到了以下错误:

Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: Cannot format given Object as a Number
    at java.text.DecimalFormat.format(DecimalFormat.java:507)
    at java.text.Format.format(Format.java:157)
    at MohamedsFinalRevised.accountBalance(MohamedsFinalRevised.java:1252)
    at MohamedsFinalRevised$ButtonHearerer.actionPerformed(MohamedsFinalRevised.java:1338)
    at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
    at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2346)
    at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
    at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
    at java.awt.Component.processMouseEvent(Component.java:6525)
    at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
    at java.awt.Component.processEvent(Component.java:6290)
    at java.awt.Container.processEvent(Container.java:2234)
    at java.awt.Component.dispatchEventImpl(Component.java:4881)
    at java.awt.Container.dispatchEventImpl(Container.java:2292)
    at java.awt.Component.dispatchEvent(Component.java:4703)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4898)
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4533)
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4462)
    at java.awt.Container.dispatchEventImpl(Container.java:2278)
    at java.awt.Window.dispatchEventImpl(Window.java:2739)
    at java.awt.Component.dispatchEvent(Component.java:4703)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:746)
    at java.awt.EventQueue.access$400(EventQueue.java:97)
    at java.awt.EventQueue$3.run(EventQueue.java:697)
    at java.awt.EventQueue$3.run(EventQueue.java:691)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:86)
    at java.awt.EventQueue$4.run(EventQueue.java:719)
    at java.awt.EventQueue$4.run(EventQueue.java:717)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:716)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

共 (2) 个答案

  1. # 1 楼答案

    JOptionPane需要组件、标题、消息、图标)如果我在代码中看到的正确,您只需给它3个参数

    看一看

    Examples on Displaying dialogs

    Documentation

    试试这个:

    JOptionPane.showMessageDialog(YourClass.this,"Title" ,"<html>THE GREATEST ESCAPE ACCOUNT BALANCE\n"
                      +"===================================="
                      +"\n\n Summary of" + name + "Account for"
                      +"alias of" + playersAlias + ":"
                      +"\n"+ moneyFormatter.format(playersDeposit) 
                      +" in the THE GREATEST ESCAPE GAME IN THE WORLD"
                      +"- Total ESCAPE Registration Fee\n"
                      +moneyFormatter.format(totalFee)
                      +"- Total Escape Registration Fee\n"
                      +"=====\n"
                      +moneyFormatter.format(acctBalance)
                      +"- Current Account Balance\n\n"
                      +"HAVE A NICE DAY...</html>",
                      JOptionPane.PLAIN_MESSAGE);
    
  2. # 2 楼答案

    对第一个参数使用new JFrame()而不是null