Hallo zusammen,
ich brauche Eure Hilfe!
Ich habe einen JDialog mit zwei Buttons erstellt.
Ein Bestätigen mit der Maus klappt, genauso wie mit der Leertaste (ist wohl standardmäßig so).
Jetzt möchte ich gerne, dass die Buttons auch mit der Enter-Taste ausgelöst werden können.
Dazu habe jedem Button einen KeyListener zugeordnet, der bei KeyCode 10 (=Enter) etwas machen soll.
Nur was soll er machen? Wie bekomme ich den KeyListener dazu, die actionPerfomed Methode der Buttons auszuführen?
Ich hoffe auf Hilfe.
Schonmal besten Dank!
Mein KSKB:
Zuerst die Klasse mit dem eigentlichen Dialog:
Dann die Klasse zum Aufruf:
Und noch mal die Frage (diesmal auf den Code bezogen):
Wie schaffe ich es, dass die Buttons durch "Enter" ausgewertet werden, also, dass bei String test in der Klasse TestMain auch ein ja oder nein ankommt.
Besten Dank und viele Grüße
Mitspieler
ich brauche Eure Hilfe!
Ich habe einen JDialog mit zwei Buttons erstellt.
Ein Bestätigen mit der Maus klappt, genauso wie mit der Leertaste (ist wohl standardmäßig so).
Jetzt möchte ich gerne, dass die Buttons auch mit der Enter-Taste ausgelöst werden können.
Dazu habe jedem Button einen KeyListener zugeordnet, der bei KeyCode 10 (=Enter) etwas machen soll.
Nur was soll er machen? Wie bekomme ich den KeyListener dazu, die actionPerfomed Methode der Buttons auszuführen?
Ich hoffe auf Hilfe.
Schonmal besten Dank!
Mein KSKB:
Zuerst die Klasse mit dem eigentlichen Dialog:
Code:
public class Testbeispiel extends JDialog implements ActionListener {
public String result;
public Testbeispiel(Frame owner, String msg, String buttons){
super(owner, true);
setPreferredSize(new Dimension(200,100));
//Fenster erstellen
setLayout(new BorderLayout());
setLocation(100, 100);
setDefaultCloseOperation(0);
//Nachricht zuordnen
JLabel text = new JLabel(msg);
add(text, BorderLayout.CENTER);
//Buttons erzeugen
Panel panel = new Panel();
panel.setLayout(new FlowLayout(FlowLayout.CENTER));
StringTokenizer strtok = new StringTokenizer(buttons,",");
while (strtok.hasMoreTokens()) {
Button button = new Button(strtok.nextToken());
button.addActionListener(this);
button.addKeyListener(new KeyListener(){
public void keyTyped(KeyEvent e) {}
public void keyPressed(KeyEvent e) {
if(e.getKeyCode()==10){
//WAS KOMMT HIER REIN?
}
}
public void keyReleased(KeyEvent e) {}
});
panel.add(button);
}
add(panel, BorderLayout.SOUTH);
pack();
setVisible(true);
}
public void actionPerformed(ActionEvent event)
{
result = event.getActionCommand();
setVisible(false);
dispose();
}
public String getResult()
{
return result;
}
}
Dann die Klasse zum Aufruf:
Code:
public class TestMain {
public static void main(String args[]){
Frame frame= new Frame("test");
frame.setSize(new Dimension(100,100));
frame.setVisible(true);
Testbeispiel dia = new Testbeispiel(frame, "Test", "ja, nein" );
String test = dia.getResult();
if (test.equalsIgnoreCase("ja")){
System.exit(0);
}
}
}
Und noch mal die Frage (diesmal auf den Code bezogen):
Wie schaffe ich es, dass die Buttons durch "Enter" ausgewertet werden, also, dass bei String test in der Klasse TestMain auch ein ja oder nein ankommt.
Besten Dank und viele Grüße
Mitspieler