Enter bei OK_CANCEL_OPTION auf dem Cancel Button deaktivieren?

membersound

Bekanntes Mitglied
Hallo,

wenn ich eine JOptionPane mit zB OK_CANCEL_OPTION erzeuge, dann wird mit ENTER immer OK bestätigt, selbst wenn ich mit Tab zum Cancel Button gesprungen bin.
Das ist schon ärgerlich, wenn es um so Dialoge wie "really delete?" geht.

Wie kann ich das ändern, dass wenn der Focus auf dem Cancel Button ist, auch wirklich Cancel gedrückt wird?

Danke
 
Zuletzt bearbeitet:
V

vanny

Gast
Nimm einen JDialog und bestücke diesen mit eigenen Komponenten, dann kannst du auch selbst bestimmen, wie sich alles verhalten soll.

Gruß Vanny
 

turtle

Top Contributor
Java:
		Object[] options = {"Yes", "Cancel"};
		int n = JOptionPane.showOptionDialog(null,
			    "Do you really want to delete? ",
			    "Test",
			    JOptionPane.YES_NO_CANCEL_OPTION,
			    JOptionPane.QUESTION_MESSAGE,
			    null,
			    options,
			    options[1]);
		System.out.println("Option choosen:"+n);
 

membersound

Bekanntes Mitglied
Java:
...

Das ist nicht ganz das was ich meinte. Es sorgt ja dafür, dass als default option cancel gedrückt wird. Aber das möchte ich genauso wenig wie default option = ok. Ich möchte lediglich, dass wenn ich mit Tab zu einem Button gewechselt bin und Enter drücke, dann dieser auch gedrückt wird.
Default macht man das mit Space, den focused Button zu drücken. Aber ich möchte das eben mit Enter haben.
Kann ich das vl irgendwie überschreiben, dass nicht nur Space, sondern auch Enter immer den focused Button drücken?
 

xehpuk

Top Contributor
Das Verhalten ist abhängig vom Look and Feel, siehe diesen Test:
Java:
import javax.swing.JOptionPane;
import javax.swing.UIManager;
import javax.swing.UIManager.LookAndFeelInfo;

