@ -0,0 +1,5 @@
|
||||
smtp.host=smtp.qq.com
|
||||
smtp.port=587
|
||||
smtp.username=1677625723@qq.com
|
||||
smtp.password=hytetajyjlyscbbe
|
||||
smtp.from=1677625723@qq.com
|
||||
@ -0,0 +1,27 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<?import javafx.scene.control.*?>
|
||||
<?import javafx.scene.layout.*?>
|
||||
<?import javafx.geometry.Insets?>
|
||||
|
||||
<AnchorPane xmlns:fx="http://javafx.com/fxml"
|
||||
fx:controller="com.example.myapp.controller.DashboardController"
|
||||
prefWidth="500" prefHeight="400"
|
||||
style="-fx-padding: 20;">
|
||||
<children>
|
||||
<Label layoutX="20" layoutY="20" text="用户中心" style="-fx-font-size: 24; -fx-font-weight: bold;"/>
|
||||
|
||||
<Label fx:id="welcomeLabel" layoutX="20" layoutY="70" text="欢迎用户"
|
||||
style="-fx-font-size: 16; -fx-text-fill: #2c3e50;" prefWidth="460"/>
|
||||
|
||||
<Label layoutX="20" layoutY="120" text="请选择功能:" style="-fx-font-size: 14; -fx-font-weight: bold;"/>
|
||||
|
||||
<VBox layoutX="150" layoutY="150" spacing="30" alignment="CENTER">
|
||||
<Button fx:id="studyBtn" text="进入学习系统" onAction="#onStudy"
|
||||
prefWidth="200" prefHeight="50" style="-fx-font-size: 16; -fx-background-color: #3498db; -fx-text-fill: white;"/>
|
||||
<Button fx:id="changePasswordBtn" text="修改密码" onAction="#onChangePassword"
|
||||
prefWidth="200" prefHeight="50" style="-fx-font-size: 16; -fx-background-color: #2ecc71; -fx-text-fill: white;"/>
|
||||
<Button fx:id="logoutBtn" text="退出登录" onAction="#onLogout"
|
||||
prefWidth="200" prefHeight="50" style="-fx-font-size: 16; -fx-background-color: #e74c3c; -fx-text-fill: white;"/>
|
||||
</VBox>
|
||||
</children>
|
||||
</AnchorPane>
|
||||
@ -0,0 +1,55 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<?import javafx.scene.control.*?>
|
||||
<?import javafx.scene.layout.*?>
|
||||
<?import javafx.geometry.Insets?>
|
||||
|
||||
<AnchorPane xmlns:fx="http://javafx.com/fxml"
|
||||
fx:controller="com.example.myapp.controller.ExamController"
|
||||
prefWidth="600" prefHeight="500"
|
||||
style="-fx-padding: 20;">
|
||||
<children>
|
||||
<!-- 顶部信息区域 -->
|
||||
<VBox spacing="10" layoutX="20" layoutY="20" prefWidth="560">
|
||||
<Label fx:id="questionNumberLabel" text="第 1 题 / 共 10 题"
|
||||
style="-fx-font-size: 16; -fx-font-weight: bold;"/>
|
||||
<ProgressIndicator fx:id="progressIndicator" prefWidth="560" prefHeight="20"/>
|
||||
</VBox>
|
||||
|
||||
<!-- 题目区域 -->
|
||||
<VBox spacing="20" layoutX="20" layoutY="80" prefWidth="560">
|
||||
<Label fx:id="questionTextLabel" text="题目内容"
|
||||
style="-fx-font-size: 14; -fx-wrap-text: true;"
|
||||
prefWidth="560" prefHeight="60"/>
|
||||
|
||||
<!-- 选项区域 -->
|
||||
<VBox spacing="15" prefWidth="560">
|
||||
<HBox spacing="10" alignment="CENTER_LEFT">
|
||||
<RadioButton fx:id="optionARadio"/>
|
||||
<Label fx:id="optionALabel" text="选项A" style="-fx-font-size: 14;"/>
|
||||
</HBox>
|
||||
<HBox spacing="10" alignment="CENTER_LEFT">
|
||||
<RadioButton fx:id="optionBRadio"/>
|
||||
<Label fx:id="optionBLabel" text="选项B" style="-fx-font-size: 14;"/>
|
||||
</HBox>
|
||||
<HBox spacing="10" alignment="CENTER_LEFT">
|
||||
<RadioButton fx:id="optionCRadio"/>
|
||||
<Label fx:id="optionCLabel" text="选项C" style="-fx-font-size: 14;"/>
|
||||
</HBox>
|
||||
<HBox spacing="10" alignment="CENTER_LEFT">
|
||||
<RadioButton fx:id="optionDRadio"/>
|
||||
<Label fx:id="optionDLabel" text="选项D" style="-fx-font-size: 14;"/>
|
||||
</HBox>
|
||||
</VBox>
|
||||
</VBox>
|
||||
|
||||
<!-- 按钮区域 -->
|
||||
<HBox spacing="20" layoutX="20" layoutY="350" prefWidth="560" alignment="CENTER">
|
||||
<Button fx:id="previousBtn" text="上一题" onAction="#onPreviousQuestion"
|
||||
prefWidth="100" prefHeight="40" style="-fx-font-size: 14;"/>
|
||||
<Button fx:id="nextBtn" text="下一题" onAction="#onNextQuestion"
|
||||
prefWidth="100" prefHeight="40" style="-fx-font-size: 14; -fx-background-color: #3498db; -fx-text-fill: white;"/>
|
||||
<Button fx:id="submitBtn" text="提交试卷" onAction="#onSubmitExam"
|
||||
prefWidth="100" prefHeight="40" style="-fx-font-size: 14; -fx-background-color: #e74c3c; -fx-text-fill: white;"/>
|
||||
</HBox>
|
||||
</children>
|
||||
</AnchorPane>
|
||||
@ -0,0 +1,26 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<?import javafx.scene.control.*?>
|
||||
<?import javafx.scene.layout.*?>
|
||||
<AnchorPane xmlns:fx="http://javafx.com/fxml"
|
||||
fx:controller="com.example.myapp.controller.ForgotPasswordController"
|
||||
prefWidth="500" prefHeight="400">
|
||||
<children>
|
||||
<Label layoutX="20" layoutY="20" text="忘记密码"/>
|
||||
<Label fx:id="emailLabel" layoutX="20" layoutY="60" text="重置密码"/>
|
||||
|
||||
<Label layoutX="20" layoutY="100" text="验证码:"/>
|
||||
<TextField fx:id="codeField" layoutX="100" layoutY="96" prefWidth="200"/>
|
||||
<Button fx:id="sendCodeBtn" text="发送验证码" layoutX="320" layoutY="96" onAction="#onSendCode"/>
|
||||
|
||||
<Label layoutX="20" layoutY="140" text="新密码:"/>
|
||||
<PasswordField fx:id="newPasswordField" layoutX="100" layoutY="136" prefWidth="320"/>
|
||||
|
||||
<Label layoutX="20" layoutY="180" text="确认密码:"/>
|
||||
<PasswordField fx:id="confirmPasswordField" layoutX="100" layoutY="176" prefWidth="320"/>
|
||||
|
||||
<Label fx:id="statusLabel" layoutX="20" layoutY="220" prefWidth="460"/>
|
||||
|
||||
<Button fx:id="resetPasswordBtn" text="重置密码" layoutX="100" layoutY="260" onAction="#onResetPassword"/>
|
||||
<Button fx:id="backToLoginBtn" text="返回登录" layoutX="220" layoutY="260" onAction="#onBackToLogin"/>
|
||||
</children>
|
||||
</AnchorPane>
|
||||
@ -0,0 +1,33 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<?import javafx.scene.control.*?>
|
||||
<?import javafx.scene.layout.*?>
|
||||
<?import javafx.geometry.Insets?>
|
||||
|
||||
<AnchorPane xmlns:fx="http://javafx.com/fxml"
|
||||
fx:controller="com.example.myapp.controller.GradeSelectionController"
|
||||
prefWidth="500" prefHeight="400"
|
||||
style="-fx-padding: 20;">
|
||||
<children>
|
||||
<Label layoutX="20" layoutY="20" text="学习系统" style="-fx-font-size: 24; -fx-font-weight: bold;"/>
|
||||
|
||||
<Label fx:id="welcomeLabel" layoutX="20" layoutY="70" text="欢迎用户"
|
||||
style="-fx-font-size: 16; -fx-text-fill: #2c3e50;" prefWidth="460"/>
|
||||
|
||||
<Label layoutX="20" layoutY="120" text="请选择学段:" style="-fx-font-size: 14; -fx-font-weight: bold;"/>
|
||||
|
||||
<VBox layoutX="150" layoutY="150" spacing="20" alignment="CENTER">
|
||||
<Button fx:id="primarySchoolBtn" text="小学" onAction="#onPrimarySchoolSelected"
|
||||
prefWidth="200" prefHeight="50" style="-fx-font-size: 16; -fx-background-color: #3498db; -fx-text-fill: white;"/>
|
||||
<Button fx:id="middleSchoolBtn" text="初中" onAction="#onMiddleSchoolSelected"
|
||||
prefWidth="200" prefHeight="50" style="-fx-font-size: 16; -fx-background-color: #2ecc71; -fx-text-fill: white;"/>
|
||||
<Button fx:id="highSchoolBtn" text="高中" onAction="#onHighSchoolSelected"
|
||||
prefWidth="200" prefHeight="50" style="-fx-font-size: 16; -fx-background-color: #e74c3c; -fx-text-fill: white;"/>
|
||||
</VBox>
|
||||
|
||||
<Button fx:id="backToLoginBtn" text="退出登录" layoutX="20" layoutY="320"
|
||||
onAction="#onBackToLogin" prefWidth="100" style="-fx-font-size: 12;"/>
|
||||
<!-- 在 grade_selection.fxml 中添加返回按钮 -->
|
||||
<Button fx:id="backToDashboardBtn" text="返回用户中心" layoutX="20" layoutY="320"
|
||||
onAction="#onBackToDashboard" prefWidth="120" style="-fx-font-size: 12;"/>
|
||||
</children>
|
||||
</AnchorPane>
|
||||
@ -0,0 +1,38 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<?import javafx.scene.control.*?>
|
||||
<?import javafx.scene.layout.*?>
|
||||
<AnchorPane xmlns:fx="http://javafx.com/fxml"
|
||||
fx:controller="com.example.myapp.controller.LoginController"
|
||||
prefWidth="400" prefHeight="320"
|
||||
style="-fx-padding: 20;">
|
||||
<children>
|
||||
<Label layoutX="20" layoutY="20" text="用户登录" style="-fx-font-size: 18; -fx-font-weight: bold;"/>
|
||||
|
||||
<Label layoutX="20" layoutY="60" text="用户名/邮箱:" style="-fx-font-size: 14;"/> <!-- 修改标签 -->
|
||||
<TextField fx:id="identifierField" layoutX="120" layoutY="56" prefWidth="260"
|
||||
style="-fx-font-size: 14;" promptText="请输入用户名或邮箱"/> <!-- 修改提示文本 -->
|
||||
|
||||
<Label layoutX="20" layoutY="100" text="密码:" style="-fx-font-size: 14;"/>
|
||||
<PasswordField fx:id="passwordField" layoutX="120" layoutY="96" prefWidth="260"
|
||||
style="-fx-font-size: 14;" promptText="请输入密码"/>
|
||||
|
||||
<HBox layoutX="120" layoutY="140" spacing="15">
|
||||
<Button fx:id="loginBtn" text="登录" onAction="#onLogin"
|
||||
prefWidth="70" style="-fx-font-size: 14;"/>
|
||||
<Button fx:id="registerBtn" text="注册" onAction="#onRegister"
|
||||
prefWidth="70" style="-fx-font-size: 14;"/>
|
||||
<Button fx:id="forgotPasswordBtn" text="忘记密码" onAction="#onForgotPassword"
|
||||
prefWidth="80" style="-fx-font-size: 14;"/>
|
||||
<Button text="清空" onAction="#onClear"
|
||||
prefWidth="70" style="-fx-font-size: 14;"/>
|
||||
</HBox>
|
||||
|
||||
<Label fx:id="statusLabel" layoutX="20" layoutY="190" prefWidth="360"
|
||||
style="-fx-font-size: 12; -fx-wrap-text: true;"/>
|
||||
|
||||
<!-- 提示信息 -->
|
||||
<Label layoutX="20" layoutY="230" prefWidth="360"
|
||||
text="提示:可以使用用户名或邮箱登录,忘记密码可通过邮箱重置"
|
||||
style="-fx-font-size: 11; -fx-text-fill: gray; -fx-wrap-text: true;"/>
|
||||
</children>
|
||||
</AnchorPane>
|
||||
@ -0,0 +1,40 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<?import javafx.scene.control.*?>
|
||||
<?import javafx.scene.layout.*?>
|
||||
<?import javafx.geometry.Insets?>
|
||||
|
||||
<AnchorPane xmlns:fx="http://javafx.com/fxml" fx:controller="com.example.myapp.controller.RegisterController"
|
||||
prefWidth="450" prefHeight="300"
|
||||
style="-fx-padding: 20;">
|
||||
<children>
|
||||
<Label layoutX="20" layoutY="20" text="用户注册" style="-fx-font-size: 18; -fx-font-weight: bold;"/>
|
||||
|
||||
<Label layoutX="20" layoutY="60" text="邮箱:" style="-fx-font-size: 14;"/>
|
||||
<TextField fx:id="emailField" layoutX="100" layoutY="56" prefWidth="240"
|
||||
style="-fx-font-size: 14;" promptText="请输入邮箱地址"/>
|
||||
|
||||
<Button fx:id="sendCodeBtn" text="发送注册码" layoutX="350" layoutY="56"
|
||||
onAction="#onSendCode" prefWidth="80" style="-fx-font-size: 12;"/>
|
||||
|
||||
<Label layoutX="20" layoutY="100" text="输入注册码:" style="-fx-font-size: 14;"/>
|
||||
<TextField fx:id="codeField" layoutX="100" layoutY="96" prefWidth="160"
|
||||
style="-fx-font-size: 14;" promptText="请输入6位验证码"/>
|
||||
<Button fx:id="verifyBtn" text="验证" layoutX="270" layoutY="96"
|
||||
onAction="#onVerify" prefWidth="60" style="-fx-font-size: 12;"/>
|
||||
|
||||
<Label fx:id="statusLabel" layoutX="20" layoutY="140" prefWidth="410"
|
||||
style="-fx-font-size: 12; -fx-wrap-text: true;"/>
|
||||
|
||||
<HBox layoutX="100" layoutY="180" spacing="20">
|
||||
<Button text="返回登录" onAction="#onBackToLogin"
|
||||
prefWidth="80" style="-fx-font-size: 12;"/>
|
||||
<Button text="清空" onAction="#onClear"
|
||||
prefWidth="80" style="-fx-font-size: 12;"/>
|
||||
</HBox>
|
||||
|
||||
<!-- 注册说明 -->
|
||||
<Label layoutX="20" layoutY="230" prefWidth="410"
|
||||
text="说明:每个邮箱只能注册一次,如果忘记密码请在登录后修改密码"
|
||||
style="-fx-font-size: 11; -fx-text-fill: gray; -fx-wrap-text: true;"/>
|
||||
</children>
|
||||
</AnchorPane>
|
||||
@ -0,0 +1,29 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<?import javafx.scene.control.*?>
|
||||
<?import javafx.scene.layout.*?>
|
||||
<?import javafx.geometry.Insets?>
|
||||
|
||||
<AnchorPane xmlns:fx="http://javafx.com/fxml"
|
||||
fx:controller="com.example.myapp.controller.ScoreController"
|
||||
prefWidth="400" prefHeight="300"
|
||||
style="-fx-padding: 20;">
|
||||
<children>
|
||||
<Label layoutX="20" layoutY="20" text="考试结果"
|
||||
style="-fx-font-size: 24; -fx-font-weight: bold;"/>
|
||||
|
||||
<VBox spacing="30" layoutX="100" layoutY="80" alignment="CENTER">
|
||||
<Label fx:id="scoreLabel" text="得分: 0 分"
|
||||
style="-fx-font-size: 32; -fx-font-weight: bold; -fx-text-fill: #2c3e50;"/>
|
||||
|
||||
<Label fx:id="commentLabel" text="评价"
|
||||
style="-fx-font-size: 18; -fx-font-weight: bold;"/>
|
||||
|
||||
<HBox spacing="20" alignment="CENTER">
|
||||
<Button fx:id="continueBtn" text="继续做题" onAction="#onContinue"
|
||||
prefWidth="100" prefHeight="40" style="-fx-font-size: 14; -fx-background-color: #3498db; -fx-text-fill: white;"/>
|
||||
<Button fx:id="exitBtn" text="退出登录" onAction="#onExit"
|
||||
prefWidth="100" prefHeight="40" style="-fx-font-size: 14;"/>
|
||||
</HBox>
|
||||
</VBox>
|
||||
</children>
|
||||
</AnchorPane>
|
||||
@ -0,0 +1,25 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<?import javafx.scene.control.*?>
|
||||
<?import javafx.scene.layout.*?>
|
||||
<AnchorPane xmlns:fx="http://javafx.com/fxml" fx:controller="com.example.myapp.controller.SetPasswordController" prefWidth="420" prefHeight="280">
|
||||
<children>
|
||||
<Label fx:id="emailLabel" layoutX="20" layoutY="20" text="设置账号信息" prefWidth="380"/>
|
||||
|
||||
<Label layoutX="20" layoutY="60" text="用户名:"/>
|
||||
<TextField fx:id="usernameField" layoutX="120" layoutY="56" prefWidth="260" promptText="请输入2-20位用户名"/>
|
||||
|
||||
<Label layoutX="20" layoutY="100" text="密码:"/>
|
||||
<PasswordField fx:id="pwdField" layoutX="120" layoutY="96" prefWidth="260" promptText="请输入密码"/>
|
||||
|
||||
<Label layoutX="20" layoutY="140" text="确认密码:"/>
|
||||
<PasswordField fx:id="pwdConfirmField" layoutX="120" layoutY="136" prefWidth="260" promptText="请再次输入密码"/>
|
||||
|
||||
<Button fx:id="setBtn" text="完成注册" layoutX="120" layoutY="180" onAction="#onSetPassword" prefWidth="120"/>
|
||||
<Label fx:id="statusLabel" layoutX="20" layoutY="220" prefWidth="380"/>
|
||||
|
||||
<!-- 提示信息 -->
|
||||
<Label layoutX="20" layoutY="250" prefWidth="380"
|
||||
text="提示:用户名用于登录,设置后不可更改"
|
||||
style="-fx-font-size: 11; -fx-text-fill: gray;"/>
|
||||
</children>
|
||||
</AnchorPane>
|
||||
Loading…
Reference in new issue