有没有人遇到这样的问题
用了好多个外观包都这样如下:
JFrame是WINDOWS自带那个样子时,输入汉字没有问题
JFrame是外观包设计好的样子时,每打一个汉字就报一个错误这是为什么?不知我说的清不清楚

解决方案 »

  1.   

    我用过alloy,但没遇到楼主这种问题。
    把错误信息贴出来瞧瞧。
      

  2.   

    import com.incors.plaf.alloy.*;
      
    public static void main(String[] args) {
        AlloyLookAndFeel.setProperty("alloy.isLookAndFeelFrameDecoration", "true");
    com.incors.plaf.alloy.AlloyTheme theme = new com.incors.plaf.alloy.themes.glass.GlassTheme();
    com.incors.plaf.alloy.AlloyLookAndFeel alloyLnF = new com.incors.plaf.alloy.AlloyLookAndFeel();    try {
          javax.swing.UIManager.setLookAndFeel(new AlloyLookAndFeel());//这里加载
        }
        catch(Exception e) {
          e.printStackTrace();
        }
        new Archapp();
      }
      

  3.   

    这段是在用ALLOY自已的FRAME外观时,把输入法调出来,只要谁便按一个键这出这个错误,但是程序能运行下去
    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:4436)
    at java.awt.Container.addImpl(Container.java:1052)
    at javax.swing.JLayeredPane.addImpl(JLayeredPane.java:204)
    at java.awt.Container.add(Container.java:899)
    at com.incors.plaf.alloy.AlloyRootPaneUI.addTitlePane(Unknown Source)
    at com.incors.plaf.alloy.AlloyRootPaneUI.installWindowDecoration(Unknown Source)
    at com.incors.plaf.alloy.AlloyRootPaneUI.propertyChange(Unknown Source)
    at java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:333)
    at java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:270)
    at java.awt.Component.firePropertyChange(Component.java:7159)
    at javax.swing.JComponent.addNotify(JComponent.java:4437)
    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(CompositionAreaHandler.java:56)
    at sun.awt.im.CompositionAreaHandler.inputMethodTextChanged(CompositionAreaHandler.java:169)
    at sun.awt.im.CompositionAreaHandler.processInputMethodEvent(CompositionAreaHandler.java:144)
    at sun.awt.im.InputMethodContext.dispatchEvent(InputMethodContext.java:175)
    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(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.   

    你们怎么导入的包啊
    我吧JAR里面的com把工程的com覆盖上才导入成的
    但是AlloyLookAndFeel的方法不能用啊
    找不到这个类
    但是UIManager.setLookAndFeel("com.incors.plaf.alloy.AlloyLookAndFeel");
    成功了 就是背景颜色和一部分组件的颜色是红的
      

  5.   

    这种情况我也遇到过,和你的不太一样我在设置了look&feel后正常,然后再切换到windows的look&feel后就会报错
    我想可能是look&feel本身的问题。比较难处理
    你试一下,在创建界面后,如JFrame f创建后再设置look&feel,然后updateUI一下看看有什么问题没。
      

  6.   

    把 AlloyLookAndFeel.setProperty("alloy.isLookAndFeelFrameDecoration", "true"); 这句去掉,使用系统自己的窗口边框样式,或者如果可以的话,换成1.6版jdk,这个bug在1.6里面改正了。如果用不了1.6的话,试试这个:Toolkit.getDefaultToolkit().addAWTEventListener(new AWTEventListener() {
    boolean firstInputEvent = true;
    public void eventDispatched(AWTEvent event) {
    if (firstInputEvent) {
    firstInputEvent = false;
    JFrame.setDefaultLookAndFeelDecorated(false); final AWTEventListener listener = this;
    SwingUtilities.invokeLater(new Runnable() {
    public void run() {
    JFrame.setDefaultLookAndFeelDecorated(true);
    Toolkit.getDefaultToolkit().removeAWTEventListener(listener);
    }
    });
    }
    }
    }, AWTEvent.INPUT_METHOD_EVENT_MASK);把这段放在 setLookAndFeel()之后