public class JOptionPaneTest {
	public static void main(String[] args) throws Exception {
		final LookAndFeelInfo[] installedLookAndFeels = UIManager.getInstalledLookAndFeels();
		for (LookAndFeelInfo lookAndFeelInfo : installedLookAndFeels) {
			UIManager.setLookAndFeel(lookAndFeelInfo.getClassName());
			System.out.print(lookAndFeelInfo.getName() + ": ");
			switch (JOptionPane.showConfirmDialog(null, lookAndFeelInfo.getClassName(), null, JOptionPane.OK_CANCEL_OPTION)) {
			case JOptionPane.OK_OPTION:
				System.out.println("OK");
				break;
			case JOptionPane.CANCEL_OPTION:
				System.out.println("CANCEL");
				break;
			case JOptionPane.CLOSED_OPTION:
				System.out.println("CLOSED");
				break;
			}
		}
	}
}
Mit Tab und Enter erhielt ich dieses Ergebnis:
Code:
Metal: OK
Nimbus: OK
CDE/Motif: CANCEL
Windows: CANCEL
Windows Classic: CANCEL
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Ostkreuz Int Scanner auf Enter Eingabe prüfen Java Basics - Anfänger-Themen 4
K Wie kann ich "enter" von der Console in Eclipse löschen? Java Basics - Anfänger-Themen 2
D Programm auf Enter warten lassen Java Basics - Anfänger-Themen 2
B Button soll sowohl auf Klicken als auch auf die Enter-Taste reagieren Java Basics - Anfänger-Themen 9
CptK Interface JTextField: Action mit Enter ausführen Java Basics - Anfänger-Themen 16
x-tshainge Bei if (eingabe = = ... ) enter als eingabe nehemen Java Basics - Anfänger-Themen 4
Z Enter Taste alle 0,5 Sekunden ausführen Java Basics - Anfänger-Themen 1
P Weiter erst bei Drücken de Enter-TAste Java Basics - Anfänger-Themen 1
B Taste "Enter" drücken in einem anderen Programm? Java Basics - Anfänger-Themen 6
A wie fange ich ein "enter" auf? Java Basics - Anfänger-Themen 0
L Enter simulieren Java Basics - Anfänger-Themen 10
B Methoden Einen Char einlesen ohne Enter abzuwarten Java Basics - Anfänger-Themen 4
B jTextField bei Enter eingabe absenden? Java Basics - Anfänger-Themen 2
A fire button on JTextField Enter Java Basics - Anfänger-Themen 2
I Aktion ausführen bei Enter Java Basics - Anfänger-Themen 6
B 2 Textfelder Enter Taste Java Basics - Anfänger-Themen 3
H JTable: Eingaben mit ENTER übernehmen Java Basics - Anfänger-Themen 2
J JTextfield mit Enter leeren Java Basics - Anfänger-Themen 3
J Schleife durch nichtseingeben/Enter beenden. Java Basics - Anfänger-Themen 5
StrikeTom Editable JComboBox + enter Wie??? Java Basics - Anfänger-Themen 3
J Mit Enter einen Button aktivieren Java Basics - Anfänger-Themen 5
P "Enter"-Taste mit Button verknüpfen Java Basics - Anfänger-Themen 3
K JTextField auslesen, wenn Enter gedrückt.. Java Basics - Anfänger-Themen 13
Z Enter löst einen button aus aber wie? Java Basics - Anfänger-Themen 16
M In Konsole auf Enter reagiern Java Basics - Anfänger-Themen 3
D If Schleife mit "Enter" starten Java Basics - Anfänger-Themen 10
G Enter-Zeichen aus String ersetzen Java Basics - Anfänger-Themen 5
M Einzellne Zeichen lesen und ohne Enter terminieren Java Basics - Anfänger-Themen 7
G Enter Taste abfangen Java Basics - Anfänger-Themen 11
S Programmabsturz bei ENTER Java Basics - Anfänger-Themen 4
F while mit Enter-Taste abbrechen Java Basics - Anfänger-Themen 13
G Leertaste bei Button auf Enter Taste ändern? Java Basics - Anfänger-Themen 6
N Tastatur direkt einlesen (ohne Enter) Java Basics - Anfänger-Themen 3
S JTextField bei enter Java Basics - Anfänger-Themen 3
B textfeld mit enter auslesen klappt nicht Java Basics - Anfänger-Themen 12
M Button in einem JDialog mit Enter ausführen Java Basics - Anfänger-Themen 2
C Einloggen auch per ENTER Taste (KeyListener Problem) Java Basics - Anfänger-Themen 8
D Button und "Enter" Java Basics - Anfänger-Themen 13
B JOptionDialog mit Enter Beenden? Java Basics - Anfänger-Themen 2
T aktion bei enter Java Basics - Anfänger-Themen 2
L ActionListener bei Enter Java Basics - Anfänger-Themen 1
R ENTER in InputStream nicht lesen Java Basics - Anfänger-Themen 4
V Enter abwarten / Mehrere Zeilen einlesen Java Basics - Anfänger-Themen 3
F Bei Login mit Enter bestätigen Java Basics - Anfänger-Themen 7
L GUI- wie cancel ich einen Timer? Java Basics - Anfänger-Themen 10
C Threads SwingWorker läuft trotz cancel weiter Java Basics - Anfänger-Themen 22
J Java Thread cancel() und wiederbeleben Java Basics - Anfänger-Themen 4
B Cancel Funktion beim FileChooser Java Basics - Anfänger-Themen 5
C filechooser : exception bei cancel Java Basics - Anfänger-Themen 7
M Classpath Befehl zum Kompilieren um die Option classpath erweitern. Java Basics - Anfänger-Themen 5
H JOptionPane YES Option mit Folge? Java Basics - Anfänger-Themen 2
E Inhalt von Option Feldern auslesen? Java Basics - Anfänger-Themen 2
H Option Box -> Entscheidung berücksichtigen Java Basics - Anfänger-Themen 3
A .java in .jar: unrecognized option Java Basics - Anfänger-Themen 3
S Yes/No-Option Java Basics - Anfänger-Themen 3
F Invalid option Java Basics - Anfänger-Themen 3
G Option vor Schließen eines JFrame Java Basics - Anfänger-Themen 9

Ähnliche Java Themen

Neue Themen


Oben