import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class Test {
public static void main(String[] args){
Test t = new Test();
CFrageDialog dialog= new CFrageDialog(null, "Ihr Text");
System.out.println(dialog.showDialog());
System.out.println("falsch wenn es vor showDialog kommt");
}
class CFrageDialog extends JDialog implements ActionListener {
private JTextField eingabefeld;
private JButton oK, abbruch;
private String textEingabe;
// der Konstruktor
CFrageDialog(JFrame f, String titel) {
super(f, titel, true); // Konstruktor der Basisklasse aufrufen
setResizable(false);
setLayout(new BorderLayout());
// es werden 2 Panels angelegt. Das eine enthält das TextField,
// das andere die Buttons
JPanel panel1 = new JPanel();
JPanel panel0 = new JPanel();
panel0.setLayout(new BorderLayout());
JLabel label = new JLabel(" Ihr Text:");
panel0.add("West", label);
eingabefeld = new JTextField(50);
add("North", panel0);
panel1.add(eingabefeld);
add("Center", panel1);
JPanel panel2 = new JPanel();
oK = new JButton("OK");
abbruch = new JButton("Abbruch");
panel2.add(oK);
panel2.add(abbruch);
add("South", panel2);
pack(); // Anordnung der Oberflächenelemente auf bevorzugte
// Größe initialisieren
// das Maus-Handling für die Buttons macht die Klasse
// selbst, also bei sich selber registrieren
oK.addActionListener(this);
abbruch.addActionListener(this);
// Fenster schließen = Fenster verbergen
setDefaultCloseOperation(WindowConstants.HIDE_ON_CLOSE);
}
public void actionPerformed(ActionEvent e) {
String label;
label = e.getActionCommand();
if (label.equals("Abbruch")) {
textEingabe = null;
setVisible(false);
return;
}
if (label.equals("OK")) {
textEingabe = eingabefeld.getText();
setVisible(false);
return;
}
} // Ende von 'ActionPerformed'
public String getString() {
return textEingabe;
}
public String showDialog(){
this.setVisible(true);
return this.getString();
}
}
}