Devilmarkus Geschrieben 2. Dezember 2009 Geschrieben 2. Dezember 2009 (bearbeitet) Hallo, ich habe ein Problem mit einem eigenen Dialog. Dieser soll sich öffnen, wenn in einer ZIP-Datei mehr als 1 Datei enthalten sind. Dafür habe ich 2 JComboBoxen welche identisch sind. Im Dialog soll nun die eine JComboBox angezeigt werden, und man soll eine Datei daraus auswählen. Daraufhin wird die zweite JComboBox auf den Index der ersten gesetzt. (Zweite hat einen ActionListener, die funktioniert enwandfrei) hier der Code für den Dialog: public void askFile(){ Object[] message = {chooser, "Ok", "Cancel"}; int choice = JOptionPane.showOptionDialog(new JFrame(), "Please choose", "Zipped archive", JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE, null, message, null); if (choice == 1) cbZipChooser.setSelectedIndex(chooser.getSelectedIndex()); } In einem anderen Programm von mir funktioniert dieses tadellos. Nur hier nicht... Schliesse ich den Dialog ([X]) erhalte ich folgende Fehlermeldung: Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException at javax.swing.BufferStrategyPaintManager.flushAccumulatedRegion(BufferStrategyPaintManager.java:398) at javax.swing.BufferStrategyPaintManager.endPaint(BufferStrategyPaintManager.java:362) at javax.swing.RepaintManager.endPaint(RepaintManager.java:1281) at javax.swing.JComponent._paintImmediately(JComponent.java:5076) at javax.swing.JComponent.paintImmediately(JComponent.java:4880) at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:803) at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:714) at javax.swing.RepaintManager.seqPaintDirtyRegions(RepaintManager.java:694) 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:269) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161) at java.awt.EventDispatchThread.run(EventDispatchThread.java:122) Hat hier jemand eine Idee, warum das passiert? Edit: Übrigens erscheint dieser BUG nur wenn die Anwendung gestartet wird. Lade ich im Nachhinein eine ZIP-Datei, ist alles so, wie es sein soll. Bearbeitet 2. Dezember 2009 von Devilmarkus
Dragon8 Geschrieben 2. Dezember 2009 Geschrieben 2. Dezember 2009 Hi, schau mal ob folgender Java Bug vielleicht auf dich zutrifft: Bug ID: 6668436 Painting a component to an off-screen image should not affect the double buffer Ich habe den selben Fehler nämlich zurzeit bei mir auch, und bin darüber aufden Java Bug gestoßen und bei trifft es zu, was in dem Bug Report beschrieben ist...leider wird dort kein Workaround genannt.
perdian Geschrieben 3. Dezember 2009 Geschrieben 3. Dezember 2009 Wird askFile innerhalb des Event Dispatcher Threads oder eines anderen Threads aufgerufen? Wenn letzteres: Ersteres ausprobieren.
Devilmarkus Geschrieben 5. Dezember 2009 Autor Geschrieben 5. Dezember 2009 So funzt es: public void askFile(){ try { SwingUtilities.invokeLater(new Runnable() { public void run() { Object[] message = {chooser, "Ok", "Cancel"}; int choice = JOptionPane.showOptionDialog(new Frame(), "Please choose", "Zipped archive", JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE, null, message, null); if (choice == 1) cbZipChooser.setSelectedIndex(chooser.getSelectedIndex()); } }); } catch (Exception e) { e.printStackTrace(); } } Was'n blöd :upps:upps:upps:old
Devilmarkus Geschrieben 5. Dezember 2009 Autor Geschrieben 5. Dezember 2009 So funzt es: public void askFile(){ try { SwingUtilities.invokeLater(new Runnable() { public void run() { Object[] message = {chooser, "Ok", "Cancel"}; int choice = JOptionPane.showOptionDialog(new Frame(), "Please choose", "Zipped archive", JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE, null, message, null); if (choice == 1) cbZipChooser.setSelectedIndex(chooser.getSelectedIndex()); } }); } catch (Exception e) { e.printStackTrace(); } } Was'n blöd :upps:upps:upps:old Edit: wer es sich antun möchte: Ich habe ein kleines Video aufgenommen, welches gleichzeitig ein Technik-Test der emulierten Hardware (CRTC, Grafik, Sound) demonstriert: Erstellt von Camtasia Studio 6 Wie man sehen kann wird also die Hardware inzwischen sehr gut emuliert (Nicht wundern wegen der sehr schnellen emulierten Floppy, ich habe den Laufwerks-Turbo aktiv gehabt)
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden