Hallo und Danke für deine Tipps.
Ich habe das mit den Dialogen nun doch auch hin bekommen. Keine Ahnung, wieso es vorher nicht geklappt hat.
Jedoch schaffe ich es im Moment nicht mit einem Frame...
Hier mal ein einfaches Beispiel von einem Modalen Dialog, welcher über einen Button ein Frame aufruft, das Frame wiederum ruftüber einen Button eine einfache JOptionPane auf, um zu sehen ob das Frame richtig bedienbar ist:
Code:
import java.awt.event.*;
import javax.swing.*;
public class Test {
public static void main(String[] args) {
new Modal().show();
}
}
/**
* Der Modale Dialog
*/
class Modal extends JDialog implements ActionListener {
JButton jButton = null;
public Modal() {
super();
initialize();
}
private void initialize() {
this.setTitle("Modal");
this.setContentPane(getButton());
this.setModal(true);
this.pack();
}
private JButton getButton() {
if (jButton == null) {
jButton = new JButton("Open NonModal Frame");
jButton.addActionListener(this);
}
return jButton;
}
public void actionPerformed(ActionEvent e) {
JFrame nonModal = new NonModal();
nonModal.show();
}
}
/**
* Das Non-Modal Frame
*/
class NonModal extends JFrame implements ActionListener {
JButton jButton = null;
public NonModal() {
super();
initialize();
}
private void initialize() {
this.setTitle("Non-Modal");
this.setContentPane(getButton());
this.pack();
}
private JButton getButton() {
if (jButton == null) {
jButton = new JButton("Dummy");
jButton.addActionListener(this);
}
return jButton;
}
public void actionPerformed(ActionEvent e) {
JOptionPane.showMessageDialog(this, "Ping");
}
}
Aber das Frame ist gesperrt, bis ich den Dialog geschlossen habe. Ich glaub ich steh auf dem Schlauch...
Das war doch so wie du gemeint hast oder? Einem Frame kann ich ja keinen Parent mitgeben, oder sehe ich das falsch?
Ich muss noch sagen, dass ich mit Java 5 arbeiten muss, da gibts ModalityType noch nicht, aber ich hoffe mal, dass es am Schluss nicht daran scheitern wird.
Hat jemand einen Tipp?