2013-10-10 52 views
0

我想使用Java的JOptionnPane模块。下面是代码:使用Java的JOptionPane

Object[] options = {"OK", "Cancel"}; 
JOptionPane.showInternalOptionDialog(null, "Your choice", "Division", JOptionPane.YES_NO_OPTION, JOptionPane.INFORMATION_MESSAGE, null, options, options[0]); 

error: JOptionPane: parentComponent does not have a valid parent at...

+1

InternalOptionDialog需要一个父对话框。你可以使用showOptionDialog方法。 – vels4j

+0

vels4j:tnx解决了问题 –

回答

1

JOptionPane.showInternalInputDialog是与只的JDesktopPane/JInternalFrames,其中这是的JDesktopPane/JInternalFrames实例中使用。

final JDesktopPane deskpane = new JDesktopPane(); 
... 
String str=JOptionPane.showInternalInputDialog(deskpane, "Enter value"); 

如果不与任一它不会产生正确的输出的2个上面提到的部件的使用,实际上它会引发运行时异常:

java.lang.RuntimeException: JOptionPane: parentComponent does not have a valid pa 
+0

我问的是showInternalOptionDialog,但问题是相似的。它抛出一个异常,因为没有指定父组件。虽然它说它可以设置为null –

1

例外谈论uncorrectly用户参数,其价值或他们的订单,

import java.awt.EventQueue; 
import javax.swing.Icon; 
import javax.swing.JOptionPane; 
import javax.swing.UIManager; 

public class MyOptionPane { 

    public MyOptionPane() { 
     Icon errorIcon = UIManager.getIcon("OptionPane.errorIcon"); 
     Object[] possibilities = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13}; 
     Integer i = (Integer) JOptionPane.showOptionDialog(null, 
       null, "ShowInputDialog", 
       JOptionPane.PLAIN_MESSAGE,1, errorIcon, possibilities, 0); 
     Integer ii = (Integer) JOptionPane.showInputDialog(null, 
       "Select number:\n\from JComboBox", "ShowInputDialog", 
       JOptionPane.PLAIN_MESSAGE, errorIcon, possibilities, "Numbers"); 
    } 

    public static void main(String[] args) { 
     EventQueue.invokeLater(new Runnable() { 
      @Override 
      public void run() { 
       MyOptionPane mOP = new MyOptionPane(); 
      } 
     }); 
    } 
}