我在下面注释的部分完成的是单击字体菜单弹出改变字体菜单对话框
可是运行是出现错误,,也不知道是哪里错了,,,无助呀~~~~~!!!!!!!
帖子内容过长没办法只好把主要的发上来
//    public void mnuFont_actionPerformed(ActionEvent e) {
//        fntSelect.showDialog();
//        if(fntSelect.showDialog()){
//        txaDisplay.setFont(fntSelect.getSelectedFont());
//        }
//    }
}
//class EditorFrame_mnuFont_actionAdapter implements ActionListener {
//    private EditorFrame adaptee;
//    EditorFrame_mnuFont_actionAdapter(EditorFrame adaptee) {
//        this.adaptee = adaptee;
//    }
//
//    public void actionPerformed(ActionEvent e) {
//        adaptee.mnuFont_actionPerformed(e);
//    }

解决方案 »

  1.   

    你最好把异常信息发上来,
    fntSelect.showDialog() 我觉得这句有可能有问题!
      

  2.   

    fntSelect.showDialog()这个方法再哪呀,好像if条件句括号里不能用这种判断啊,我是个菜鸟,胡说的,别介意啊 !
      

  3.   

    错误代码是这样的
    Exception in thread "AWT-EventQueue-0" java.lang.IllegalStateException: Frame property must be set before showing dialog
    at com.borland.dbswing.FontChooser.showDialog(FontChooser.java:287)
    at editor.EditorFrame.mnuFont_actionPerformed(EditorFrame.java:223)
    at editor.EditorFrame$EditorFrame_mnuFont_actionAdapter.actionPerformed(EditorFrame.java:239)
    at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1849)
    at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2169)
    at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)
    at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)
    at javax.swing.AbstractButton.doClick(AbstractButton.java:302)
    at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:1000)
    at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:1041)
    at java.awt.Component.processMouseEvent(Component.java:5488)
    at javax.swing.JComponent.processMouseEvent(JComponent.java:3093)
    at java.awt.Component.processEvent(Component.java:5253)
    at java.awt.Container.processEvent(Container.java:1966)
    at java.awt.Component.dispatchEventImpl(Component.java:3955)
    at java.awt.Container.dispatchEventImpl(Container.java:2024)
    at java.awt.Component.dispatchEvent(Component.java:3803)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4212)
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3892)
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3822)
    at java.awt.Container.dispatchEventImpl(Container.java:2010)
    at java.awt.Window.dispatchEventImpl(Window.java:1774)
    at java.awt.Component.dispatchEvent(Component.java:3803)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
    at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
      

  4.   

    : Frame property must be set before showing dialog 
    frame属性的设置必须在调用fntSelect.showDialog() 前,就是方法调用前后顺序错误了