Eclipse,SceneBuilderを使ってプログラミングします.
ログイン画面の外観はSceneBuilderを使ってできたのですが,その後のJavaコードの書き方がわかりません.
初心者なので,SceneBuilderに対してController.javaの書き方をわかりやすく説明してくれるサイトがあったら教えてください.
なお,作りたいものは下記の通りです.
LoginController.javaは,SceneBuilderのShow Sample Controller Skeletonのコピペまでしかできていません
仕様
- idを入力(String)
- passwordを入力(String)
- ログインボタンを押下し,ログインできる(ただし次のような挙動となる)
- 正しければ画面遷移(遷移先の画面は適当でよい),間違っていればラベル表示(「ログイン情報が間違っています」など)
- 「新規作成はこちら」というハイパーリンクから新規登録画面へ遷移(遷移先の画面は適当でよい)
- 画面遷移に関して,ウィンドウは新たに立ち上げずに1つのウィンドウの表示を変えるのが望ましい(不可能な場合などは立ち上げてもよい)
- 今の段階ではidとパスワードはデータベースから拾わなくてもよい(あとから実装する)
具体的にわからないこと
- そもそもJavaFXを使う時のJavaコードの書き方(わかりやすい入門サイトがあったら紹介してください)
- id,passwordの拾い方(入力したものをどのように扱うか)
- 「ログイン情報が間違っています」などは下のように書いて,ログイン情報が間違っていた時のみ表示することは可能か(起動時など,入力情報が間違っていないときは表示しないようにする)
Login.Java
Java
1package System; 2import javafx.application.Application; 3import javafx.fxml.FXMLLoader; 4import javafx.scene.Parent; 5import javafx.scene.Scene; 6import javafx.stage.Stage; 7 8public class Login extends Application { 9 @Override 10 public void start(Stage primaryStage) { 11 try { 12 //FXMLからのシーングラフの読み込み 13 FXMLLoader loader = new FXMLLoader(getClass().getResource("Login.fxml")); 14 Parent root = loader.load(); 15 16 //シーングラフのルートノードを設定したシーンの作成 17 Scene scene = new Scene(root,600,400); 18 //ステージへのシーンの設定 19 primaryStage.setScene(scene); 20 primaryStage.setTitle("ログイン画面"); 21 primaryStage.show(); 22 } catch(Exception e) { 23 e.printStackTrace(); 24 } 25 } 26 public static void main(String[] args) { 27 launch(args); 28 } 29} 30
LoginController.Java
Java
1package System; 2 3import java.net.URL; 4import java.util.ResourceBundle; 5 6import javafx.fxml.FXML; 7import javafx.scene.control.Button; 8import javafx.scene.control.Hyperlink; 9import javafx.scene.control.Label; 10import javafx.scene.control.PasswordField; 11import javafx.scene.control.TextField; 12 13public class LoginController { 14 15 @FXML 16 private ResourceBundle resources; 17 18 @FXML 19 private URL location; 20 21 @FXML 22 private TextField num; 23 24 @FXML 25 private PasswordField passwd; 26 27 @FXML 28 private Button loginButton; 29 30 @FXML 31 private Hyperlink createLink; 32 33 @FXML 34 private Label warning; 35 36 @FXML 37 void initialize() { 38 assert num != null : "fx:id=\"num\" was not injected: check your FXML file 'Login.fxml'."; 39 assert passwd != null : "fx:id=\"passwd\" was not injected: check your FXML file 'Login.fxml'."; 40 assert loginButton != null : "fx:id=\"loginButton\" was not injected: check your FXML file 'Login.fxml'."; 41 assert createLink != null : "fx:id=\"createLink\" was not injected: check your FXML file 'Login.fxml'."; 42 assert warning != null : "fx:id=\"warning\" was not injected: check your FXML file 'Login.fxml'."; 43 44 } 45} 46 47
Login.fxml
fxml
1<?xml version="1.0" encoding="UTF-8"?> 2 3<?import javafx.scene.control.Button?> 4<?import javafx.scene.control.Hyperlink?> 5<?import javafx.scene.control.Label?> 6<?import javafx.scene.control.PasswordField?> 7<?import javafx.scene.control.TextField?> 8<?import javafx.scene.layout.Pane?> 9<?import javafx.scene.text.Font?> 10 11<Pane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/8.0.171" xmlns:fx="http://javafx.com/fxml/1" fx:controller="System.LoginController"> 12 <children> 13 <Label alignment="CENTER" layoutX="218.0" layoutY="37.0" prefHeight="41.0" prefWidth="165.0" text="ログイン画面"> 14 <font> 15 <Font size="25.0" /> 16 </font> 17 </Label> 18 <Label layoutX="144.0" layoutY="155.0" prefHeight="29.0" prefWidth="123.0" text="ID:"> 19 <font> 20 <Font size="20.0" /> 21 </font> 22 </Label> 23 <Label layoutX="144.0" layoutY="194.0" prefHeight="29.0" prefWidth="123.0" text="PASSWORAD:"> 24 <font> 25 <Font size="20.0" /> 26 </font> 27 </Label> 28 <TextField fx:id="num" layoutX="291.0" layoutY="156.0" /> 29 <PasswordField fx:id="passwd" layoutX="291.0" layoutY="195.0" /> 30 <Button fx:id="loginButton" layoutX="239.0" layoutY="294.0" mnemonicParsing="false" prefHeight="52.0" prefWidth="123.0" text="ログイン"> 31 <font> 32 <Font size="20.0" /> 33 </font> 34 </Button> 35 <Label layoutX="436.0" layoutY="91.0" prefHeight="27.0" prefWidth="79.0" text="新規登録は"> 36 <font> 37 <Font size="15.0" /> 38 </font> 39 </Label> 40 <Hyperlink fx:id="createLink" layoutX="515.0" layoutY="91.0" prefHeight="27.0" prefWidth="63.0" text="こちら" textFill="BLUE"> 41 <font> 42 <Font size="15.0" /> 43 </font> 44 </Hyperlink> 45 <Label fx:id="warning" alignment="CENTER" layoutX="157.0" layoutY="251.0" prefHeight="17.0" prefWidth="287.0" text="※正しいログイン情報を入力してください" textFill="RED" /> 46 </children> 47</Pane> 48

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。