質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JavaFX

JavaFXとは、Java仮想マシン上で動作するリッチインターネットアプリケーション (RIA) のGUIライブラリです。Swingとは異なり、FXMLと呼ばれる XMLとCSSを併用してデザインを記述します。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

1回答

5131閲覧

JavaFXでログイン画面を作成したいです

P_Beginner

総合スコア99

JavaFX

JavaFXとは、Java仮想マシン上で動作するリッチインターネットアプリケーション (RIA) のGUIライブラリです。Swingとは異なり、FXMLと呼ばれる XMLとCSSを併用してデザインを記述します。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2019/01/25 02:18

編集2019/01/28 07:19

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

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

そもそもJavaFXを使う時のJavaコードの書き方(わかりやすい入門サイトがあったら紹介してください)

javafx scenebuilderで検索したら結構画像つきで説明してる記事が出てきます。
どんなサイトがお好みかわからないので調べてみてください。

「とっくに調べました」ということであればどの記事を参考にしたのか、
なぜその記事だとわからなかったのかがあれば助言しやすいです。

id,passwordの拾い方(入力したものをどのように扱うか)

コンポーネントにidを付けたり、ボタンにonActionを付けたりしないと拾えないです。
scenebuilderで作成した画面とJavaの紐付けがわからないとできないので、
まずは調べるところからですかね。

「ログイン情報が間違っています」などは下のように書いて,ログイン情報が間違っていた時のみ表示することは可能か(起動時など,入力情報が間違っていないときは表示しないようにする)

可能です。

投稿2019/01/25 02:47

dice142

総合スコア5158

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問