# entf Taste mit einem Button simulieren in SWT



## NewDesigner (20. Mrz 2007)

Hallo
ich hab ein Textfeld und ein Button in die GUI eingebaut. Beim drücken eines Buttons soll nun das gleiche wie die entf
ausgeführt werden.
Wie krieg ich aber die Position des Cursors zum Text im Textfeld raus und wie aktivier ich die entf funkitionalität aus.

Gruss
Schniefnase


----------



## dieta (20. Mrz 2007)

du könntest es zur not mit der Java-Standard-Klasse java.awt.Robot probieren, mit dem kannst du einen Druck auf die entf-Taste und viele weitere Dinge simulieren:
http://java.sun.com/j2se/1.5.0/docs/api/java/awt/Robot.html


----------



## NewDesigner (21. Mrz 2007)

Das funktioniert nicht so ganz oder ich krieg es nicht so hin:
Ich muss ein Button drücken und dann müsste es 5 mal tab ausführen damit 
es in ein Textfeld kommt und dann den markierten Text im Textfeld entfernen.
Aber es scheitert schon an den 5 mal Tabs. Es springt insgesamt nur einmal
Mein code ist:
		entfernenButton.addSelectionListener(new SelectionAdapter() {
			public void widgetSelected(SelectionEvent e) {
				try{
				Robot o = new Robot();
				o.keyPress(KeyEvent.VK_TAB);
				o.keyPress(KeyEvent.VK_TAB);
				o.keyPress(KeyEvent.VK_TAB);
				o.keyPress(KeyEvent.VK_TAB);
				o.keyPress(KeyEvent.VK_TAB);
				}catch(Exception exp){}
			}
		});


Gruss
SWT for Dummies


----------



## thE_29 (21. Mrz 2007)

Wieso setzt du den Focus nicht einfach auf das Textfeld?

Gibts bei swt kein requestFocus() ?


Außerdem scheitert das deswegen, weil du die Taste nie "auslässt"!

Du musst nach jedem keyPress auch ein keyRelease mit der gleichen Taste machen!


----------



## NewDesigner (21. Mrz 2007)

Das klappt wirklich undzwar so:

 public void widgetSelected(SelectionEvent e) {
try{
textfeld.setFocus();
Robot o = new Robot();
o.keyPress(KeyEvent.VK_DELETE);

}catch(Exception exp){}
}
}); 

Dat wars


----------



## thE_29 (21. Mrz 2007)

Lass das Delete wieder aus!

Sonst wird die ganze Zeit die Taste gehalten (solange wie dein Programm offen ist).

Sonst könnte man ja nie SHIFT + Taste machen oder sonstiges!!


----------

