Java-und Windows-Look & feel

Machte ich eine swing-Anwendung zum Scannen von Bildern, und jedes Bild, dargestellt durch ein Blatt habe ich einen Baum

das problem, das ich konfrontiert ist, dass es löst diese Ausnahme

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    at com.sun.java.swing.plaf.windows.XPStyle$Skin.getWidth(XPStyle.java:513)
    at com.sun.java.swing.plaf.windows.XPStyle$Skin.getWidth(XPStyle.java:517)
    at com.sun.java.swing.plaf.windows.WindowsTreeUI$ExpandedIcon.getIconWidth(WindowsTreeUI.java:138)
    at javax.swing.plaf.basic.BasicTreeUI.drawCentered(BasicTreeUI.java:1580)
    at javax.swing.plaf.basic.BasicTreeUI.paintExpandControl(BasicTreeUI.java:1464)
    at javax.swing.plaf.basic.BasicTreeUI.paint(BasicTreeUI.java:1206)
    at javax.swing.plaf.ComponentUI.update(ComponentUI.java:143)
    at javax.swing.JComponent.paintComponent(JComponent.java:763)
    at javax.swing.JComponent.paint(JComponent.java:1027)
    at javax.swing.JComponent.paintToOffscreen(JComponent.java:5122)
    at javax.swing.BufferStrategyPaintManager.paint(BufferStrategyPaintManager.java:285)
    at javax.swing.RepaintManager.paint(RepaintManager.java:1128)
    at javax.swing.JComponent._paintImmediately(JComponent.java:5070)
    at javax.swing.JComponent.paintImmediately(JComponent.java:4880)
    at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:723)
    at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:679)
    at javax.swing.RepaintManager.seqPaintDirtyRegions(RepaintManager.java:659)
    at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(SystemEventQueueUtilities.java:128)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)

und ich weiß nicht, warum dies angezeigt wird
Hinweis: ich bin mit Windows Look and feel

UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");

- und java-1.6_22
unter windows-7

  • Kannst du deinen code bitte? Es ist schwer zu sagen, was Los ist, ohne den code.
  • kannst du den Quellcode posten?
  • Ich glaube nicht, dass das problem mit der Bibliothek selbst. Stört es dich teilen, wie Sie Scannen, für Bilder im Verzeichnis. Ich spüre problem mit der Eingabe. ( Liste der Bilder, die in dir)
  • Eigentlich konnte ich gut glauben, das ist ein problem mit der Windows-PL&F. Ein minimal-Beispiel-code, das löst das problem wäre gut. Vielleicht ist es ganz bestimmten Maschine.
  • UIManager.setLookAndFeel("com.Sonne.java.swing.plaf.windows.WindowsLookAndFeel"); // Schlecht, Schlecht, Schlechte UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); // gut, gut, gut - Deine version wird nicht auf alles, aber Windows, nicht Mac-und Unix-Benutzer möchte, um zu sehen, Windows-PLAF auf Ihren Schreibtisch-top in jedem Fall. Die Anregung zu 'post code' - I 'downvote' dass. Stattdessen buchen Sie eine SSCCE (pscode.org/sscce.html). Auch mein WAG ist, dass der code etwas aus dem EDT, erfolgen sollte, auf die EDT.
  • Verwenden Sie einfach die SWT... die Swing-Implementierung auf Windows 7 nervt sowieso.
  • Haben Sie das Aussehen und das Gefühl vor oder nach der Komponente frame sichtbar war? Ich erinnere mich vage, immer diese nullpoiner beim Wechsel des look and feel zu WindowsLookAndFeel wenn ein Rahmen war bereits sichtbar.
  • PLAF kann geändert werden, wenn ein JFrame (oder JApplet) ist bereits sichtbar. Es ist nur notwendig zu nennen SwingUtilities.updateComponentTreeUI(Component), damit der Baum der Komponenten angepasst wird.
  • Ich UIManager verwendet.setLookAndFeel(UIManager.getSystemLookAndFeelClassName() den ersten, aber immer noch problem gefunden. und es ist auch die erste Zeile der main () - Methode

InformationsquelleAutor ehab refaat | 2011-03-01
Schreibe einen Kommentar