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(); }
这段是在用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)
把错误信息贴出来瞧瞧。
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();
}
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)
我吧JAR里面的com把工程的com覆盖上才导入成的
但是AlloyLookAndFeel的方法不能用啊
找不到这个类
但是UIManager.setLookAndFeel("com.incors.plaf.alloy.AlloyLookAndFeel");
成功了 就是背景颜色和一部分组件的颜色是红的
我想可能是look&feel本身的问题。比较难处理
你试一下,在创建界面后,如JFrame f创建后再设置look&feel,然后updateUI一下看看有什么问题没。
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()之后