尝试将标签文本设置为文本字段输入

Åke

我和我的朋友正在尝试进行测验,我们俩都对编程很陌生,但问题是我们无法从namnSpelare1.setPromptText(“ Spelare 1”)获取输入。设置为label5文本。这是我们尝试使用“ label5.setText(“Frågauntil” + namnSpelare1.getText()+“。”);“来完成的行,但是它不起作用。

import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.control.TextField;
import javafx.scene.layout.GridPane;
import javafx.scene.layout.StackPane;
import javafx.scene.layout.VBox;
import javafx.scene.text.Font;
import javafx.scene.text.Text;
import javafx.stage.Stage;
import com.sun.javafx.scene.LayoutFlags;
import javax.swing.*;
import java.beans.beancontext.BeanContext;

public class Main extends Application  {






    TextField namnSpelare1 = new TextField();
    TextField namnSpelare2 = new TextField();
    TextField namnSpelare3 = new TextField();
    TextField namnSpelare4 = new TextField();



    Label label5 = new Label("");

    Stage window;
    Scene scene1, scene2, scene3, scene4;
    Button buttonRoles, buttonStart, buttonBack1, buttonBack2, buttonDone1, ButtonBack3;
    LayoutFlags layout1, layout2, layout3, layout4;


    @Override
    public void init() throws Exception { //Vad som händer innan programmet startat.
        System.out.println("Before");
    }







    @Override
    public void start(Stage primaryStage) throws Exception {

        //Vad som händer när programmet startar.
        window = primaryStage;




        //Sidan "START"
        Label label1 = new Label("Vällkommen till Quizera!");
        label1.setFont(new Font("Arial", 18));
        buttonStart = new Button("START");
        buttonRoles = new Button("REGLER");
        buttonRoles.setOnAction(e -> window.setScene(scene2));
        buttonStart.setOnAction(e -> window.setScene(scene3));
        VBox layout1 = new VBox(20);//Radavstånd
        layout1.setPadding(new Insets(30, 50, 100, 185)); //Tak, Höger Vägg, Golvet, Vänster Vägg
        buttonStart.setPadding(new Insets(30, 88.5, 30, 88.5));
        buttonRoles.setPadding(new Insets(30, 85, 30, 85));
        layout1.getChildren().addAll(label1, buttonStart, buttonRoles);
        scene1 = new Scene(layout1, 600, 300);


        //Sidan "Regler"
        Label label2 = new Label("Regler");
        label2.setFont(new Font("Arial", 18));
        Label label4 = new Label("Den spelare som först får 7 rätt vinner.");
        label4.setFont(new Font("Arial", 11));
        Button buttonBack1 = new Button("TILLBAKA");
        buttonBack1.setOnAction(e -> window.setScene(scene1));
        VBox layout2 = new VBox(20);
        layout2.setPadding(new Insets(30, 50, 100, 185)); //Tak, Höger Vägg, Golvet, Vänster Vägg
        buttonBack1.setPadding(new Insets(10, 88.5, 10, 88.5));
        layout2.getChildren().addAll(label2, label4, buttonBack1);
        scene2 = new Scene(layout2, 600, 300);
        window.setScene(scene1);
        window.setTitle("Quizera");
        window.show();

        //Creating a GridPane container
        GridPane grid = new GridPane();
        grid.setPadding(new Insets(10, 10, 10, 10));
        grid.setVgap(5);
        grid.setHgap(5);

        //Sidan "Spelarnas namn?"

        Label label3 = new Label("Fyll i spelarnas namn.");
        label3.setFont(new Font("Arial", 18));



        namnSpelare1.setPromptText("Spelare 1");
        namnSpelare2.setPromptText("Spelare 2");
        namnSpelare3.setPromptText("Spelare 3");
        namnSpelare4.setPromptText("Spelare 4");



        //Button button = new Button("TILLBAKA");
        Button buttonDone1 = new Button("KLAR");



        Button buttonBack2 = new Button("TILLBAKA");
        buttonBack2.setOnAction(e -> window.setScene(scene1));
        buttonDone1.setOnAction(e -> window.setScene(scene4));
        VBox layout3 = new VBox(12);
        buttonBack2.setPadding(new Insets(8, 88.5, 8, 88.5));
        buttonDone1.setPadding(new Insets(8, 100, 8, 100));
        layout3.setPadding(new Insets(18, 185, 100, 185));//Tak, Höger Vägg, Golvet, Vänster Vägg
        layout3.getChildren().addAll(label3, namnSpelare1, namnSpelare2, namnSpelare3, namnSpelare4, buttonDone1, buttonBack2);
        scene3 = new Scene(layout3, 600, 300);




        //Fråga 1
        int randomNum = (int)(Math.random() * 3);
        String[] questions = {"Vilken färg har ett blåbär?", "Vad heter Isabel?", "Hur hög är en två meter hög låda"};
        String[] answers = {"blå", "isabel", "två meter"};



        String namn1 = (namnSpelare1.getText());
        Label label6 = new Label(questions[randomNum]);
        label5.setFont(new Font("Arial", 11));
        Button buttonBack3 = new Button("TILLBAKA");
        label5.setText("Fråga till " + namnSpelare1.getText() + ".");
        buttonBack3.setOnAction(e -> window.setScene(scene3));
        VBox layout5 = new VBox(20);
        layout5.setPadding(new Insets(30, 50, 100, 185)); //Tak, Höger Vägg, Golvet, Vänster Vägg


        //StackPane layout5 = new StackPane();
        layout5.getChildren().addAll(label5, label6, buttonBack3);
        scene4 = new Scene(layout5, 600, 300);
        window.setTitle("Quizera");
        window.show();


    }




