Zum Inhalt springen

Eigener Dialog öffnet nicht richtig.


Devilmarkus

Empfohlene Beiträge

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...

combobox.png

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.

combobox2.png

Bearbeitet von Devilmarkus
Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...