当前位置: 首页 > 知识库问答 >
问题:

用Scene Builder和Netbeans IDE构建的基本文件I/O JavaFX FXML应用程序

岳正浩
2023-03-14

我使用Netbeans IDE8.1和Gluon的JavaFX Scene Builder创建了一个带有文本字段的基本用户界面。

  1. 用户键入密码。
  2. 用户在三个文本字段(1.pdb...、2.4d...、3.2d...)中的三个目录中键入。
  3. 用户单击Enter,JavaFX检查密码是否为“passwd_1234”,如果是,JavaFX将在文本文件的三个单独行中输出三个目录(供其他非Java代码用作输入)。

我尝试学习Java I/O(FileReader和FileWriter),但它的实现与JavaFX和FXML有很大不同。

<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.control.PasswordField?>
<?import javafx.scene.control.TextField?>
<?import javafx.scene.layout.AnchorPane?>
<?import javafx.scene.text.Font?>
<?import javafx.scene.text.Text?>
<AnchorPane id="AnchorPane" prefHeight="292.0" prefWidth="478.0" xmlns="http://javafx.com/javafx/8.0.65" xmlns:fx="http://javafx.com/fxml/1" fx:controller="ui.UIController">
    <children>
      <PasswordField fx:id="Passwd" layoutX="208.0" layoutY="52.0" />
      <TextField fx:id="PDB" layoutX="208.0" layoutY="94.0" />
      <TextField fx:id="D4" layoutX="208.0" layoutY="129.0" />
      <TextField fx:id="D2" layoutX="208.0" layoutY="169.0" />
      <Button fx:id="Enter" layoutX="208.0" layoutY="215.0" mnemonicParsing="false" onAction="#handleButtonAction" text="Enter" />
      <Text layoutX="48.0" layoutY="112.0" strokeType="OUTSIDE" strokeWidth="0.0" text="PDB File Directory" wrappingWidth="180.3525390625">
         <font>
            <Font name="Lucida Sans Regular" size="13.0" />
         </font>
      </Text>
      <Text layoutX="48.0" layoutY="147.0" strokeType="OUTSIDE" strokeWidth="0.0" text="4D NOESY Peak List" wrappingWidth="155.00000256299973">
         <font>
            <Font name="Lucida Sans Regular" size="13.0" />
         </font>
      </Text>
      <Text layoutX="48.0" layoutY="187.0" strokeType="OUTSIDE" strokeWidth="0.0" text="2D HSQC Peak List" wrappingWidth="142.3525390625">
         <font>
            <Font name="Lucida Sans Regular" size="13.0" />
         </font>
      </Text>
      <Text layoutX="48.0" layoutY="70.0" strokeType="OUTSIDE" strokeWidth="0.0" text="Password" wrappingWidth="180.3525390625">
         <font>
            <Font name="Lucida Sans Regular" size="13.0" />
         </font>
      </Text>
    </children>
</AnchorPane>
package ui;
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;
public class UI extends Application {
    @Override
    public void start(Stage stage) throws Exception {
        Parent root = FXMLLoader.load(getClass().getResource("UI.fxml"));
        Scene scene = new Scene(root);
        stage.setScene(scene);
        stage.show();
    }
    public static void main(String[] args) {
        launch(args);
    } 
}
package ui;
import java.net.URL;
import java.util.ResourceBundle;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.MenuBar;
import javafx.scene.control.PasswordField;
import javafx.scene.control.TextField;
import javafx.scene.text.Text;
public class UIController implements Initializable {  
    private Label label;
    @FXML
    private PasswordField Passwd;
    @FXML
    private TextField PDB;
    @FXML
    private TextField D4;
    @FXML
    private TextField D2;
    @FXML
    private Button Enter;
    @FXML
    private void handleButtonAction(ActionEvent event) {
        System.out.println("You clicked me!");
        label.setText("Hello World!");
    }
    @Override
    public void initialize(URL url, ResourceBundle rb) {
    }
}

共有1个答案

蒲功
2023-03-14

您可以使用PrintWriter。要检查密码是否相同非常容易,只需getText()并使用equals

创建文件并写入:

PrintWriter writer = new PrintWriter(new FileWriter(file));

然后读取每个字段并执行writer.println(directoryName);

-->Oracle教程对此有更好的解释。

 类似资料:
  • 我正在尝试在STS中创建一个默认的Spring Boot应用程序。它在STS文件中创建了一个“Spring starter Project”-->。创建项目后未进行任何更改。错误立即显示在POM文件中...

  • 问题内容: 在将大多数Java独立应用程序部署到生产环境后,它们最终都位于一个类似这样的文件夹中。 我想知道Maven中是否有任何东西可以为我构建该结构并将其放在tar.gz中。 问题答案: 这种部署目录结构非常流行,并已被apache maven和ant等许多出色的应用程序采用。 是的,我们可以通过在maven软件包阶段使用maven-assembly-plugin来实现。 示例pom.xml:

  • 问题内容: 我将尝试第一个AngularJS项目,并且在后端使用Node.js是有意义的,尽管这意味着同时从头开始学习AngularJS和Node.js。 我想要弄清楚的第一件事是一个好的文件结构。到目前为止,我的纯HTML / CSS模板具有以下目录结构… (_site是PSD等的工作目录。) 我发现一个Node.js的一个例子的目录结构/ AngularJS应用程式这里 .... …表示以下目

  • 我试图通过使用dockerfile-maven-plugin为我的spring boot maven项目构建一个docker映像。我在Windows7上使用Docker工具箱,运行良好。 我得到以下错误: pom.xml构建 我无法得到为什么我们需要谷歌默认凭据来建立一个本地图像。请帮助我,因为我是新的Docker世界。

  • 我试图创建一个中间有几个选项卡的基本窗口,第一个选项卡包含一个表。 每次我运行主Java类时,它都会给我错误,甚至当我删除table和tab时也是如此。 下面是我的主要文件: 下面是我的fxml文件: 任何事都有帮助。我在这上面找不到任何东西,但可能是我的FXMLLoader.Load文件源吗?我真的不知道。 下面是我的错误代码: 安装gluon Mobile后出现新错误:

  • 一个普通的应用程序由以下文件组成: 二进制文件 这个安装在 /usr/bin。 一个桌面文件 这个桌面文件向shell提供关于这个程序的重要信息,例如名称、图标、D-Bus名称,启动的命令行。安装在 /usr/share/applications. 一个图标 这个图标安装在 /usr/share/icons/hicolor/48x48/apps, 无论当前背景是什么系统都会到这里查找图标。 一个设