Zum Inhalt springen

Eigener Dialog öffnet nicht richtig.


Empfohlene Beiträge

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

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
Geschrieben

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

Geschrieben
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)

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 erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

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