ActionEvent按钮-TextField JavaFX

ActionEvent按钮-TextField JavaFX,java,netbeans,javafx,textfield,Java,Netbeans,Javafx,Textfield,大家好,我需要从按钮创建一个ActionEvent,并将按钮名称放在文本字段中。我所拥有的是一种计算器,但当我按下一个按钮时,不会填充文本字段。举个例子,我想要的是:我在一个按钮上有数字1,当我按下它时,数字1出现在文本字段上。这就是我到目前为止所拥有的: AppCalculator类: package appcalculator; import javafx.application.Application; import javafx.fxml.FXMLLoader; import java

大家好,我需要从按钮创建一个ActionEvent,并将按钮名称放在文本字段中。我所拥有的是一种计算器,但当我按下一个按钮时,不会填充文本字段。举个例子,我想要的是:我在一个按钮上有数字1,当我按下它时,数字1出现在文本字段上。这就是我到目前为止所拥有的:

AppCalculator类:

package appcalculator;

import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;

public class AppCalculator extends Application {

@Override
public void start(Stage stage) throws Exception {
    Parent root = FXMLLoader.load(getClass().getResource("FXMLDocument.fxml"));

    Scene scene = new Scene(root);

    stage.setScene(scene);
    stage.show();
}

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

}
package appcalculadora;

import java.net.URL;
import java.util.ResourceBundle;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.TextField;

public class FXMLDocumentController implements Initializable {


TextField texto = new TextField();


@FXML
private void btnOne(ActionEvent event) {
    texto.setText("1");

}

@FXML
private void btnTwo(ActionEvent event) {
    texto.setText("2");
}

@FXML
private void btnThree(ActionEvent event) {
    texto.setText("3");
}

@FXML
private void btnFour(ActionEvent event) {
    texto.setText("4");
}

@FXML
private void btnFive(ActionEvent event) {
    texto.setText("5");
}

@FXML
private void btnSix(ActionEvent event) {
    texto.setText("6");
}

@FXML
private void btnSevent(ActionEvent event) {
    texto.setText("7");
}

@FXML
private void btnEight(ActionEvent event) {
    texto.setText("8");
}

@FXML
private void btnNine(ActionEvent event) {
    texto.setText("9");
}

@FXML
private void btnZero(ActionEvent event) {
    texto.setText("0");
}

@FXML
private void btnPoint(ActionEvent event) {
    texto.setText(".");
}

@FXML
private void btnPlus(ActionEvent event) {
    texto.setText("+");
}

@FXML
private void btnMinus(ActionEvent event) {
    texto.setText("-");
}

@FXML
private void btnBy(ActionEvent event) {
    texto.setText("*");
}

@FXML
private void btnDivided(ActionEvent event) {
    texto.setText("/");
}

@FXML
private void btnErrase(ActionEvent event){
    texto.deletePreviousChar();
}

@FXML
private void btnTotal(ActionEvent event){
    texto.getText();
}

@Override
public void initialize(URL url, ResourceBundle rb) {
    // TODO
}    

}
FXMLDocumentController:

package appcalculator;

import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;

public class AppCalculator extends Application {

@Override
public void start(Stage stage) throws Exception {
    Parent root = FXMLLoader.load(getClass().getResource("FXMLDocument.fxml"));

    Scene scene = new Scene(root);

    stage.setScene(scene);
    stage.show();
}

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

}
package appcalculadora;

import java.net.URL;
import java.util.ResourceBundle;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.TextField;

public class FXMLDocumentController implements Initializable {


TextField texto = new TextField();


@FXML
private void btnOne(ActionEvent event) {
    texto.setText("1");

}

@FXML
private void btnTwo(ActionEvent event) {
    texto.setText("2");
}

@FXML
private void btnThree(ActionEvent event) {
    texto.setText("3");
}

@FXML
private void btnFour(ActionEvent event) {
    texto.setText("4");
}

@FXML
private void btnFive(ActionEvent event) {
    texto.setText("5");
}

@FXML
private void btnSix(ActionEvent event) {
    texto.setText("6");
}

@FXML
private void btnSevent(ActionEvent event) {
    texto.setText("7");
}

@FXML
private void btnEight(ActionEvent event) {
    texto.setText("8");
}

@FXML
private void btnNine(ActionEvent event) {
    texto.setText("9");
}

@FXML
private void btnZero(ActionEvent event) {
    texto.setText("0");
}

@FXML
private void btnPoint(ActionEvent event) {
    texto.setText(".");
}

@FXML
private void btnPlus(ActionEvent event) {
    texto.setText("+");
}

@FXML
private void btnMinus(ActionEvent event) {
    texto.setText("-");
}

@FXML
private void btnBy(ActionEvent event) {
    texto.setText("*");
}

@FXML
private void btnDivided(ActionEvent event) {
    texto.setText("/");
}

@FXML
private void btnErrase(ActionEvent event){
    texto.deletePreviousChar();
}

@FXML
private void btnTotal(ActionEvent event){
    texto.getText();
}

@Override
public void initialize(URL url, ResourceBundle rb) {
    // TODO
}    

}

和我各自的FXML文档

这可能有助于您回答问题。比如@James\u D您缺少了@FXML private TextField texto;'此外,您可能会放弃大部分方法

public void actionPerformed(ActionEvent e) { 

String x = TextFieldName.getText();
if(e.getSource() == ButtonName)
TextFieldName.setText("");
以下是一个示例程序:

主要内容:

控制器:

import java.net.URL;
import java.util.ResourceBundle;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.*;

/**
 *
 * @author blj0011
 */
public class FXMLDocumentController implements Initializable
{

    @FXML
    private TextField texto;


    //Use this approach to replace most of your private button handlers!
    @FXML
    private void handleButtonAction(ActionEvent event)
    {
        Button button = (Button)event.getSource();
        texto.appendText(button.getText());
    }

    @Override
    public void initialize(URL url, ResourceBundle rb)
    {
        // TODO
    }      
}
FXML:



FXML在哪里
texto
似乎从来不会显示在UI的任何位置,因此,如果您没有看到按下按钮的任何结果,也就不足为奇了。此外,您可以使用一个方法来处理大多数按钮,而不是使用这么多私有方法。