2025年4月21日09:59:11
|
After Width: | Height: | Size: 8.6 KiB |
|
After Width: | Height: | Size: 45 KiB |
|
After Width: | Height: | Size: 45 KiB |
|
After Width: | Height: | Size: 43 KiB |
|
After Width: | Height: | Size: 62 KiB |
|
After Width: | Height: | Size: 55 KiB |
|
After Width: | Height: | Size: 31 KiB |
|
After Width: | Height: | Size: 58 KiB |
|
After Width: | Height: | Size: 21 KiB |
|
After Width: | Height: | Size: 21 KiB |
|
After Width: | Height: | Size: 51 KiB |
|
After Width: | Height: | Size: 38 KiB |
|
After Width: | Height: | Size: 37 KiB |
|
After Width: | Height: | Size: 52 KiB |
|
After Width: | Height: | Size: 47 KiB |
|
After Width: | Height: | Size: 24 KiB |
|
After Width: | Height: | Size: 47 KiB |
|
After Width: | Height: | Size: 60 KiB |
|
|
@ -0,0 +1,56 @@
|
||||||
|
### 1.项目背景
|
||||||
|
|
||||||
|
> 基于个人爱好开发的一款开源的在线考试系统,旨在为考生提供一个简单、易用、高效的在线考试系统。
|
||||||
|
|
||||||
|
#### 2.项目介绍
|
||||||
|
|
||||||
|
> 本项目基于java开发,后端`springboot`,前端采用`javafx` 开发,数据库采用`mysql`
|
||||||
|
|
||||||
|
#### 3.项目功能
|
||||||
|
|
||||||
|
##### 3.1 登录功能
|
||||||
|

|
||||||
|
##### 3.2 问题管理
|
||||||
|

|
||||||
|
|
||||||
|
###### 3.2.1 新增问题
|
||||||
|

|
||||||
|
###### 3.2.2 编辑删除
|
||||||
|

|
||||||
|
###### 3.2.3 动态表格
|
||||||
|

|
||||||
|

|
||||||
|
|
||||||
|
##### 3.3 学科管理
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
##### 3.4 用户管理
|
||||||
|
|
||||||
|
###### 3.4.1 用户列表
|
||||||
|

|
||||||
|

|
||||||
|
|
||||||
|
###### 3.4.2 权限管理
|
||||||
|

|
||||||
|
|
||||||
|
###### 3.4.3 角色管理
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
#### 3.5 选项管理
|
||||||
|
|
||||||
|

|
||||||
|

|
||||||
|
|
||||||
|
#### 3.6 试卷管理
|
||||||
|
|
||||||
|

|
||||||
|

|
||||||
|
|
||||||
|
###### 3.3.1 组卷
|
||||||
|

|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
|
||||||
|
|
@ -146,7 +146,7 @@ public class PaperDataLoad implements DataLoad {
|
||||||
paperViewComponent.setPrefWidth(1200);
|
paperViewComponent.setPrefWidth(1200);
|
||||||
paperViewComponent.setPrefHeight(649);
|
paperViewComponent.setPrefHeight(649);
|
||||||
|
|
||||||
AlertUtils.alert("组卷", paperViewComponent, 1200, 649, stage, true);
|
AlertUtils.alert("发卷", paperViewComponent, 1200, 649, stage, true);
|
||||||
|
|
||||||
});
|
});
|
||||||
return group_volumes;
|
return group_volumes;
|
||||||
|
|
|
||||||
|
|
@ -14,15 +14,40 @@ import javafx.scene.layout.HBox;
|
||||||
*/
|
*/
|
||||||
public class PaperSearchComponent extends HBox {
|
public class PaperSearchComponent extends HBox {
|
||||||
|
|
||||||
|
|
||||||
|
public enum SearchType {
|
||||||
|
QUESTION_NAME,//问题搜索
|
||||||
|
User_NAME;//用户搜索
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private SearchType searchType;
|
||||||
|
|
||||||
|
public SearchType getSearchType() {
|
||||||
|
return searchType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSearchType(SearchType searchType) {
|
||||||
|
this.searchType = searchType;
|
||||||
|
}
|
||||||
|
|
||||||
private Button searchButton;
|
private Button searchButton;
|
||||||
|
|
||||||
private SimpleStringProperty questionName = new SimpleStringProperty();
|
private SimpleStringProperty questionName = new SimpleStringProperty();
|
||||||
|
|
||||||
public PaperSearchComponent(double spacing) {
|
public PaperSearchComponent(double spacing, SearchType searchType) {
|
||||||
super();
|
super();
|
||||||
|
this.searchType = searchType;
|
||||||
|
|
||||||
this.setSpacing(spacing);
|
this.setSpacing(spacing);
|
||||||
Label label = new Label("问题名称:");
|
Label label = null;
|
||||||
|
if (searchType == SearchType.QUESTION_NAME) {
|
||||||
|
label = new Label("问题名称:");
|
||||||
|
} else {
|
||||||
|
label = new Label("用户名称:");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
label.setPadding(new Insets(5, 0, 0, 0));
|
label.setPadding(new Insets(5, 0, 0, 0));
|
||||||
TextField questionName = new TextField();
|
TextField questionName = new TextField();
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -194,7 +194,7 @@ public class PaperViewComponent extends SplitPane {
|
||||||
questionTable_data.addAll(callBack.loadQuestionData(paginationPicker.getCurrentPage(), paginationPicker.getPageSize()).getDataList());
|
questionTable_data.addAll(callBack.loadQuestionData(paginationPicker.getCurrentPage(), paginationPicker.getPageSize()).getDataList());
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
PaperSearchComponent hBox = new PaperSearchComponent(5);
|
PaperSearchComponent hBox = new PaperSearchComponent(5, PaperSearchComponent.SearchType.User_NAME);
|
||||||
hBox.getSearchButton().setOnAction(new EventHandler<ActionEvent>() {
|
hBox.getSearchButton().setOnAction(new EventHandler<ActionEvent>() {
|
||||||
@Override
|
@Override
|
||||||
public void handle(ActionEvent event) {
|
public void handle(ActionEvent event) {
|
||||||
|
|
|
||||||
|
|
@ -185,7 +185,7 @@ public class SendPaperComponent extends SplitPane {
|
||||||
questionTable_data.addAll(callBack.loadPaperData(paginationPicker.getCurrentPage(), paginationPicker.getPageSize()).getDataList());
|
questionTable_data.addAll(callBack.loadPaperData(paginationPicker.getCurrentPage(), paginationPicker.getPageSize()).getDataList());
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
PaperSearchComponent hBox = new PaperSearchComponent(5);
|
PaperSearchComponent hBox = new PaperSearchComponent(5, PaperSearchComponent.SearchType.User_NAME);
|
||||||
hBox.getSearchButton().setOnAction(new EventHandler<ActionEvent>() {
|
hBox.getSearchButton().setOnAction(new EventHandler<ActionEvent>() {
|
||||||
@Override
|
@Override
|
||||||
public void handle(ActionEvent event) {
|
public void handle(ActionEvent event) {
|
||||||
|
|
|
||||||