Frage von Zorborn, 22

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

Hallo,

Ich weiß einfach mit einem Problem nicht weiter. Ich habe das Code Frakment:

public void handle(Event event){
    
    Button pressed = (Button) event.getSource();
    
    if (eins.isPressed()){
    System.out.println("1");
                    
    }
    
     
}

meine Frage wäre jetzt wie lasse ich den Button 1 im TextField erscheinen?

Das System.out.printlin ist nur zur hilde und orientierung in der Console da.

Soll am ende eine art Tresor werden, wenn das hilft.

Expertenantwort
von regex9, Community-Experte für Programmierung, 13
  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)
Expertenantwort
von KnusperPudding, Community-Experte für Java, 8
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());
Antwort
von androhecker, 15

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

textfield.setText("1");

Oder meinst du etwas anderes?

Kommentar von Zorborn ,

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 :)

Kommentar von androhecker ,

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.

Kommentar von Zorborn ,

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

Kommentar von androhecker ,

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.

Kommentar von Zorborn ,

Ich habe die Seite noch nie benutzt aber ich hoffe das ich alles richtig gemaht habe :) http://hastebin.com/pozoyahogi.java

Kommentar von androhecker ,

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.

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten