2025年3月5日11:24:37
parent
e31dfcccbf
commit
30f5bbbd14
21
pom.xml
21
pom.xml
|
|
@ -38,6 +38,27 @@
|
||||||
<version>${junit.version}</version>
|
<version>${junit.version}</version>
|
||||||
<scope>test</scope>
|
<scope>test</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>de.jensd</groupId>
|
||||||
|
<artifactId>fontawesomefx-commons</artifactId>
|
||||||
|
<version>11.0</version>
|
||||||
|
<scope>compile</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>de.jensd</groupId>
|
||||||
|
<artifactId>fontawesomefx-fontawesome</artifactId>
|
||||||
|
<version>4.7.0-11</version>
|
||||||
|
<scope>compile</scope>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.controlsfx</groupId>
|
||||||
|
<artifactId>controlsfx</artifactId>
|
||||||
|
<version>11.2.1</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
<build>
|
<build>
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,38 @@
|
||||||
|
package com.zhangmeng.online.exam.ui.admin;
|
||||||
|
|
||||||
|
import com.zhangmeng.online.exam.ui.layouts.SideMenu;
|
||||||
|
import com.zhangmeng.online.exam.ui.layouts.TopMenu;
|
||||||
|
import javafx.scene.control.MenuBar;
|
||||||
|
import javafx.scene.control.SplitPane;
|
||||||
|
import javafx.scene.layout.AnchorPane;
|
||||||
|
import javafx.scene.layout.BorderPane;
|
||||||
|
import javafx.scene.layout.StackPane;
|
||||||
|
import javafx.scene.layout.VBox;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author zm
|
||||||
|
* @date 2025/3/5 9:36
|
||||||
|
* @version: 1.0
|
||||||
|
*/
|
||||||
|
public class IndexPage extends BorderPane {
|
||||||
|
|
||||||
|
private SideMenu sideMenu = null;
|
||||||
|
|
||||||
|
public IndexPage() {
|
||||||
|
sideMenu = new SideMenu(); // 导航栏容器
|
||||||
|
StackPane contentArea = new StackPane(); // 右侧内容区
|
||||||
|
contentArea.setStyle("-fx-background-color: #3ce53c;");
|
||||||
|
|
||||||
|
AnchorPane top = new AnchorPane(); // 顶部容器
|
||||||
|
top.setStyle("-fx-background-color: #8a4ed4;");
|
||||||
|
top.setPrefHeight(40);
|
||||||
|
|
||||||
|
TopMenu topMenu = new TopMenu(); // 顶部菜单栏
|
||||||
|
top.getChildren().add(topMenu);
|
||||||
|
|
||||||
|
this.setLeft(sideMenu);
|
||||||
|
this.setCenter(contentArea);
|
||||||
|
this.setTop(top);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -7,6 +7,8 @@ import javafx.scene.control.Label;
|
||||||
import javafx.scene.control.PasswordField;
|
import javafx.scene.control.PasswordField;
|
||||||
import javafx.scene.control.TextField;
|
import javafx.scene.control.TextField;
|
||||||
import javafx.scene.layout.*;
|
import javafx.scene.layout.*;
|
||||||
|
import javafx.stage.Stage;
|
||||||
|
import javafx.stage.Window;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author zm
|
* @author zm
|
||||||
|
|
@ -107,8 +109,11 @@ public class LoginPage extends AnchorPane {
|
||||||
button1.setOnAction(event -> {
|
button1.setOnAction(event -> {
|
||||||
System.out.println("登录");
|
System.out.println("登录");
|
||||||
Scene scene = button1.getScene();
|
Scene scene = button1.getScene();
|
||||||
ShortAnswerComponent shortAnswerComponent = new ShortAnswerComponent();
|
IndexPage shortAnswerComponent = new IndexPage();
|
||||||
scene.setRoot(shortAnswerComponent);
|
scene.setRoot(shortAnswerComponent);
|
||||||
|
Stage window =(Stage) scene.getWindow();
|
||||||
|
window.setResizable(true);
|
||||||
|
// window.setFullScreen(true);
|
||||||
});
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,23 @@
|
||||||
|
package com.zhangmeng.online.exam.ui.layouts;
|
||||||
|
|
||||||
|
import javafx.scene.control.Button;
|
||||||
|
import javafx.scene.layout.VBox;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author zm
|
||||||
|
* @date 2025/3/5 9:42
|
||||||
|
* @version: 1.0
|
||||||
|
*/
|
||||||
|
public class SideMenu extends VBox {
|
||||||
|
|
||||||
|
|
||||||
|
public SideMenu() {
|
||||||
|
|
||||||
|
this.setSpacing(10);
|
||||||
|
this.setPrefWidth(200);
|
||||||
|
this.setStyle("-fx-background-color: #2c3e50;");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,17 @@
|
||||||
|
package com.zhangmeng.online.exam.ui.layouts;
|
||||||
|
|
||||||
|
import javafx.scene.control.Menu;
|
||||||
|
import javafx.scene.control.MenuBar;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author zm
|
||||||
|
* @date 2025/3/5 11:09
|
||||||
|
* @version: 1.0
|
||||||
|
*/
|
||||||
|
public class TopMenu extends MenuBar {
|
||||||
|
|
||||||
|
public TopMenu() {
|
||||||
|
super();
|
||||||
|
this.prefHeight(40);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,14 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
|
||||||
|
<?import java.lang.*?>
|
||||||
|
<?import java.util.*?>
|
||||||
|
<?import javafx.scene.*?>
|
||||||
|
<?import javafx.scene.control.*?>
|
||||||
|
<?import javafx.scene.layout.*?>
|
||||||
|
|
||||||
|
<AnchorPane xmlns="http://javafx.com/javafx"
|
||||||
|
xmlns:fx="http://javafx.com/fxml"
|
||||||
|
fx:controller="fmxl.Index"
|
||||||
|
prefHeight="400.0" prefWidth="600.0">
|
||||||
|
|
||||||
|
</AnchorPane>
|
||||||
|
|
@ -0,0 +1,35 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
|
||||||
|
<?import javafx.scene.layout.AnchorPane?>
|
||||||
|
<?import javafx.scene.layout.GridPane?>
|
||||||
|
<?import javafx.scene.layout.ColumnConstraints?>
|
||||||
|
<?import javafx.scene.layout.RowConstraints?>
|
||||||
|
<?import javafx.scene.control.Label?>
|
||||||
|
<?import javafx.scene.control.TextField?>
|
||||||
|
<?import javafx.scene.control.PasswordField?>
|
||||||
|
<?import javafx.scene.control.Button?>
|
||||||
|
<AnchorPane prefHeight="649.0" prefWidth="1200.0" xmlns="http://javafx.com/javafx/19"
|
||||||
|
xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.zhangmeng.online.exam.ui.admin.LoginController">
|
||||||
|
<children>
|
||||||
|
<GridPane layoutX="485.0" layoutY="193.0" prefHeight="183.0" prefWidth="286.0" AnchorPane.bottomAnchor="281.0"
|
||||||
|
AnchorPane.leftAnchor="485.0" AnchorPane.rightAnchor="429.0" AnchorPane.topAnchor="185.0">
|
||||||
|
<columnConstraints>
|
||||||
|
<ColumnConstraints hgrow="SOMETIMES" maxWidth="229.0" minWidth="10.0" prefWidth="38.0"/>
|
||||||
|
<ColumnConstraints hgrow="SOMETIMES" maxWidth="423.0" minWidth="10.0" prefWidth="248.0"/>
|
||||||
|
</columnConstraints>
|
||||||
|
<rowConstraints>
|
||||||
|
<RowConstraints maxHeight="174.0" minHeight="10.0" prefHeight="60.0" vgrow="SOMETIMES"/>
|
||||||
|
<RowConstraints maxHeight="206.0" minHeight="10.0" prefHeight="47.0" vgrow="SOMETIMES"/>
|
||||||
|
<RowConstraints maxHeight="238.0" minHeight="10.0" prefHeight="52.0" vgrow="SOMETIMES"/>
|
||||||
|
</rowConstraints>
|
||||||
|
<children>
|
||||||
|
<Label text="账号"/>
|
||||||
|
<Label text="密码" GridPane.rowIndex="1"/>
|
||||||
|
<TextField GridPane.columnIndex="1"/>
|
||||||
|
<Button mnemonicParsing="false" prefHeight="23.0" prefWidth="178.0" text="登录" GridPane.columnIndex="1"
|
||||||
|
GridPane.rowIndex="2"/>
|
||||||
|
<PasswordField GridPane.columnIndex="1" GridPane.rowIndex="1"/>
|
||||||
|
</children>
|
||||||
|
</GridPane>
|
||||||
|
</children>
|
||||||
|
</AnchorPane>
|
||||||
Loading…
Reference in New Issue