Java FX Button (z.B 1) in einem TextField andzeigen lassen, wie mache ich das?

3 Antworten

Button pressed = (Button) event.getSource();


if (eins.isPressed()) {
zahl1.setText("1");
}

In dem Falle hat deine lokale Button-Variable: "pressed" keine weitere Verwendung.

Die Eigenschaft "isPressed" ist nicht unbedingt zielführend und wie Androidhecker bereits gesagt hat: Zu dem Zeitpunkt ist die Bedingung auch nicht mehr wahr.

Dein Source Objekt ist immer ein Button. Entsprechend kannst du das gleich so flexibel gestalten, indem du hier auf die getText() Methode des Buttons verweist:

Button pressed = (Button) event.getSource();
zahl1.setText(pressed.getText());

Also du willst die eins nicht in der Konsole sondern in einem TextField anzeigen lassen?

textfield.setText("1");

Oder meinst du etwas anderes?


androhecker  17.09.2016, 23:16

Nun, ein ActionEvent wird ausgeführt nachdem ein Button gedrückt wurde, folglich isPressed immer false. Du solltest eher mit actionevent.getTarget() prüfen, ob die Node deinem Button entspricht.

1
androhecker  17.09.2016, 18:52

Womöglich liegt der Fehler an etwas anderem, du könntest mal mit den Debugger nachprüfen, ob alles richtig gesetzt wird. Wenn das nicht hilft kannst du auch noch mehr Code hochladen (aber auf hastebin), dann schaue ich mal drüber.

0
androhecker  17.09.2016, 18:48

Wird das Feld überhaupt angezeigt? Die sollte man auch sehen, wenn sie leer sind, weil sie einen Rand haben (Text und Label nicht). Eventuell wird es auch von der Größe her auf 0 begrenzt, wodurch es nicht angezeigt wird.

0
Zorborn 
Beitragsersteller
 17.09.2016, 18:50
@androhecker

Sie werden alle angezeigt, ich habe sie so

TextField zahl1 = new TextField("");
TextField zahl2 = new TextField("");
TextField zahl3 = new TextField("");
TextField zahl4 = new TextField("");

gecoded

0
Zorborn 
Beitragsersteller
 17.09.2016, 18:46

Ist schon richtung das ich die  Zahl 1 im TextField haben will.

Ich weiß nicht ob meine Text Felder einfach nur buggen aber mit
textfield.setText("1");
passier nichts :/

Aber 0 Errors

Trozdem danke :)

0
  1. Was möchtest du nun? Soll der Button innerhalb des Textfeldes angezeigt werden oder nur sein Text?
  2. Wieso holst du dir das Senderelement, wenn du es denn nicht benötigst.
  3. Geht der Debugger überhaupt in den Event-Handler hinein?
  4. Statt die Buttons einzeln zu definieren (eins, zwei, drei, usw.), packe sie doch alle in ein Array. Darüber kannst du iterieren und so deinen Quelltext übersichtlicher halten.
  5. Vermeide Namensüberschneidungen (double und TextField für zahl1)