去除UI库: jfoenix,使用自定义组件
This commit is contained in:
parent
6904b50e2e
commit
7b3fb90865
13
build.gradle
13
build.gradle
|
@ -34,7 +34,6 @@ javafx {
|
|||
}
|
||||
|
||||
dependencies {
|
||||
implementation('com.jfoenix:jfoenix:9.0.10')
|
||||
implementation("com.google.code.gson:gson:2.9.1")
|
||||
implementation('net.java.dev.jna:jna:5.12.1')
|
||||
implementation('net.java.dev.jna:jna-platform:5.12.1')
|
||||
|
@ -58,20 +57,10 @@ jlink {
|
|||
imageZip = project.file("${buildDir}/distributions/app-${javafx.platform.classifier}.zip") as RegularFile
|
||||
options = ['--strip-debug', '--compress', '2', '--no-header-files', '--no-man-pages']
|
||||
launcher {
|
||||
name = 'Roomit'
|
||||
name = 'RoomIt'
|
||||
}
|
||||
}
|
||||
|
||||
jlinkZip {
|
||||
group = 'distribution'
|
||||
}
|
||||
|
||||
// 打包排除的文件
|
||||
sourceSets {
|
||||
main {
|
||||
// 排除resources静态资源文件夹里面的文件
|
||||
resources {
|
||||
exclude 'org/rococy/roomit/config.json'
|
||||
}
|
||||
}
|
||||
}
|
|
@ -15,7 +15,7 @@
|
|||
}
|
||||
},
|
||||
"keyboard": {
|
||||
"brush": "CTRL+G",
|
||||
"brush": "CTRL+SHIFT+K",
|
||||
"rectangle": "CTRL+R",
|
||||
"ellipse": "CTRL+Q",
|
||||
"tools": "CTRL+F",
|
|
@ -1 +1 @@
|
|||
rootProject.name = "roomIt"
|
||||
rootProject.name = "RoomIt"
|
|
@ -2,7 +2,6 @@ module org.rococy.roomit {
|
|||
requires javafx.controls;
|
||||
requires javafx.fxml;
|
||||
requires java.desktop;
|
||||
requires com.jfoenix;
|
||||
requires com.google.gson;
|
||||
requires com.sun.jna;
|
||||
requires com.sun.jna.platform;
|
||||
|
|
|
@ -61,7 +61,7 @@ public class MainWindow extends Application {
|
|||
FXMLLoader fxmlLoader = new FXMLLoader(ResourceUtils.getResource("fxml/mainWindow.fxml"));
|
||||
Scene scene = new Scene(fxmlLoader.load(), ScreenUtils.getScreenWidth(), ScreenUtils.getScreenHeight());
|
||||
// 场景背景透明
|
||||
scene.setFill(Paint.valueOf("#00000000"));
|
||||
scene.setFill(Paint.valueOf(GlobalConsts.TRANSPARENT_COLOR));
|
||||
|
||||
// 设置场景
|
||||
stage.setScene(scene);
|
||||
|
|
|
@ -38,7 +38,7 @@ public class SettingWindow extends Application {
|
|||
FXMLLoader fxmlLoader = new FXMLLoader(ResourceUtils.getResource("fxml/settingWindow.fxml"));
|
||||
Scene scene = new Scene(fxmlLoader.load());
|
||||
// 场景填充透明背景
|
||||
scene.setFill(Paint.valueOf("#00000000"));
|
||||
scene.setFill(Paint.valueOf(GlobalConsts.TRANSPARENT_COLOR));
|
||||
// 设置场景
|
||||
stage.setScene(scene);
|
||||
// 设置图标
|
||||
|
|
|
@ -39,7 +39,7 @@ public class ToolsWindow extends Application {
|
|||
FXMLLoader fxmlLoader = new FXMLLoader(ResourceUtils.getResource("fxml/toolsWindow.fxml"));
|
||||
Scene scene = new Scene(fxmlLoader.load());
|
||||
// 透明背景
|
||||
scene.setFill(Paint.valueOf("#00000000"));
|
||||
scene.setFill(Paint.valueOf(GlobalConsts.TRANSPARENT_COLOR));
|
||||
// 设置场景
|
||||
stage.setScene(scene);
|
||||
// 设置标题
|
||||
|
|
|
@ -7,6 +7,7 @@ import javafx.scene.paint.Paint;
|
|||
import javafx.stage.Screen;
|
||||
import javafx.stage.Stage;
|
||||
import javafx.stage.StageStyle;
|
||||
import org.rococy.roomit.constant.GlobalConsts;
|
||||
import org.rococy.roomit.util.ResourceUtils;
|
||||
|
||||
import java.io.IOException;
|
||||
|
@ -30,7 +31,7 @@ public class TrayWindow extends Application {
|
|||
// 设置场景
|
||||
stage.setScene(scene);
|
||||
// 场景填充透明背景
|
||||
scene.setFill(Paint.valueOf("#00000000"));
|
||||
scene.setFill(Paint.valueOf(GlobalConsts.TRANSPARENT_COLOR));
|
||||
// 置顶
|
||||
stage.setAlwaysOnTop(true);
|
||||
// 取消任务栏
|
||||
|
|
|
@ -8,7 +8,6 @@ import org.rococy.roomit.constant.GlobalConsts;
|
|||
import org.rococy.roomit.domain.*;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Path;
|
||||
import java.util.HashMap;
|
||||
|
@ -23,23 +22,27 @@ public class ConfigurationManager {
|
|||
|
||||
private static ShapeConfiguration shapeConfiguration;
|
||||
private static KeyBoardConfiguration keyBoardConfiguration;
|
||||
|
||||
private static final Path CONFIGURATION_FILE_PATH = Path.of(GlobalConsts.CONFIGURATION_FILE_PATH);
|
||||
|
||||
static {
|
||||
initConfiguration(readConfigFileContent());
|
||||
try {
|
||||
initConfiguration(Files.readString(CONFIGURATION_FILE_PATH));
|
||||
|
||||
Runtime.getRuntime().addShutdownHook(new Thread(() -> {
|
||||
Gson gson = new GsonBuilder().setPrettyPrinting().create();
|
||||
Map<String, Object> configMap = new HashMap<>(2);
|
||||
configMap.put("shape", shapeConfiguration);
|
||||
configMap.put("keyboard", keyBoardConfiguration.getKeyBoardMap());
|
||||
Runtime.getRuntime().addShutdownHook(new Thread(() -> {
|
||||
Gson gson = new GsonBuilder().setPrettyPrinting().create();
|
||||
Map<String, Object> configMap = new HashMap<>(2);
|
||||
configMap.put("shape", shapeConfiguration);
|
||||
configMap.put("keyboard", keyBoardConfiguration.getKeyBoardMap());
|
||||
|
||||
try {
|
||||
Files.writeString(Path.of(GlobalConsts.CONFIGURATION_FILE_URL), gson.toJson(configMap));
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}));
|
||||
try {
|
||||
Files.writeString(CONFIGURATION_FILE_PATH, gson.toJson(configMap));
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}));
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
public static BrushConfiguration getBrushConfiguration() {
|
||||
|
@ -77,13 +80,4 @@ public class ConfigurationManager {
|
|||
keyBoardConfiguration = new KeyBoardConfiguration(gson.fromJson(rootObject.get("keyboard"), Map.class));
|
||||
}
|
||||
|
||||
private static String readConfigFileContent() {
|
||||
try {
|
||||
return Files.readString(Path.of(GlobalConsts.CONFIGURATION_FILE_URL), StandardCharsets.UTF_8);
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -11,6 +11,11 @@ public class GlobalConsts {
|
|||
*/
|
||||
public static final String THEME_COLOR = "linear-gradient(to bottom, #f64f59, #c471ed, #12c2e9)";
|
||||
|
||||
/**
|
||||
* 透明色
|
||||
*/
|
||||
public static final String TRANSPARENT_COLOR = "#00000000";
|
||||
|
||||
/**
|
||||
* logo图标路径
|
||||
*/
|
||||
|
@ -18,8 +23,7 @@ public class GlobalConsts {
|
|||
|
||||
/**
|
||||
* 配置文件路径
|
||||
* TODO 完成配置文件路径 打包进image文件夹,与bin目录同级
|
||||
*/
|
||||
public static final String CONFIGURATION_FILE_URL = "D:\\background\\IdeaProject\\RoomIt\\src\\main\\resources\\org\\rococy\\roomit\\config.json";
|
||||
public static final String CONFIGURATION_FILE_PATH = System.getProperty("user.dir") + "\\config.json";
|
||||
|
||||
}
|
||||
|
|
|
@ -170,10 +170,9 @@ public class ResizableEllipseWrapper extends Resizer {
|
|||
* 配置项
|
||||
*/
|
||||
private final EllipseConfiguration ellipseConfiguration = ConfigurationManager.getEllipseConfiguration();
|
||||
private static final String FILL_COLOR = "#00000000";
|
||||
|
||||
public InnerEllipse() {
|
||||
styleMap.addStyle("-fx-fill", FILL_COLOR);
|
||||
styleMap.addStyle("-fx-fill", GlobalConsts.TRANSPARENT_COLOR);
|
||||
styleMap.addStyle("-fx-stroke", ellipseConfiguration.getBorderColor());
|
||||
styleMap.addReactStyle("-fx-stroke-width", ellipseConfiguration.getBorderWidth());
|
||||
}
|
||||
|
|
|
@ -2,6 +2,7 @@ package org.rococy.roomit.control;
|
|||
|
||||
import javafx.scene.Parent;
|
||||
import org.rococy.roomit.config.ConfigurationManager;
|
||||
import org.rococy.roomit.constant.GlobalConsts;
|
||||
import org.rococy.roomit.control.base.Resizer;
|
||||
import org.rococy.roomit.domain.RectangleConfiguration;
|
||||
import org.rococy.roomit.util.ReactStyleMap;
|
||||
|
@ -38,7 +39,7 @@ public class ResizableRectangle extends Resizer {
|
|||
rectangleConfiguration = ConfigurationManager.getRectangleConfiguration();
|
||||
|
||||
// 填充颜色、边框颜色、边框宽度、圆角
|
||||
styleMap.addStyle("-fx-fill", "#00000000");
|
||||
styleMap.addStyle("-fx-fill", GlobalConsts.TRANSPARENT_COLOR);
|
||||
styleMap.addStyle("-fx-border-color", rectangleConfiguration.getBorderColor());
|
||||
styleMap.addStyle("-fx-border-width", rectangleConfiguration.getBorderWidth());
|
||||
styleMap.addStyle("-fx-border-style", "solid");
|
||||
|
|
|
@ -0,0 +1,26 @@
|
|||
package org.rococy.roomit.control;
|
||||
|
||||
import javafx.scene.control.Slider;
|
||||
|
||||
/**
|
||||
* 滑动条
|
||||
*
|
||||
* @author Rococy
|
||||
* @date 2022/10/12
|
||||
*/
|
||||
public class RoomItSlider extends Slider {
|
||||
|
||||
|
||||
public RoomItSlider() {
|
||||
// 显示刻度值
|
||||
this.setShowTickLabels(true);
|
||||
// 刻度之间的单位距离
|
||||
this.setMajorTickUnit(1);
|
||||
this.initEvents();
|
||||
}
|
||||
|
||||
private void initEvents() {
|
||||
this.setOnMouseReleased(e -> this.setValue(Math.round(this.getValue())));
|
||||
}
|
||||
|
||||
}
|
|
@ -1,10 +1,9 @@
|
|||
package org.rococy.roomit.controller;
|
||||
|
||||
import com.jfoenix.controls.JFXSlider;
|
||||
import com.jfoenix.controls.JFXTextField;
|
||||
import javafx.fxml.FXML;
|
||||
import javafx.scene.control.Button;
|
||||
import javafx.scene.control.ScrollPane;
|
||||
import javafx.scene.control.TextField;
|
||||
import javafx.scene.control.*;
|
||||
import javafx.scene.input.KeyEvent;
|
||||
import javafx.scene.input.MouseEvent;
|
||||
|
@ -14,6 +13,7 @@ import javafx.scene.text.Text;
|
|||
import org.rococy.roomit.config.ConfigurationManager;
|
||||
import org.rococy.roomit.constant.GlobalConsts;
|
||||
import org.rococy.roomit.constant.KeyBoardConsts;
|
||||
import org.rococy.roomit.control.RoomItSlider;
|
||||
import org.rococy.roomit.domain.BrushConfiguration;
|
||||
import org.rococy.roomit.domain.EllipseConfiguration;
|
||||
import org.rococy.roomit.domain.RectangleConfiguration;
|
||||
|
@ -61,7 +61,7 @@ public class SettingWindowController {
|
|||
@FXML
|
||||
private ColorPicker brushStrokeColorPicker;
|
||||
@FXML
|
||||
private JFXSlider brushLineWidthSlider;
|
||||
private RoomItSlider brushLineWidthSlider;
|
||||
|
||||
/**
|
||||
* 矩形
|
||||
|
@ -69,7 +69,7 @@ public class SettingWindowController {
|
|||
@FXML
|
||||
private ColorPicker rectangleBorderColorPicker;
|
||||
@FXML
|
||||
private JFXSlider rectangleBorderWidthSlider;
|
||||
private RoomItSlider rectangleBorderWidthSlider;
|
||||
|
||||
/**
|
||||
* 椭圆
|
||||
|
@ -77,7 +77,7 @@ public class SettingWindowController {
|
|||
@FXML
|
||||
private ColorPicker ellipseBorderColorPicker;
|
||||
@FXML
|
||||
private JFXSlider ellipseBorderWidthSlider;
|
||||
private RoomItSlider ellipseBorderWidthSlider;
|
||||
|
||||
@FXML
|
||||
private RadioButton transparentRadioBtn;
|
||||
|
@ -88,23 +88,23 @@ public class SettingWindowController {
|
|||
* 快捷键
|
||||
*/
|
||||
@FXML
|
||||
private JFXTextField brushKeyboard;
|
||||
private TextField brushKeyboard;
|
||||
@FXML
|
||||
private JFXTextField rectangleKeyboard;
|
||||
private TextField rectangleKeyboard;
|
||||
@FXML
|
||||
private JFXTextField ellipseKeyboard;
|
||||
private TextField ellipseKeyboard;
|
||||
@FXML
|
||||
private JFXTextField toolsKeyboard;
|
||||
private TextField toolsKeyboard;
|
||||
@FXML
|
||||
private JFXTextField colorPickerKeyboard;
|
||||
private TextField colorPickerKeyboard;
|
||||
@FXML
|
||||
private JFXTextField expendMouseKeyboard;
|
||||
private TextField expendMouseKeyboard;
|
||||
@FXML
|
||||
private JFXTextField clearKeyboard;
|
||||
private TextField clearKeyboard;
|
||||
@FXML
|
||||
private JFXTextField screenshotAndCopyKeyboard;
|
||||
private TextField screenshotAndCopyKeyboard;
|
||||
@FXML
|
||||
private JFXTextField openOrCloseKeyboard;
|
||||
private TextField openOrCloseKeyboard;
|
||||
|
||||
@FXML
|
||||
public void switchSideButtons(MouseEvent event) {
|
||||
|
@ -133,7 +133,7 @@ public class SettingWindowController {
|
|||
|
||||
@FXML
|
||||
public void keyboardTextFieldMouseClick(MouseEvent e) {
|
||||
((JFXTextField) e.getSource()).selectAll();
|
||||
((TextField) e.getSource()).selectAll();
|
||||
}
|
||||
|
||||
@FXML
|
||||
|
@ -142,7 +142,7 @@ public class SettingWindowController {
|
|||
return;
|
||||
}
|
||||
|
||||
JFXTextField textField = (JFXTextField) e.getSource();
|
||||
TextField textField = (TextField) e.getSource();
|
||||
String key = (String) textField.getUserData();
|
||||
StringJoiner keyBoardJoiner = new StringJoiner("+");
|
||||
|
||||
|
@ -217,20 +217,20 @@ public class SettingWindowController {
|
|||
}
|
||||
// 线条颜色
|
||||
String strokeColor = brushConfiguration.getStrokeColor();
|
||||
brushStrokeColorPicker.setValue(Color.valueOf(strokeColor.equals(GlobalConsts.THEME_COLOR) ? "#00000000" : strokeColor));
|
||||
brushStrokeColorPicker.setValue(Color.valueOf(strokeColor.equals(GlobalConsts.THEME_COLOR) ? GlobalConsts.TRANSPARENT_COLOR : strokeColor));
|
||||
// 线条粗细
|
||||
brushLineWidthSlider.setValue(brushConfiguration.getLineWidth());
|
||||
}
|
||||
|
||||
private void initRectangleConfiguration() {
|
||||
String borderColor = rectangleConfiguration.getBorderColor();
|
||||
rectangleBorderColorPicker.setValue(Color.valueOf(borderColor.equals(GlobalConsts.THEME_COLOR) ? "#00000000" : borderColor));
|
||||
rectangleBorderColorPicker.setValue(Color.valueOf(borderColor.equals(GlobalConsts.THEME_COLOR) ? GlobalConsts.TRANSPARENT_COLOR : borderColor));
|
||||
rectangleBorderWidthSlider.setValue(rectangleConfiguration.getBorderWidth());
|
||||
}
|
||||
|
||||
private void initEllipseConfiguration() {
|
||||
String borderColor = ellipseConfiguration.getBorderColor();
|
||||
ellipseBorderColorPicker.setValue(Color.valueOf(borderColor.equals(GlobalConsts.THEME_COLOR) ? "#00000000" : borderColor));
|
||||
ellipseBorderColorPicker.setValue(Color.valueOf(borderColor.equals(GlobalConsts.THEME_COLOR) ? GlobalConsts.TRANSPARENT_COLOR : borderColor));
|
||||
ellipseBorderWidthSlider.setValue(ellipseConfiguration.getBorderWidth());
|
||||
}
|
||||
|
||||
|
|
|
@ -18,11 +18,6 @@ import java.util.Map;
|
|||
*/
|
||||
public class RoomItCursor extends SVGPath {
|
||||
|
||||
/**
|
||||
* 配置项
|
||||
*/
|
||||
private static final String FILL_COLOR = GlobalConsts.THEME_COLOR;
|
||||
|
||||
/**
|
||||
* 存储鼠标尺寸的对应关系
|
||||
*/
|
||||
|
@ -51,7 +46,7 @@ public class RoomItCursor extends SVGPath {
|
|||
this.setRotate(-15);
|
||||
|
||||
// 设置渐变色
|
||||
this.setStyle("-fx-fill: " + FILL_COLOR);
|
||||
this.setStyle("-fx-fill: " + GlobalConsts.THEME_COLOR);
|
||||
|
||||
// small -> 0
|
||||
LogoPosition smallLogo = new LogoPosition(28, 8, 27, 10, 32, 13);
|
||||
|
@ -95,7 +90,7 @@ public class RoomItCursor extends SVGPath {
|
|||
|
||||
public void hide() {
|
||||
this.setOpacity(0);
|
||||
this.mouseSymbol.fillColor("#00000000");
|
||||
this.mouseSymbol.fillColor(GlobalConsts.TRANSPARENT_COLOR);
|
||||
}
|
||||
|
||||
public void setCursorLogo(MouseSymbol mouseSymbol) {
|
||||
|
|
|
@ -65,7 +65,7 @@
|
|||
}
|
||||
|
||||
.keyboard-wrapper .label {
|
||||
-fx-padding: 6px 5px 0 0;
|
||||
-fx-padding: 0px 5px 3px 0;
|
||||
-fx-font-size: 14px;
|
||||
}
|
||||
|
||||
|
@ -74,27 +74,6 @@
|
|||
}
|
||||
|
||||
/* 滑动条轨道 */
|
||||
.jfx-slider {
|
||||
-fx-padding: 1px 0 0;
|
||||
-jfx-default-thumb: #dfdfdf;
|
||||
-jfx-default-track: rgba(229, 229, 229, 0.53);
|
||||
}
|
||||
|
||||
.jfx-slider .track {
|
||||
-fx-pref-height: 8px;
|
||||
}
|
||||
|
||||
.jfx-slider .slider-value {
|
||||
-fx-stroke: #545151;
|
||||
-fx-font-size: 10.0;
|
||||
}
|
||||
|
||||
.jfx-text-field {
|
||||
-fx-pref-width: 200px;
|
||||
-fx-text-fill: #525252;
|
||||
-fx-font-size: 13px;
|
||||
-fx-prompt-text-fill: #ccc;
|
||||
|
||||
-jfx-unfocus-color: #525252;
|
||||
-jfx-focus-color: #525252;
|
||||
.text-field {
|
||||
-fx-alignment: center;
|
||||
}
|
|
@ -1,9 +1,9 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<?import com.jfoenix.controls.JFXSlider?>
|
||||
<?import javafx.scene.control.*?>
|
||||
<?import javafx.scene.layout.*?>
|
||||
<?import com.jfoenix.controls.JFXTextField?>
|
||||
|
||||
<?import org.rococy.roomit.control.RoomItSlider?>
|
||||
<HBox xmlns:fx="http://javafx.com/fxml"
|
||||
fx:controller="org.rococy.roomit.controller.SettingWindowController"
|
||||
stylesheets="@../css/setting.css"
|
||||
|
@ -48,7 +48,7 @@
|
|||
|
||||
<HBox style="-fx-spacing: 10px">
|
||||
<Label style="-fx-padding: 0px 0">线条粗细:</Label>
|
||||
<JFXSlider fx:id="brushLineWidthSlider" styleClass="jfx-slider" min="1" max="10"
|
||||
<RoomItSlider fx:id="brushLineWidthSlider" styleClass="jfx-slider" min="1" max="10"
|
||||
blockIncrement="1"/>
|
||||
</HBox>
|
||||
</VBox>
|
||||
|
@ -64,7 +64,7 @@
|
|||
|
||||
<HBox style="-fx-spacing: 10px">
|
||||
<Label style="-fx-padding: 0px 0">边框粗细:</Label>
|
||||
<JFXSlider fx:id="rectangleBorderWidthSlider" styleClass="jfx-slider" min="1" max="10"
|
||||
<RoomItSlider fx:id="rectangleBorderWidthSlider" styleClass="jfx-slider" min="1" max="10"
|
||||
blockIncrement="1"/>
|
||||
</HBox>
|
||||
</VBox>
|
||||
|
@ -80,7 +80,7 @@
|
|||
|
||||
<HBox style="-fx-spacing: 10px">
|
||||
<Label style="-fx-padding: 0px 0">边框粗细:</Label>
|
||||
<JFXSlider fx:id="ellipseBorderWidthSlider" styleClass="jfx-slider" min="1" max="10"
|
||||
<RoomItSlider fx:id="ellipseBorderWidthSlider" styleClass="jfx-slider" min="1" max="10"
|
||||
blockIncrement="1"/>
|
||||
</HBox>
|
||||
</VBox>
|
||||
|
@ -109,55 +109,55 @@
|
|||
</rowConstraints>
|
||||
|
||||
<Label styleClass="label" GridPane.rowIndex="1" GridPane.columnIndex="1">切换为画笔:</Label>
|
||||
<JFXTextField fx:id="brushKeyboard" userData="brush" editable="false"
|
||||
<TextField fx:id="brushKeyboard" userData="brush" editable="false"
|
||||
onKeyPressed="#keyboardTextFieldKeyPress"
|
||||
onMouseClicked="#keyboardTextFieldMouseClick"
|
||||
styleClass="jfx-text-field" GridPane.rowIndex="1" GridPane.columnIndex="2"/>
|
||||
|
||||
<Label styleClass="label" GridPane.rowIndex="2" GridPane.columnIndex="1">切换为矩形:</Label>
|
||||
<JFXTextField fx:id="rectangleKeyboard" userData="rectangle" editable="false"
|
||||
<TextField fx:id="rectangleKeyboard" userData="rectangle" editable="false"
|
||||
onKeyPressed="#keyboardTextFieldKeyPress"
|
||||
onMouseClicked="#keyboardTextFieldMouseClick" GridPane.rowIndex="2"
|
||||
GridPane.columnIndex="2"/>
|
||||
|
||||
<Label styleClass="label" GridPane.rowIndex="3" GridPane.columnIndex="1">切换为椭圆:</Label>
|
||||
<JFXTextField fx:id="ellipseKeyboard" userData="ellipse" editable="false"
|
||||
<TextField fx:id="ellipseKeyboard" userData="ellipse" editable="false"
|
||||
onKeyPressed="#keyboardTextFieldKeyPress"
|
||||
onMouseClicked="#keyboardTextFieldMouseClick" GridPane.rowIndex="3"
|
||||
GridPane.columnIndex="2"/>
|
||||
|
||||
<Label styleClass="label" GridPane.rowIndex="4" GridPane.columnIndex="1">弹出工具箱:</Label>
|
||||
<JFXTextField fx:id="toolsKeyboard" userData="tools" editable="false"
|
||||
<TextField fx:id="toolsKeyboard" userData="tools" editable="false"
|
||||
onKeyPressed="#keyboardTextFieldKeyPress"
|
||||
onMouseClicked="#keyboardTextFieldMouseClick" GridPane.rowIndex="4"
|
||||
GridPane.columnIndex="2"/>
|
||||
|
||||
<Label styleClass="label" GridPane.rowIndex="5" GridPane.columnIndex="1">弹出颜色框:</Label>
|
||||
<JFXTextField fx:id="colorPickerKeyboard" userData="colorPicker" editable="false"
|
||||
<TextField fx:id="colorPickerKeyboard" userData="colorPicker" editable="false"
|
||||
onKeyPressed="#keyboardTextFieldKeyPress"
|
||||
onMouseClicked="#keyboardTextFieldMouseClick" GridPane.rowIndex="5"
|
||||
GridPane.columnIndex="2"/>
|
||||
|
||||
<Label styleClass="label" GridPane.rowIndex="6" GridPane.columnIndex="1">放大鼠标:</Label>
|
||||
<JFXTextField fx:id="expendMouseKeyboard" userData="expendMouse" editable="false"
|
||||
<TextField fx:id="expendMouseKeyboard" userData="expendMouse" editable="false"
|
||||
onKeyPressed="#keyboardTextFieldKeyPress"
|
||||
onMouseClicked="#keyboardTextFieldMouseClick" GridPane.rowIndex="6"
|
||||
GridPane.columnIndex="2"/>
|
||||
|
||||
<Label styleClass="label" GridPane.rowIndex="7" GridPane.columnIndex="1">清空画板:</Label>
|
||||
<JFXTextField fx:id="clearKeyboard" userData="clear" editable="false"
|
||||
<TextField fx:id="clearKeyboard" userData="clear" editable="false"
|
||||
onKeyPressed="#keyboardTextFieldKeyPress"
|
||||
onMouseClicked="#keyboardTextFieldMouseClick" GridPane.rowIndex="7"
|
||||
GridPane.columnIndex="2"/>
|
||||
|
||||
<Label styleClass="label" GridPane.rowIndex="8" GridPane.columnIndex="1">截图并复制:</Label>
|
||||
<JFXTextField fx:id="screenshotAndCopyKeyboard" userData="screenshotAndCopy" editable="false"
|
||||
<TextField fx:id="screenshotAndCopyKeyboard" userData="screenshotAndCopy" editable="false"
|
||||
onKeyPressed="#keyboardTextFieldKeyPress"
|
||||
onMouseClicked="#keyboardTextFieldMouseClick"
|
||||
GridPane.rowIndex="8" GridPane.columnIndex="2"/>
|
||||
|
||||
<Label styleClass="label" GridPane.rowIndex="9" GridPane.columnIndex="1">启动或关闭:</Label>
|
||||
<JFXTextField fx:id="openOrCloseKeyboard" userData="openOrClose" editable="false"
|
||||
<TextField fx:id="openOrCloseKeyboard" userData="openOrClose" editable="false"
|
||||
onKeyPressed="#keyboardTextFieldKeyPress"
|
||||
onMouseClicked="#keyboardTextFieldMouseClick" GridPane.rowIndex="9"
|
||||
GridPane.columnIndex="2"/>
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
<?import javafx.scene.image.ImageView?>
|
||||
<?import javafx.scene.layout.TilePane?>
|
||||
<?import javafx.scene.layout.VBox?>
|
||||
|
||||
<TilePane xmlns="http://javafx.com/javafx"
|
||||
xmlns:fx="http://javafx.com/fxml"
|
||||
fx:id="container"
|
||||
|
|
Loading…
Reference in New Issue