        //Vad som händer efter programmet stängts ner.
        public void stop() throws Exception {
            System.out.println("After");



        }
        public static void main (String[] args) {
            launch();
        }



}
宝石海

GUI框架(例如JavaFX)是事件驱动的文本字段中的文本是动态的。如果希望标签中的文本反映文本字段中的内容,则需要监视文本字段中的文本,并在文本字段中的文本更改时更新标签中的文本。您可以使用事件处理程序或绑定来执行此操作。

事件处理解决方案

请参阅JavaFX的TextField的值更改侦听器

namnSpelare1.textProperty().addListener((observable, oldValue, newValue) ->
    label5.setText("Fråga till " + ((newValue != null) ? newValue : "") + ".")
);

装订溶液

请参阅多个StringProperty的Javafx串联

label5.textProperty().bind(
   Bindings.concat(
       "Fråga till ", namnSpelare1.textProperty(), "."
   )
);

请注意,上述声明中用法,而不是+,这很重要...


有关属性和绑定的背景文档

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将焦点设置为文本字段

将文本字段设置为必填

将提示设置为文本字段中的文本开头

将文本字段输入除以设置编号,显示结果

如何从主页文本字段将值设置为第二页文本字段

无法将变量设置为文本字段的值

Codenameone:无法将浮动提示设置为文本字段

如何将验证文本字段设置为包?

如何在单击按钮时获取文本字段的选定文本?pickerview设置为文本字段的输入视图。迅速

如何使输入文本字段为只读

将输入文本字段更改为带有标签javascript内输入类型值的标签

将标签与文本字段对齐

如何将p标签中的文本回调到输入文本字段?

尝试将标签文本设置为int的ID

SwiftUI 文本字段 - 如何在编辑模式下将文本字段的背景颜色设置为清除

停止在文本字段中输入(标签输入)

如何将标签文本设置为JTextField输入

如何将“select”下拉列表中的文本值设置为“input”文本字段?

将文本从文本字段复制到textarea +标签

无法使用PCA Predict将文本设置为输入字段

将int与文本字段中输入的数据相乘得到标签中的结果

如何在Firebase中将孩子的名字设置为来自文本字段的用户输入?

离子堆叠输入-在文本字段下方显示标签

尝试使用子文本字段在 JPanel 上设置边框

Kotlin:输入 13 个数字时将焦点设置到其他编辑文本字段

隐藏的文本字段将设置为其他“文本字段”值

等待文本字段输入

如何将文本字段输入存储为textToImage函数的变量?

将文本输入设置为日期输入