SWT Spinner - Coursor ans Ende

Status
Nicht offen für weitere Antworten.

Swoop

Gesperrter Benutzer
Hallo !

Ich verwende in meinem Programm einen Spinner des SWT´s! (ein Bild ist im Anhang)

Bis jetzt hat das Widget ganz gut Funktioniert allerdings suche ich gerade eine Methode um den Coursor an das Ende des Text feldes zu setzen.

Beispiel:

Ich gebe eine 3 ein.
Dann refresh ich die Methode und setz den Focus wieder auf den Spinner.
(Das Refreshen whärend der eingabe benötige ich für eine berechung)
Danach gebe ich eine 2 ein.
->Eig sollte hier dann 32 stehen ...
In Wirklichkeit steht dann dort: 23!

Im Prinzip brauche ich eine Methode um den Coursor nach dem der Focus gesetz wurde gesagt wird: Courser <- ganz ans ENDE!

gibt es dafür bei dem Widget keine Fertig-Methode ???

Gruß Swoop
 

DerEisteeTrinker

Bekanntes Mitglied
deinem Spinner übergibst du einfach den alten Focuswert und hängst den neuen hinten an :toll:

zum Beispiel

Java:
spinner.setSelection(spinner.getSelection() * 10 + neuerWert)

Das * 10, damit die Dezimalstelle passt ;)
 

Swoop

Gesperrter Benutzer
naja das ist eine gute idee ... aber ich kann keinen neuen wert anhängen da ja erst der benutzer in der GUI eine zweite zahl eingibt ...
 

DerEisteeTrinker

Bekanntes Mitglied
für die Variable neuerWert in meinem Beispiel sollst du den Wert hinpacken, den der Benutzer in die Tastatur geklopft hat
 

Swoop

Gesperrter Benutzer
ja das hab ich schon verstanden ...

allerdings funktioniert das so nicht ... er macht immernoch die zahlen falsh herum ... egal wie ichs dreh und wend

misteriös ist einfach nur das ich manchmal denke es funktioniert so ... aber danach funktioniert es wieder nicht ... ich weis nicht ...
ich muss irgendwie dann noch nen bug drin haben
 
Zuletzt bearbeitet:

Swoop

Gesperrter Benutzer
Java:
	private void createSpinner(Composite comp, Person person, Getraenk getraenk) {
		final Spinner spinner = new Spinner(comp, SWT.BORDER);
		spinner.setMinimum(0);
		spinner.setMaximum(99);
		spinner.setIncrement(1);
		spinner.setPageIncrement(100);
		spinner.pack();
		spinner.setData(KEY_PERSON, person);
		spinner.setData(KEY_GETRAENK, getraenk);
		if (this.personenFokus != null && this.getraenkeFokus != null) {
			if (this.personenFokus.equals(person) && this.getraenkeFokus.equals(getraenk)) {
				spinner.setFocus();
			}
		}
		spinner.setSelection(spinner.getSelection() * 10 + (person.getGetraenkeAnzahl(getraenk.getName())));
		spinner.addSelectionListener(new SelectionAdapter() {
			public void widgetSelected(SelectionEvent e) {
				processSpinner(spinner);
				refreshStrichliste();
			}
		});
	}
 

Swoop

Gesperrter Benutzer
ja es wird wie eine Tabelle erzeugt indem der spinner in vertikaler wie in horizontaler form sich immer wieder wiederholen kann!
 

DerEisteeTrinker

Bekanntes Mitglied
ich würde beim erzeugen des Spinners erstmal nur auf den Ursprungswert setzen, also in deinem Beispiel die 3 und erst wenn der SelectionListener greift (Zeile 17), da setzt du dann die Selection erneut. wenn das System den kram schon vor dir setzt, dann mit modulo und ein bissel umher rechnen das ganze ding einfach umdrehen und neu setzen
 

Swoop

Gesperrter Benutzer
okay habs dann mal anders rum gemacht :D


aber jetzt zählt der immmer in dezimalschritten hoch .... ?! wo liegt denn jetzt de fehler ?
 

Swoop

Gesperrter Benutzer
Java:
	private void createSpinner(Composite comp, final Person person, final Getraenk getraenk) {
		final Spinner spinner = new Spinner(comp, SWT.BORDER);
		spinner.setMinimum(0);
		spinner.setMaximum(99);
		spinner.setIncrement(1);
		spinner.setPageIncrement(100);
		spinner.pack();
		spinner.setData(KEY_PERSON, person);
		spinner.setData(KEY_GETRAENK, getraenk);
		if (this.personenFokus != null && this.getraenkeFokus != null) {
			if (this.personenFokus.equals(person) && this.getraenkeFokus.equals(getraenk)) {
				spinner.setFocus();
			}
		}
		spinner.setSelection(person.getGetraenkeAnzahl(getraenk.getName() ));
		spinner.addSelectionListener(new SelectionAdapter() {
			public void widgetSelected(SelectionEvent e) {
				spinner.setSelection(spinner.getSelection() * 10 + (person.getGetraenkeAnzahl(getraenk.getName())));
				processSpinner(spinner);
				refreshStrichliste();
			}
		});
	}

So hab ichs umgesetzt... und verstanden :D
 

Swoop

Gesperrter Benutzer
Ja ...

hier ist die process-Methode...
Ich hab die selction dort am Shcluss gesetzt ... Jetzt funktioniert es beim ersten mal nicht beim zweiten mal eingeben kanns dann aber funktionieren ... als es klappt ab und zu dass er es richtig rum macht und manchmal macht es trotzdem noch flasch rum!

