Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从textField获取输入并在textArea中显示_Java_Javafx - Fatal编程技术网

Java 从textField获取输入并在textArea中显示

Java 从textField获取输入并在textArea中显示,java,javafx,Java,Javafx,我无法让我的程序从textField获取用户输入并在textArea中显示。我正在制作的程序是一个堆栈/队列程序。它有一个用户输入数字的文本字段。然后有一个按钮接收输入并在文本区域中显示为StackFILO 编辑1: 我现在可以将用户输入移动到文本区域,但每当我添加第二个输入时,它只会将旧输入替换为新输入,而不会显示列表。我应该使用toString方法来显示整个列表?如果需要,我需要把toString方法放在哪里 TLDR,如何从textField获取输入并在textArea中显示 这是我的主课

我无法让我的程序从textField获取用户输入并在textArea中显示。我正在制作的程序是一个堆栈/队列程序。它有一个用户输入数字的文本字段。然后有一个按钮接收输入并在文本区域中显示为StackFILO

编辑1: 我现在可以将用户输入移动到文本区域,但每当我添加第二个输入时,它只会将旧输入替换为新输入,而不会显示列表。我应该使用toString方法来显示整个列表?如果需要,我需要把toString方法放在哪里

TLDR,如何从textField获取输入并在textArea中显示

这是我的主课

TextField text = new TextField();
TextArea textArea = new TextArea("Text Area");

public class StackQueue extends Application
{
@Override
public void start(Stage stage) throws Exception
{
    Stack myStack = new Stack();

    Button btAdd = new Button("Add");       
    Button btDel = new Button("Delete");
    Button btClear = new Button("Clear");
    BorderPane bpane = new BorderPane();

    text.setPrefWidth(50);
    text.setAlignment(Pos.CENTER_LEFT);
    text.setText("Label");
    text.clear();

    textArea.setPrefColumnCount(1);
    textArea.setPrefRowCount(10);
    textArea.clear();

    HBox hBox = new HBox();
    hBox.getChildren().addAll(btAdd, btDel, btClear);
    bpane.setTop(hBox);
    bpane.setCenter(text);
    bpane.setBottom(textArea);

    Scene scene = new Scene(bpane, 500, 250);
    stage.setTitle("Stack Example");
    stage.setScene(scene);
    stage.show();


    EventHandler<ActionEvent> addEvent = event -> add();
    EventHandler<ActionEvent> delEvent = event -> del();

    btAdd.setOnAction(addEvent);
    btDel.setOnAction(delEvent);




public void add()
{
    textArea.setText(text.getText(x));
}

public void del()
{

}

}



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

}
这是Stack类

public class Stack<E>
{
public String status = "String";

public ArrayList<E> arrayList;


public Stack()
{
    arrayList = new ArrayList(10);
}


public void add(String x)
{
    arrayList.add(0, (E) x);
}

//public String del
{

}

public void Clear()
{

}

}
在start函数中包含了add和del函数。您需要将它们移到start函数外部和StackQueue类内部。 这样做之后,变量text和textArea应该在start函数之外创建,因为add和del方法试图获取text和textArea变量的值

最后,您应该实现逻辑来处理add和del方法中元素的添加和删除

将以下代码粘贴到StackQueue.java文件中。我没有实现删除功能,你也需要调整add方法。我希望你现在能解决这个问题

我添加了一个字符串,它将获取文本字段的旧值,并在进一步添加新值时附加该旧值


您遇到了什么样的问题?我正在尝试让用户输入显示在textArea中。textArea是一个arrayList。欢迎使用堆栈溢出!请带上,四处看看,并通读,尤其是和。从第二个链接开始:请求家庭作业帮助的问题必须包括到目前为止您为解决问题所做工作的摘要,以及您解决问题的困难的描述。text.getTextx TextField没有类似于此签名的方法!我正在尝试让用户输入显示在文本区域中。好的,那么你面临什么问题呢?textArea是一个arrayList。等等,什么?谢谢你的帮助。我在类中声明了textField和Area,正如您所示,这就解决了它。
public class StackQueue extends Application {
            TextField text = new TextField();
            TextArea textArea = new TextArea();
    String oldText;
    @Override
    public void start(Stage stage) throws Exception
    {
        Stack myStack = new Stack();

        Button btAdd = new Button("Add");
        Button btDel = new Button("Delete");
        Button btClear = new Button("Clear");
        BorderPane bpane = new BorderPane();
        text.setPrefWidth(50);
        text.setAlignment(Pos.CENTER_LEFT);
        text.setText("Label");
        text.clear();
        textArea= new TextArea("Text Area");
        textArea.setPrefColumnCount(1);
        textArea.setPrefRowCount(10);
        textArea.clear();
        oldText = text.getText();
        HBox hBox = new HBox();
        hBox.getChildren().addAll(btAdd, btDel, btClear);
        bpane.setTop(hBox);
        bpane.setCenter(text);
        bpane.setBottom(textArea);

        Scene scene = new Scene(bpane, 500, 250);
        stage.setTitle("Stack Example");
        stage.setScene(scene);
        stage.show();


        EventHandler<ActionEvent> delEvent = event -> del();

        btAdd.setOnAction( e -> {
                textArea.setText(oldText + text.getText());
                oldText = oldText + text.getText() +"\n";
        });
        btDel.setOnAction(delEvent);

}



    public void del()
    {

    }

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

}