1。看个简单的程序先:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;public class Test extends JFrame {
private  JTextArea txt = null;
public Test() {
txt = new JTextArea("hello word", 5, 50);
add(new JScrollPane(txt));
setLayout(new FlowLayout());
}

public static void main(String[] args) {
JFrame.setDefaultLookAndFeelDecorated(true);
JFrame frame = new Test();
frame.pack();
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
输入中文看看,是否有异常?2。你把“JFrame.setDefaultLookAndFeelDecorated(true);”去掉再看一下是否有异常发生?3。知道什么原因麻烦通知我!!!

解决方案 »

  1.   

    异常是:
    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
            at java.util.Hashtable.get(Hashtable.java:336)
            at javax.swing.KeyboardManager.registerMenuBar(KeyboardManager.java:263)        at javax.swing.JMenuBar.addNotify(JMenuBar.java:679)
            at java.awt.Container.addNotify(Container.java:2500)
            at javax.swing.JComponent.addNotify(JComponent.java:4469)
            at javax.swing.plaf.metal.MetalTitlePane.addNotify(MetalTitlePane.java:2
    23)
            at java.awt.Container.addNotify(Container.java:2500)
            at javax.swing.JComponent.addNotify(JComponent.java:4469)
            at java.awt.Container.addNotify(Container.java:2500)
            at javax.swing.JComponent.addNotify(JComponent.java:4469)
            at javax.swing.JRootPane.addNotify(JRootPane.java:680)
            at java.awt.Container.addNotify(Container.java:2500)
            at java.awt.Window.addNotify(Window.java:466)
            at java.awt.Frame.addNotify(Frame.java:501)
            at java.awt.Window.pack(Window.java:484)
            at sun.awt.im.CompositionArea.<init>(CompositionArea.java:71)
            at sun.awt.im.CompositionAreaHandler.createCompositionArea(CompositionAr
    eaHandler.java:56)
            at sun.awt.im.CompositionAreaHandler.inputMethodTextChanged(CompositionA
    reaHandler.java:169)
            at sun.awt.im.CompositionAreaHandler.processInputMethodEvent(Composition
    AreaHandler.java:144)
            at sun.awt.im.InputMethodContext.dispatchEvent(InputMethodContext.java:1
    75)
            at java.awt.Component.dispatchEventImpl(Component.java:3902)
            at java.awt.Container.dispatchEventImpl(Container.java:2024)
            at java.awt.Component.dispatchEvent(Component.java:3803)
            at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
            at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchTh
    read.java:242)
            at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThre
    ad.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)
      

  2.   

    把“JFrame.setDefaultLookAndFeelDecorated(true);”去掉就正常了,原因呢?
      

  3.   

    我的版本是:
    java version "1.5.0_07"
    Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_07-b03)
    Java HotSpot(TM) Client VM (build 1.5.0_07-b03, mixed mode, sharing)
      

  4.   

    我认为是jdk的 bug,不知道你们怎么看!
    光输入字符是不会异常的。
    输入中文时,跟本不会弹出那个可以选字的框框。
      

  5.   

    怪了,真的没错.哪有"会选字的框框",那个txt吗?
      

  6.   

    实验表明:
    jdk1.5以上版本存在 BUG ,jdk1.4的版本正常运行!