Java:
	public void processSpinner(Spinner spinner) {
		int selection = spinner.getSelection();
		Getraenk getraenk = (Getraenk) spinner.getData(KEY_GETRAENK);
		Person person = (Person) spinner.getData(KEY_PERSON);
		person.addGetraenk(getraenk.getName(), getraenk.getPreis(), selection);
		if (spinner.isFocusControl()) {
			this.personenFokus = person;
			this.getraenkeFokus = getraenk;
		}
		spinner.setSelection(spinner.getSelection() * 10 + 
(person.getGetraenkeAnzahl(getraenk.getName())));
	}
 

DerEisteeTrinker

Bekanntes Mitglied
vergleiche mal die Methode

Java:
public void widgetSelected(SelectionEvent e) {

und

Java:
public void processSpinner(Spinner spinner) {

vllt fällt dir die doppelte Zeile auf :rtfm:
 

Swoop

Gesperrter Benutzer
in der widget selection hab ich das "setSelection" natürlich wieder raus genommen


falls es das ist was du meinst ?
 

Swoop

Gesperrter Benutzer
so funktioniert es trotzdem nicht ... wahrscheinlich funktioniert das bei dem spinner einfach nicht ....

schade ... dann muss ich mir halt eine andere Lösung dafür überlegen!

Edit: Ich bin gerade auf die Idee gekommen ob man nicht einfach die eingabe in dem Spinner verbieten kann, dass nur an den buttons für up und down gedrückt werden darf ???
Ist das leichter umsetzbar ?

Gruß Swoop
 
Zuletzt bearbeitet:
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
_user_q [JavaFX] Spinner so einstellen, dass er nicht leer bleiben darf? AWT, Swing, JavaFX & SWT 6
_user_q Wie den Inhalt vom Spinner auf Integer überprüfen? AWT, Swing, JavaFX & SWT 15
Z JavaFX JavaFX Spinner AWT, Swing, JavaFX & SWT 1
L JavaFX Spinner reset. AWT, Swing, JavaFX & SWT 5
L JavaFX Validierung eines Spinner AWT, Swing, JavaFX & SWT 1
A Swing nur Zahlen im Spinner(Textfeld) eingeben ! AWT, Swing, JavaFX & SWT 16
C Swing Spinner als TableCellEditor - Text zu klein AWT, Swing, JavaFX & SWT 2
T SWT Table (mit Spinner Spalte) Daten auslesen AWT, Swing, JavaFX & SWT 4
K kleine frage zum Spinner (bezüglich Action) AWT, Swing, JavaFX & SWT 2
N jFrame löscht am Ende des Threads alles AWT, Swing, JavaFX & SWT 2
H String teilen, damit bei JLabel keine Punkte am Ende angezeigt werden AWT, Swing, JavaFX & SWT 4
S Kann man erzwingen, dass Java 'zu Ende zeichnet'..? AWT, Swing, JavaFX & SWT 7
S JavaFX TreeItem: Icon am Ende eines Eintrags anhängen AWT, Swing, JavaFX & SWT 2
B Programmende bei Ende der XSession AWT, Swing, JavaFX & SWT 0
I Pfeil zeichnen am Ende einer Linie AWT, Swing, JavaFX & SWT 1
G JScrollPane bricht am Ende der Anzeige nicht um AWT, Swing, JavaFX & SWT 2
W Swing Zum Ende einer Scrollpane scrollen AWT, Swing, JavaFX & SWT 2
V Ende eines Frames abwarten AWT, Swing, JavaFX & SWT 7
C JTextArea scrollt bei append(String) aus Threads nicht ans Ende AWT, Swing, JavaFX & SWT 7
M Anzeige updatet sich erst am Ende des Programms AWT, Swing, JavaFX & SWT 3
A Ende eines Dialoges abwarten AWT, Swing, JavaFX & SWT 16
D Swing JProgressBar soll ende erkennen AWT, Swing, JavaFX & SWT 4
P Swing JTable null values an das Ende verschieben AWT, Swing, JavaFX & SWT 2
S (Applets) JProgressBar wird erst am Ende angezeigt AWT, Swing, JavaFX & SWT 13
C Swing Labeltext am Anfang statt am Ende kürzen AWT, Swing, JavaFX & SWT 6
T DND mit JList Elemente nicht am Ende einfügen AWT, Swing, JavaFX & SWT 3
A Swing JScrollPane ans ende Scrollen AWT, Swing, JavaFX & SWT 9
H JList in JScrollPane -> ScrollBar ans Ende setzen AWT, Swing, JavaFX & SWT 5
M JTextPane Ende des Feldes AWT, Swing, JavaFX & SWT 4
N SWT Ende vom String in Text anzeigen AWT, Swing, JavaFX & SWT 5
T Auf Ende von mehreren Threads warten, ohne den EDT zu blockieren AWT, Swing, JavaFX & SWT 1
K Listeners und das Ende einer Componente AWT, Swing, JavaFX & SWT 4
G Shift + Ende auf JTable AWT, Swing, JavaFX & SWT 2
G Icon ans Ende einer JToolbar AWT, Swing, JavaFX & SWT 7
G Am Ende einer Tabellenzeile zu definierter Komponente gehen AWT, Swing, JavaFX & SWT 2
M JTable zum Anfang oder Ende springen AWT, Swing, JavaFX & SWT 9
G Das ende von einem JTextPane abschneiden AWT, Swing, JavaFX & SWT 2
thE_29 JScrollPane Ende rausfinden AWT, Swing, JavaFX & SWT 3
W JFileChooser speicher von Datein mit und ohne ende AWT, Swing, JavaFX & SWT 2
T "..." am Ende der Zelle in JTable AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen

Neue Themen


Oben