Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

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

  • Autor

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

  • Autor
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 Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.