Swing Meldungen versperren den Zugang

Ich hab hier ein grundsätzliches Problem: Wenn ich einen Eingabedialog habe und parallel ein anderes Fenster öffnen will, wo ich ebenfalls noch interagieren möchte.

Zur Verdeutlichung habe ich ein kleines Beispiel erstellt.

Java:
package dialogproblem;

import java.awt.Dimension;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;

/**
*
* @author ZerstreuterProf
*/
public class DialogProblem {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {

        Thread frame = new Thread(new Runnable() {
            @Override
            public void run() {

                JFrame frame = new JFrame();
                frame.setTitle("Demo");

                JButton button = new JButton("Schaltfläche nicht erreichbar");
                button.setPreferredSize(new Dimension(200, 80));
                frame.add(button);

                frame.setLocationRelativeTo(null);
                frame.pack();
                frame.setDefaultCloseOperation(frame.DISPOSE_ON_CLOSE);
                frame.setVisible(true);
            }
        });

        Thread test = new Thread(new Runnable() {
            @Override
            public void run() {
                JOptionPane.showMessageDialog(null, "Die Schaltfläche im Hintergrund ist nicht erreichbar.", "Dummy", JOptionPane.ERROR_MESSAGE);
            }
        });

        frame.start();
        test.start();

    }

}

Wie erreiche ich es, dass ich das Frame mit dem Button anklicken und verschieben, oder dann auch den Button darin klicken kann, während das Meldungsfenster weiterhin offen bleibt?
 
Zuletzt bearbeitet:
showXXXXDialog ist immer ein Modal. Du müsstest einen eigene Dialog implementieren mit modal false

http://docs.oracle.com/javase/tutorial/uiswing/components/dialog.html

Ach "modal" heißt das Stichwort, nach dem ich hätte suchen sollen.

A Dialog can be modal. When a modal Dialog is visible, it blocks user input to all other windows in the program. JOptionPane creates JDialogs that are modal. To create a non-modal Dialog, you must use the JDialog class directly.

Danke.
 

Ähnliche Java Themen


Oben