前提・実現したいこと
現在Javaを学習しているものです。
Javaを使用したデスクトップアプリを作成したいと思い、JavaFXでアプリ作成を
始めたのですが初歩中の初歩で躓いてしまったため質問させていただきます。
現在のソースコード
とあるサイトを参考に下記のようなコードでTextFieldに入力した値を取得し、コンソールに表示するという
システムを作成しました。
一つのTextFieldであれば下記の用な書き方で取得に成功したのですが、idともう一つ"name"も取得したいとなった場合どのように書けば取得できるのでしょうか。調べてはみたのですが、TextFieldを一つしか使わないコードしか見当たらずどのように書けばわかりませんでした。まず、どのような仕組みで取得できているのかを知ったうえで二つのTextFieldnの取得の仕方を知りたいです。
Java
1//SampleController.java 2package application; 3import javafx.event.ActionEvent; 4import javafx.fxml.FXML; 5import javafx.scene.control.TextField; 6public class SampleController { 7 @FXML 8 private TextField id; 9 10 @FXML 11 protected void onGetButtonClick(ActionEvent evt) { //「取得」ボタンクリック 12 System.out.println(id.getText()); 13 14 } 15}
FXML
1//Sample.fxml 2<?xml version="1.0" encoding="UTF-8"?> 3 4<?import javafx.scene.text.*?> 5<?import java.lang.*?> 6<?import javafx.scene.control.*?> 7<?import javafx.scene.layout.*?> 8<?import javafx.scene.layout.BorderPane?> 9<?import javafx.scene.control.Button?> 10<?import javafx.scene.control.TextField?> 11<?import javafx.scene.layout.AnchorPane?> 12 13<BorderPane xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="application.SampleController"> 14 <center> 15 <AnchorPane prefHeight="441.0" prefWidth="981.0" BorderPane.alignment="CENTER"> 16 <children> 17 <Button layoutX="312.0" layoutY="345.0" mnemonicParsing="false" onAction="#onGetButtonClick" text="Button" /> 18 <TextField fx:id="id" layoutX="42.0" layoutY="162.0" prefHeight="31.0" prefWidth="102.0" /> 19 <TextField fx:id="name" layoutX="171.0" layoutY="162.0" prefHeight="31.0" prefWidth="102.0" /> 20 </children> 21 </AnchorPane> 22 </center> 23</BorderPane>
java
1//Main.java 2package application; 3 4import javafx.application.Application; 5import javafx.fxml.FXMLLoader; 6import javafx.scene.Scene; 7import javafx.scene.layout.BorderPane; 8import javafx.stage.Stage; 9 10 11public class Main extends Application { 12 @Override 13 public void start(Stage primaryStage) { 14 try { 15 BorderPane root = (BorderPane)FXMLLoader.load(getClass().getResource("Sample.fxml")); 16 Scene scene = new Scene(root,400,400); 17 scene.getStylesheets().add(getClass().getResource("application.css").toExternalForm()); 18 primaryStage.setScene(scene); 19 primaryStage.show(); 20 } catch(Exception e) { 21 e.printStackTrace(); 22 } 23 } 24 25 public static void main(String[] args) { 26 launch(args); 27 } 28} 29
エラーメッセージ
Exception in thread "JavaFX Application Thread"
JavaFXについて
Javaの学習としてデスクトップアプリを作成して成果物を作りながら学習を行いたいと考えているのですが、デスクトップアプリを作るのにJavaFXは良いのでしょうか?「JavaFX 廃止」という記事や、調べても学習の参考になるようなサイトなどがあまりなくてこずっています。学習程度ならJavaFXでも良い…など何かアドバイスや学習サイトなどがあれば教えていただきたいです。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/03/08 00:07