Button 按钮赢了';不工作javafx

Button 按钮赢了';不工作javafx,button,javafx,textfield,Button,Javafx,Textfield,我完全是个编程新手。我一直在尝试创建一个简单的程序,从用户那里获取两个值(从0到10的两个等级),并返回它们之间的平均值。我已经用Swing和JOptionPane完成了,但是用javafx我什么都没有得到。代码在这里 package fxcalcmedia; import javafx.application.Application; import javafx.fxml.FXMLLoader; import javafx.scene.Parent; import javafx.scene.S

我完全是个编程新手。我一直在尝试创建一个简单的程序,从用户那里获取两个值(从0到10的两个等级),并返回它们之间的平均值。我已经用Swing和JOptionPane完成了,但是用javafx我什么都没有得到。代码在这里

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


public class FXCalcMedia 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();
        stage.setTitle("CALCULADORA DE MÉDIA");

    }

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        launch(args);
    }

}


所以。。。窗口出现,我插入成绩,但当我点击按钮获得平均成绩时,什么也没有发生。我尝试了很多东西,我搜索了很多。。。我希望有人能帮忙。再次感谢。

您需要在FXML文件中包含
fx:id=”“
的每个
节点上放置
@FXML
注释。
fxmloader
必须创建正确的实例并将它们注入控制器

另一个问题是fxml文件中的组件类型。在fxml中使用
TextField

<TextField fx:id="txtNota1" layoutX="90.0" layoutY="28.0" 
prefHeight="25.0" prefWidth="78.0" />
<TextField fx:id="txtNota2" layoutX="90.0" layoutY="71.0" 
prefHeight="25.0" prefWidth="78.0" />
<TextField fx:id="txtMedia" layoutX="90.0" layoutY="114.0" 
onAction="#clicouBotao" prefHeight="25.0" prefWidth="78.0" />
解决方案:

@FXML
private Label lblMedia;
@FXML
private Button btnCalc;
@FXML
private TextField txtMedia;
@FXML
private TextField txtNota1;
@FXML
private TextField txtNota2;

您需要在FXML文件中具有
fx:id=”“
的每个
节点上放置
@FXML
注释。
fxmloader
必须创建正确的实例并将它们注入控制器

另一个问题是fxml文件中的组件类型。在fxml中使用
TextField

<TextField fx:id="txtNota1" layoutX="90.0" layoutY="28.0" 
prefHeight="25.0" prefWidth="78.0" />
<TextField fx:id="txtNota2" layoutX="90.0" layoutY="71.0" 
prefHeight="25.0" prefWidth="78.0" />
<TextField fx:id="txtMedia" layoutX="90.0" layoutY="114.0" 
onAction="#clicouBotao" prefHeight="25.0" prefWidth="78.0" />
解决方案:

@FXML
private Label lblMedia;
@FXML
private Button btnCalc;
@FXML
private TextField txtMedia;
@FXML
private TextField txtNota1;
@FXML
private TextField txtNota2;

作为@MBec答案的扩展。为javaFX创建GUI的一个非常好的工具是。它为您提供了拖放功能,还为每个fxml文件的控制器类提供了模板。

作为@MBec答案的扩展。为javaFX创建GUI的一个非常好的工具是。它为您提供了拖放功能,还为每个fxml文件的控制器类提供了模板