Hallo
Ich möchte Euch die 2 folgenden useCases mal demonstrieren:
Fall 1 : ListItem ist ausgewählt, dann wird Enter gedrückt.
- Das Textfeld enthält wie erwartet den in der Liste ausgewählten Text
- Das ListItem wird wie erwartet deselectiert.
Fall 2(PROBLEMFALL) : ListItem ist ausgewählt(0-tes Item), dann wird die "Pfeiltaste nach oben" gedrückt.
- Das Textfeld enthält wie erwartet den in der Liste ausgewählten Text
- Das ListItem wird NICHT! wie erwartet deselectiert. <--- PROBLEM
--> Wo könnte hier das Problem liegen?
Bin schon Tage lage damit beschäftigt und kommt irgendwie nicht weiter.
Bis für jeden Tipp dankbar
Gruß
Ich möchte Euch die 2 folgenden useCases mal demonstrieren:
Fall 1 : ListItem ist ausgewählt, dann wird Enter gedrückt.
- Das Textfeld enthält wie erwartet den in der Liste ausgewählten Text
- Das ListItem wird wie erwartet deselectiert.
Fall 2(PROBLEMFALL) : ListItem ist ausgewählt(0-tes Item), dann wird die "Pfeiltaste nach oben" gedrückt.
- Das Textfeld enthält wie erwartet den in der Liste ausgewählten Text
- Das ListItem wird NICHT! wie erwartet deselectiert. <--- PROBLEM
--> Wo könnte hier das Problem liegen?
Bin schon Tage lage damit beschäftigt und kommt irgendwie nicht weiter.
Bis für jeden Tipp dankbar
Gruß
Java:
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.KeyEvent;
import org.eclipse.swt.events.KeyListener;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.graphics.Rectangle;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.List;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;
public class TestList {
private Shell myShell = null;
private List myList = null;
private Text myText = null;
private Button myButton = null;
public static void main(String[] args) {
Display display = Display.getDefault();
TestList thisClass = new TestList();
thisClass.createSShell();
thisClass.myShell.open();
while (!thisClass.myShell.isDisposed()) {
if (!display.readAndDispatch()) {
display.sleep();
} // end if
} // end while
display.dispose();
} // end main()
private void createSShell() {
myShell = new Shell();
myShell.setText("Shell");
myShell.setSize(new Point(263, 193));
myList = new List(myShell, SWT.NONE);
myList.setSize(new Point(190, 82));
myList.setLocation(new Point(5, 31));
String[] myStrings = new String[5];
for (int i = 0; i < myStrings.length; i++) {
myStrings[i] = "hallo " + i;
} // end for
myList.setItems(myStrings);
myList.addKeyListener(new KeyListener() {
@Override
public void keyReleased(KeyEvent arg0) {
} // end keyReleased()
@Override
public void keyPressed(KeyEvent keyEvent) {
if (keyEvent.keyCode == SWT.CR) {
if (myList.getSelectionIndex() > -1) {
myText.setText(myList.getItem(myList.getSelectionIndex()));
myList.deselectAll();
myText.setFocus();
} // end if
} // end if
if (keyEvent.keyCode == SWT.ARROW_UP) {
if (myList.getSelectionIndex() == 0) {
myText.setText(myList.getItem(0));
myList.deselectAll();
myText.setFocus();
} // end if
} // end if
} // end keyPressed()
} // end new
);
myText = new Text(myShell, SWT.BORDER);
myText.setBounds(new Rectangle(6, 7, 190, 19));
myButton = new Button(myShell, SWT.NONE);
myButton.setBounds(new Rectangle(78, 122, 115, 23));
myButton.setText("drück mich");
} // end createSShell()
} // end TestList