From fa71f5fc2182aa852b51611024c9b9bc7f6d3819 Mon Sep 17 00:00:00 2001 From: Timi Date: Wed, 12 Aug 2026 11:07:52 +0800 Subject: [PATCH] fix style --- pom.xml | 2 +- .../imyeyu/fx/ui/components/FilledSlider.java | 46 ++++++++++++++ .../fx/ui/components/FilledSliderSkin.java | 34 +++++++++++ .../imyeyu/fx/ui/components/IconButton.java | 42 +++---------- .../imyeyu/fx/ui/components/Pagination.java | 19 ++++-- .../fx/ui/components/ProgressSlider.java | 60 ------------------- .../fx/ui/components/TextAreaEditor.java | 17 ++++-- .../fx/ui/components/TextAreaEditorField.java | 4 +- .../imyeyu/fx/ui/components/TimePicker.java | 3 +- .../components/alert/AbstractAlertFile.java | 10 ++-- src/main/resources/timifx/style/base.css | 3 - .../timifx/style/components/filled-slider.css | 11 ++++ .../timifx/style/components/icon-button.css | 3 +- .../timifx/style/components/pagination.css | 9 ++- .../style/components/progress-slider.css | 8 --- src/main/resources/timifx/style/controls.css | 1 + src/main/resources/timifx/style/utility.css | 1 - .../fx/ui/examples/component/RootLayout.java | 4 -- .../examples/component/sidebar/Sidebar.java | 2 +- .../component/sidebar/SidebarItem.java | 4 +- .../imyeyu/fx/ui/examples/view/ViewMain.java | 6 -- ...sSliderDemo.java => FilledSliderDemo.java} | 16 ++--- .../view/pages/component/IconButtonDemo.java | 2 + .../view/pages/component/ToggleIconDemo.java | 2 + 24 files changed, 159 insertions(+), 150 deletions(-) create mode 100644 src/main/java/com/imyeyu/fx/ui/components/FilledSlider.java create mode 100644 src/main/java/com/imyeyu/fx/ui/components/FilledSliderSkin.java delete mode 100644 src/main/java/com/imyeyu/fx/ui/components/ProgressSlider.java create mode 100644 src/main/resources/timifx/style/components/filled-slider.css delete mode 100644 src/main/resources/timifx/style/components/progress-slider.css rename src/test/java/com/imyeyu/fx/ui/examples/view/pages/component/{ProgressSliderDemo.java => FilledSliderDemo.java} (70%) diff --git a/pom.xml b/pom.xml index 0c9f072..d438dba 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ com.imyeyu.fx.ui timi-fx-ui - 0.0.3 + 0.0.4 25.0.3 diff --git a/src/main/java/com/imyeyu/fx/ui/components/FilledSlider.java b/src/main/java/com/imyeyu/fx/ui/components/FilledSlider.java new file mode 100644 index 0000000..0547935 --- /dev/null +++ b/src/main/java/com/imyeyu/fx/ui/components/FilledSlider.java @@ -0,0 +1,46 @@ +package com.imyeyu.fx.ui.components; + +import com.imyeyu.fx.ui.TimiFXUI; +import javafx.scene.control.Skin; +import javafx.scene.control.Slider; + +import java.util.Objects; + +/** + * 带填充轨道的滑动条 + * + * @author 夜雨 + * @since 2026-07-25 + */ +public class FilledSlider extends Slider implements TimiFXUI { + + /** 组件样式 */ + static final String STYLE_CLASS = "filled-slider"; + + /** 默认构造,范围 [0, 1],默认值 0 */ + public FilledSlider() { + this(0, 1, 0); + } + + /** + * 标准构造 + * + * @param min 最小值 + * @param max 最大值 + * @param value 当前值 + */ + public FilledSlider(double min, double max, double value) { + super(min, max, value); + getStyleClass().add(STYLE_CLASS); + } + + @Override + protected Skin createDefaultSkin() { + return new FilledSliderSkin(this); + } + + @Override + public String getUserAgentStylesheet() { + return Objects.requireNonNull(FilledSlider.class.getResource(RESOURCE + "style/components/filled-slider.css")).toExternalForm(); + } +} diff --git a/src/main/java/com/imyeyu/fx/ui/components/FilledSliderSkin.java b/src/main/java/com/imyeyu/fx/ui/components/FilledSliderSkin.java new file mode 100644 index 0000000..bfea849 --- /dev/null +++ b/src/main/java/com/imyeyu/fx/ui/components/FilledSliderSkin.java @@ -0,0 +1,34 @@ +package com.imyeyu.fx.ui.components; + +import com.imyeyu.java.ref.Ref; +import javafx.scene.control.ProgressBar; +import javafx.scene.control.skin.SliderSkin; +import javafx.scene.layout.StackPane; + +/** + * 填充轨道滑动条皮肤 + * + * @author 夜雨 + * @since 2026-07-25 + */ +class FilledSliderSkin extends SliderSkin { + + /** + * 构造皮肤 + * + * @param control 控件 + */ + FilledSliderSkin(FilledSlider control) { + super(control); + try { + StackPane track = Ref.getFieldValue(this, "track", StackPane.class); + ProgressBar pb = new ProgressBar(); + pb.progressProperty().bind(control.valueProperty().subtract(control.minProperty()).divide(control.maxProperty().subtract(control.minProperty()))); + pb.prefWidthProperty().bind(track.widthProperty()); + pb.setMouseTransparent(true); + track.getChildren().addFirst(pb); + } catch (IllegalAccessException e) { + throw new RuntimeException(e); + } + } +} diff --git a/src/main/java/com/imyeyu/fx/ui/components/IconButton.java b/src/main/java/com/imyeyu/fx/ui/components/IconButton.java index b6318cf..3b524fa 100644 --- a/src/main/java/com/imyeyu/fx/ui/components/IconButton.java +++ b/src/main/java/com/imyeyu/fx/ui/components/IconButton.java @@ -1,8 +1,8 @@ package com.imyeyu.fx.ui.components; import com.imyeyu.fx.ui.TimiFXUI; -import com.imyeyu.java.TimiJava; import com.imyeyu.fx.utils.Nodes; +import com.imyeyu.java.TimiJava; import javafx.beans.binding.Bindings; import javafx.beans.property.BooleanProperty; import javafx.beans.property.SimpleBooleanProperty; @@ -13,9 +13,10 @@ import javafx.scene.control.Button; import javafx.scene.control.Skin; import javafx.scene.image.Image; import javafx.scene.image.ImageView; -import javafx.scene.layout.Border; import javafx.scene.paint.Paint; +import java.util.Objects; + /** * 图标按钮,可选图片、SVG 路径或 {@link com.imyeyu.fx.icon.TimiFXIcon} 的字体图标 * @@ -141,41 +142,12 @@ public class IconButton extends Button implements TimiFXUI, TimiFXUI.Colorful { * @return 本实例 */ public IconButton withBackground() { - return withBackground((Border) null); - } - - /** - * 添加按钮背景 - * - * @param border 边框 - * @return 本实例 - */ - public IconButton withBackground(Border border) { getStyleClass().add(CSS.BG_BUTTON); - if (border != null) { - setBorder(border); - } + setBorder(Stroke.DEFAULT); opacityProperty().unbind(); return this; } - /** - * 添加按钮背景 - * - * @param borderClass 边框类 - * @return 本实例 - */ - public IconButton withBackground(String borderClass) { - return withBackground().appendBorderStyle(borderClass); - } - - private IconButton appendBorderStyle(String borderClass) { - if (TimiJava.isNotEmpty(borderClass)) { - getStyleClass().add(borderClass); - } - return this; - } - /** * 自适应尺寸,不使用内边距填充,图标尺寸决定组件尺寸 * @@ -187,7 +159,7 @@ public class IconButton extends Button implements TimiFXUI, TimiFXUI.Colorful { } /** - * 获取当前是否自适应尺寸,ture 时图标尺寸决定组件尺寸 + * 获取当前是否自适应尺寸,true 时图标尺寸决定组件尺寸 * * @return true 为自适应尺寸 */ @@ -196,7 +168,7 @@ public class IconButton extends Button implements TimiFXUI, TimiFXUI.Colorful { } /** - * 设置是否自适应尺寸,ture 时图标尺寸决定组件尺寸 + * 设置是否自适应尺寸,true 时图标尺寸决定组件尺寸 * * @param autoSize true 为自适应尺寸 */ @@ -226,6 +198,6 @@ public class IconButton extends Button implements TimiFXUI, TimiFXUI.Colorful { @Override public String getUserAgentStylesheet() { - return IconButton.class.getResource(RESOURCE + "style/components/icon-button.css").toExternalForm(); + return Objects.requireNonNull(IconButton.class.getResource(RESOURCE + "style/components/icon-button.css")).toExternalForm(); } } diff --git a/src/main/java/com/imyeyu/fx/ui/components/Pagination.java b/src/main/java/com/imyeyu/fx/ui/components/Pagination.java index dbc3f38..92b0ad0 100644 --- a/src/main/java/com/imyeyu/fx/ui/components/Pagination.java +++ b/src/main/java/com/imyeyu/fx/ui/components/Pagination.java @@ -22,6 +22,7 @@ import javafx.scene.layout.Region; import java.util.ArrayList; import java.util.List; +import java.util.Objects; /** * 分页组件,支持省略页,滚动页,如 [<][1]..[5][6][7][8][9]..[20][>] @@ -61,8 +62,6 @@ public class Pagination extends HBox implements TimiFXUI { /** 默认构造 */ public Pagination() { - getStylesheets().add(Pagination.class.getResource(RESOURCE + "style/components/pagination.css").toExternalForm()); - // 基本参数 lp = new SimpleLongProperty(); ip = new SimpleIntegerProperty(); @@ -81,7 +80,8 @@ public class Pagination extends HBox implements TimiFXUI { PageButton tb; // 上一页 - prev = new IconButton(TimiFXIcon.get(TimiIcon.ARROW_1_W)).withBackground(Border.EMPTY); + prev = new IconButton(TimiFXIcon.get(TimiIcon.ARROW_1_W)).withBackground(); + prev.setBorder(Border.EMPTY); prev.setMaxHeight(Double.MAX_VALUE); prev.disableProperty().bind(ip.isEqualTo(0)); getChildren().add(prev); @@ -150,7 +150,8 @@ public class Pagination extends HBox implements TimiFXUI { } // 下一页 - next = new IconButton(TimiFXIcon.get(TimiIcon.ARROW_1_E)).withBackground(Border.EMPTY); + next = new IconButton(TimiFXIcon.get(TimiIcon.ARROW_1_E)).withBackground(); + next.setBorder(Border.EMPTY); next.setMaxHeight(Double.MAX_VALUE); next.disableProperty().bind(ip.isEqualTo(cp.subtract(1)).or(cp.isEqualTo(0))); @@ -195,6 +196,11 @@ public class Pagination extends HBox implements TimiFXUI { next.setOnAction(e -> ip.set(nextI)); } + @Override + public String getUserAgentStylesheet() { + return Objects.requireNonNull(Pagination.class.getResource(RESOURCE + "style/components/pagination.css")).toExternalForm(); + } + /** 选择上一页 */ public void prev() { prev.fire(); @@ -336,5 +342,10 @@ public class Pagination extends HBox implements TimiFXUI { } }); } + + @Override + public String getUserAgentStylesheet() { + return Objects.requireNonNull(Pagination.class.getResource(RESOURCE + "style/components/pagination.css")).toExternalForm(); + } } } diff --git a/src/main/java/com/imyeyu/fx/ui/components/ProgressSlider.java b/src/main/java/com/imyeyu/fx/ui/components/ProgressSlider.java deleted file mode 100644 index db262ad..0000000 --- a/src/main/java/com/imyeyu/fx/ui/components/ProgressSlider.java +++ /dev/null @@ -1,60 +0,0 @@ -package com.imyeyu.fx.ui.components; - -import com.imyeyu.fx.ui.TimiFXUI; -import com.imyeyu.java.ref.Ref; -import javafx.scene.control.ProgressBar; -import javafx.scene.control.Skin; -import javafx.scene.control.Slider; -import javafx.scene.control.skin.SliderSkin; -import javafx.scene.layout.StackPane; - -/** - * 带有进度的滑动选中,通常是媒体播放进度或音量进度(未对纵向滑动组件测试) - * - * @author 夜雨 - * @since 2021-11-09 21:34 - */ -public class ProgressSlider extends Slider implements TimiFXUI { - - private static final String STYLE_CLASS = "progress-slider"; - - /** 默认构造,范围 [0, 1],默认值 0 */ - public ProgressSlider() { - this(0, 1, 0); - } - - /** - * 标准构造 - * - * @param min 最小值 - * @param max 最大值 - * @param value 当前值 - */ - public ProgressSlider(double min, double max, double value) { - super(min, max, value); - getStyleClass().add(STYLE_CLASS); - } - - @Override - protected Skin createDefaultSkin() { - Skin skin = super.createDefaultSkin(); - if (skin instanceof SliderSkin) { - try { - StackPane track = Ref.getFieldValue(skin, "track", StackPane.class); - ProgressBar pb = new ProgressBar(); - pb.progressProperty().bind(valueProperty().subtract(minProperty()).divide(maxProperty().subtract(minProperty()))); - pb.prefWidthProperty().bind(track.widthProperty()); - pb.setMouseTransparent(true); - track.getChildren().addFirst(pb); - } catch (IllegalAccessException e) { - throw new RuntimeException(e); - } - } - return skin; - } - - @Override - public String getUserAgentStylesheet() { - return ProgressSlider.class.getResource(RESOURCE + "style/components/progress-slider.css").toExternalForm(); - } -} diff --git a/src/main/java/com/imyeyu/fx/ui/components/TextAreaEditor.java b/src/main/java/com/imyeyu/fx/ui/components/TextAreaEditor.java index 4cb0865..d8fd859 100644 --- a/src/main/java/com/imyeyu/fx/ui/components/TextAreaEditor.java +++ b/src/main/java/com/imyeyu/fx/ui/components/TextAreaEditor.java @@ -39,8 +39,8 @@ import javafx.scene.input.ContextMenuEvent; import javafx.scene.input.KeyCode; import javafx.scene.input.KeyEvent; import javafx.scene.input.MouseEvent; -import javafx.scene.layout.Border; import javafx.scene.layout.AnchorPane; +import javafx.scene.layout.Border; import javafx.scene.layout.BorderPane; import javafx.scene.layout.GridPane; import javafx.scene.layout.HBox; @@ -118,26 +118,31 @@ public class TextAreaEditor extends TextArea implements TimiFXUI { showLineNumber = new SimpleBooleanProperty(true); // 撤销 - undo = new IconButton(TimiFXIcon.get(TimiIcon.ARROW_0_W)).withBackground(Stroke.RIGHT); + undo = new IconButton(TimiFXIcon.get(TimiIcon.ARROW_0_W)).withBackground(); + undo.setBorder(Stroke.RIGHT); undo.disableProperty().bind(undoableProperty().not()); PopupTipsService.installText(undo, TimiFXUI.MULTILINGUAL.text("undo")); // 重做 - redo = new IconButton(TimiFXIcon.get(TimiIcon.ARROW_0_E)).withBackground(Stroke.RIGHT); + redo = new IconButton(TimiFXIcon.get(TimiIcon.ARROW_0_E)).withBackground(); + redo.setBorder(Stroke.RIGHT); redo.disableProperty().bind(redoableProperty().not()); PopupTipsService.installText(redo, TimiFXUI.MULTILINGUAL.text("redo")); // 复制 - copy = new IconButton(TimiFXIcon.get(TimiIcon.COPY)).withBackground(Stroke.RIGHT); + copy = new IconButton(TimiFXIcon.get(TimiIcon.COPY)).withBackground(); + copy.setBorder(Stroke.RIGHT); PopupTipsService.installText(copy, TimiFXUI.MULTILINGUAL.text("copy")); // 剪切 - cut = new IconButton(TimiFXIcon.get(TimiIcon.CUT)).withBackground(Stroke.RIGHT); + cut = new IconButton(TimiFXIcon.get(TimiIcon.CUT)).withBackground(); + cut.setBorder(Stroke.RIGHT); cut.disableProperty().bind(editableProperty().not()); PopupTipsService.installText(cut, TimiFXUI.MULTILINGUAL.text("cut")); // 粘贴 - paste = new IconButton(TimiFXIcon.get(TimiIcon.PASTE)).withBackground(Stroke.RIGHT); + paste = new IconButton(TimiFXIcon.get(TimiIcon.PASTE)).withBackground(); + paste.setBorder(Stroke.RIGHT); paste.disableProperty().bind(editableProperty().not()); PopupTipsService.installText(paste, TimiFXUI.MULTILINGUAL.text("paste")); diff --git a/src/main/java/com/imyeyu/fx/ui/components/TextAreaEditorField.java b/src/main/java/com/imyeyu/fx/ui/components/TextAreaEditorField.java index e5e3247..c6db922 100644 --- a/src/main/java/com/imyeyu/fx/ui/components/TextAreaEditorField.java +++ b/src/main/java/com/imyeyu/fx/ui/components/TextAreaEditorField.java @@ -1,6 +1,5 @@ package com.imyeyu.fx.ui.components; -import com.imyeyu.fx.TimiFX; import com.imyeyu.fx.icon.TimiFXIcon; import com.imyeyu.fx.icon.TimiIcon; import com.imyeyu.fx.ui.TimiFXUI; @@ -73,7 +72,8 @@ public class TextAreaEditorField extends TextField implements TimiFXUI { textGroup.setTranslateY(-.5); // 插入编辑器图标 - IconButton editor = new IconButton(TimiFXIcon.get(TimiIcon.WRITING)).withBackground(Stroke.LEFT); + IconButton editor = new IconButton(TimiFXIcon.get(TimiIcon.WRITING)).withBackground(); + editor.setBorder(Stroke.LEFT); editor.setCursor(Cursor.DEFAULT); BorderPane root = new BorderPane(); diff --git a/src/main/java/com/imyeyu/fx/ui/components/TimePicker.java b/src/main/java/com/imyeyu/fx/ui/components/TimePicker.java index e1aace1..fe91b37 100644 --- a/src/main/java/com/imyeyu/fx/ui/components/TimePicker.java +++ b/src/main/java/com/imyeyu/fx/ui/components/TimePicker.java @@ -53,7 +53,8 @@ public class TimePicker extends HBox implements TimiFXUI { textField.setAlignment(Pos.CENTER); textField.setPrefWidth(70); textField.setOnContextMenuRequested(Event::consume); - IconButton button = new IconButton(TimiFXIcon.get(TimiIcon.CLOCK)).withBackground(Stroke.EX_LEFT); + IconButton button = new IconButton(TimiFXIcon.get(TimiIcon.CLOCK)).withBackground(); + button.setBorder(Stroke.EX_LEFT); // 时间选择 hour = new ListView<>(); diff --git a/src/main/java/com/imyeyu/fx/ui/components/alert/AbstractAlertFile.java b/src/main/java/com/imyeyu/fx/ui/components/alert/AbstractAlertFile.java index bf57e2a..3365389 100644 --- a/src/main/java/com/imyeyu/fx/ui/components/alert/AbstractAlertFile.java +++ b/src/main/java/com/imyeyu/fx/ui/components/alert/AbstractAlertFile.java @@ -68,19 +68,19 @@ public abstract class AbstractAlertFile extends AbstractAlert implements TimiFXU VBox header = new VBox(); // 主页 - IconButton home = new IconButton(TimiFXIcon.get(TimiIcon.HOME)).withBackground(Stroke.RIGHT); + IconButton home = new IconButton(TimiFXIcon.get(TimiIcon.HOME)); PopupTipsService.installText(home, TimiFXUI.MULTILINGUAL.text("home")); // 刷新 - IconButton refresh = new IconButton(TimiFXIcon.get(TimiIcon.REFRESH)).withBackground(Stroke.RIGHT); + IconButton refresh = new IconButton(TimiFXIcon.get(TimiIcon.REFRESH)); PopupTipsService.installText(refresh, TimiFXUI.MULTILINGUAL.text("refresh")); // 创建文件夹 - IconButton mkdir = new IconButton(TimiFXIcon.get(TimiIcon.FOLDER_ADD)).withBackground(Stroke.RIGHT); + IconButton mkdir = new IconButton(TimiFXIcon.get(TimiIcon.FOLDER_ADD)); PopupTipsService.installText(mkdir, TimiFXUI.MULTILINGUAL.text("file.mkdir")); // 删除 - IconButton destroy = new IconButton(TimiFXIcon.get(TimiIcon.FAIL, Colorful.RED)).withBackground(Stroke.RIGHT); + IconButton destroy = new IconButton(TimiFXIcon.get(TimiIcon.FAIL, Colorful.RED)); PopupTipsService.installText(destroy, TimiFXUI.MULTILINGUAL.text("delete")); // 切换隐藏 @@ -98,7 +98,7 @@ public abstract class AbstractAlertFile extends AbstractAlert implements TimiFXU // 绝对路径 absolutePath = new TextField(); absolutePath.setBorder(Border.EMPTY); - IconButton absolutePathGo = new IconButton(TimiFXIcon.get(TimiIcon.ARROW_2_E)).withBackground(Stroke.LEFT); + IconButton absolutePathGo = new IconButton(TimiFXIcon.get(TimiIcon.ARROW_2_E)); { if (mode == SelectionMode.SINGLE) { PopupTipsLabel tips = PopupTipsService.installBindingText(absolutePath, absolutePath.textProperty()); diff --git a/src/main/resources/timifx/style/base.css b/src/main/resources/timifx/style/base.css index bf0b1af..85cf0f8 100644 --- a/src/main/resources/timifx/style/base.css +++ b/src/main/resources/timifx/style/base.css @@ -73,9 +73,6 @@ .text-field:focused { -fx-background-insets: 1, 2; } -.button:focused { - -fx-background-insets: 0; -} .list-view:focused { -fx-background-insets: 0, 0, 2; } diff --git a/src/main/resources/timifx/style/components/filled-slider.css b/src/main/resources/timifx/style/components/filled-slider.css new file mode 100644 index 0000000..c649ad0 --- /dev/null +++ b/src/main/resources/timifx/style/components/filled-slider.css @@ -0,0 +1,11 @@ +.filled-slider .track { + -fx-padding: 0; +} +.filled-slider .progress-bar .bar { + -fx-pref-height: 6; + -fx-background-insets: 0; +} +.filled-slider .thumb, +.filled-slider:focused .thumb { + -fx-background-radius: 0; +} diff --git a/src/main/resources/timifx/style/components/icon-button.css b/src/main/resources/timifx/style/components/icon-button.css index d508a99..e4df1b2 100644 --- a/src/main/resources/timifx/style/components/icon-button.css +++ b/src/main/resources/timifx/style/components/icon-button.css @@ -1,5 +1,6 @@ .icon-button { -fx-border-width: 1; -fx-border-color: transparent; + -fx-background-insets: 0; + -fx-background-radius: 0; } - diff --git a/src/main/resources/timifx/style/components/pagination.css b/src/main/resources/timifx/style/components/pagination.css index da0c70e..65ae94a 100644 --- a/src/main/resources/timifx/style/components/pagination.css +++ b/src/main/resources/timifx/style/components/pagination.css @@ -1,6 +1,11 @@ -.x-pagination .button, -.x-pagination .toggle-button { +.button, +.toggle-button { -fx-padding: 0; -fx-pref-width: 28; -fx-pref-height: 26; + -fx-background-insets: 0 !important; + -fx-background-radius: 0 !important; +} +.toggle-button:selected { + -fx-background-color: -timi-fx-selected-color !important; } diff --git a/src/main/resources/timifx/style/components/progress-slider.css b/src/main/resources/timifx/style/components/progress-slider.css deleted file mode 100644 index e419ea8..0000000 --- a/src/main/resources/timifx/style/components/progress-slider.css +++ /dev/null @@ -1,8 +0,0 @@ -.progress-slider .track { - -fx-padding: 0; -} -.progress-slider .progress-bar .bar { - -fx-pref-height: 6; - -fx-background-insets: 0; -} - diff --git a/src/main/resources/timifx/style/controls.css b/src/main/resources/timifx/style/controls.css index 67251a4..768031a 100644 --- a/src/main/resources/timifx/style/controls.css +++ b/src/main/resources/timifx/style/controls.css @@ -56,6 +56,7 @@ .slider:focused > .thumb { -fx-background-color: -fx-shadow-highlight-color, -fx-outer-border, -fx-inner-border, -fx-body-color; -fx-background-insets: 0 0 -1 0, 0, 1, 2; + -fx-background-radius: 0; } .tree-view { -fx-padding: 0; diff --git a/src/main/resources/timifx/style/utility.css b/src/main/resources/timifx/style/utility.css index 28ac644..ca49c91 100644 --- a/src/main/resources/timifx/style/utility.css +++ b/src/main/resources/timifx/style/utility.css @@ -21,7 +21,6 @@ -fx-opacity: -timi-fx-opacity-disabled; } .bg-button { - -fx-border-color: -timi-fx-border-color; -fx-background-color: -fx-body-color; } .bg-button:hover { diff --git a/src/test/java/com/imyeyu/fx/ui/examples/component/RootLayout.java b/src/test/java/com/imyeyu/fx/ui/examples/component/RootLayout.java index 23667b4..f49f3e7 100644 --- a/src/test/java/com/imyeyu/fx/ui/examples/component/RootLayout.java +++ b/src/test/java/com/imyeyu/fx/ui/examples/component/RootLayout.java @@ -5,10 +5,6 @@ import com.imyeyu.fx.ui.examples.component.sidebar.Sidebar; import com.imyeyu.fx.ui.examples.service.PageService; import com.imyeyu.inject.annotation.Component; import com.imyeyu.inject.annotation.PostConstruct; -import javafx.application.Platform; -import javafx.scene.control.Menu; -import javafx.scene.control.MenuBar; -import javafx.scene.control.MenuItem; import javafx.scene.layout.BorderPane; /** diff --git a/src/test/java/com/imyeyu/fx/ui/examples/component/sidebar/Sidebar.java b/src/test/java/com/imyeyu/fx/ui/examples/component/sidebar/Sidebar.java index 56951e4..c1907eb 100644 --- a/src/test/java/com/imyeyu/fx/ui/examples/component/sidebar/Sidebar.java +++ b/src/test/java/com/imyeyu/fx/ui/examples/component/sidebar/Sidebar.java @@ -40,7 +40,7 @@ public class Sidebar extends Navigation { add(new NavigationGroup(TimiFXUI.MULTILINGUAL.text("animation")).add(interpolator, smoothScroll)); // 组件 - SidebarItem[] components = {SidebarItem.BUTTON, SidebarItem.DATE_TIME_PICKER, SidebarItem.EDITABLE_TABLE_CELL, SidebarItem.FILE_TREE_VIEW, SidebarItem.ICON_BUTTON, SidebarItem.ICON_PICKER, SidebarItem.LABEL_PROGRESS_BAR, SidebarItem.NAVIGATION, SidebarItem.NUMBER_FIELD, SidebarItem.PROGRESS_SLIDER, SidebarItem.SELECTABLE_LABEL, SidebarItem.TEXT_AREA_EDITOR, SidebarItem.TITLE_LABEL, SidebarItem.TOGGLE_ICON, SidebarItem.X_PAGINATION, SidebarItem.X_TAB_PANE, SidebarItem.X_TREE_VIEW}; + SidebarItem[] components = {SidebarItem.BUTTON, SidebarItem.DATE_TIME_PICKER, SidebarItem.EDITABLE_TABLE_CELL, SidebarItem.FILE_TREE_VIEW, SidebarItem.ICON_BUTTON, SidebarItem.ICON_PICKER, SidebarItem.LABEL_PROGRESS_BAR, SidebarItem.NAVIGATION, SidebarItem.NUMBER_FIELD, SidebarItem.FILLED_SLIDER, SidebarItem.SELECTABLE_LABEL, SidebarItem.TEXT_AREA_EDITOR, SidebarItem.TITLE_LABEL, SidebarItem.TOGGLE_ICON, SidebarItem.X_PAGINATION, SidebarItem.X_TAB_PANE, SidebarItem.X_TREE_VIEW}; Item[] componentItems = new Item[components.length]; for (int i = 0; i < componentItems.length; i++) { componentItems[i] = new Item(components[i]); diff --git a/src/test/java/com/imyeyu/fx/ui/examples/component/sidebar/SidebarItem.java b/src/test/java/com/imyeyu/fx/ui/examples/component/sidebar/SidebarItem.java index 4cd0704..7a24388 100644 --- a/src/test/java/com/imyeyu/fx/ui/examples/component/sidebar/SidebarItem.java +++ b/src/test/java/com/imyeyu/fx/ui/examples/component/sidebar/SidebarItem.java @@ -21,7 +21,7 @@ import com.imyeyu.fx.ui.examples.view.pages.component.IconPickerDemo; import com.imyeyu.fx.ui.examples.view.pages.component.LabelProgressBarDemo; import com.imyeyu.fx.ui.examples.view.pages.component.NavigationDemo; import com.imyeyu.fx.ui.examples.view.pages.component.NumberFieldDemo; -import com.imyeyu.fx.ui.examples.view.pages.component.ProgressSliderDemo; +import com.imyeyu.fx.ui.examples.view.pages.component.FilledSliderDemo; import com.imyeyu.fx.ui.examples.view.pages.component.SelectableLabelDemo; import com.imyeyu.fx.ui.examples.view.pages.component.TextAreaEditorDemo; import com.imyeyu.fx.ui.examples.view.pages.component.TitleLabelDemo; @@ -106,7 +106,7 @@ public enum SidebarItem { NUMBER_FIELD(NumberFieldDemo.class, TimiFXUI.MULTILINGUAL.text("fx.example.number_field")), /** 进度调整 */ - PROGRESS_SLIDER(ProgressSliderDemo.class, TimiFXUI.MULTILINGUAL.text("fx.example.progress_slider")), + FILLED_SLIDER(FilledSliderDemo.class, TimiFXUI.MULTILINGUAL.text("fx.example.progress_slider")), /** 可选标签 */ SELECTABLE_LABEL(SelectableLabelDemo.class, TimiFXUI.MULTILINGUAL.text("fx.example.selectable_label")), diff --git a/src/test/java/com/imyeyu/fx/ui/examples/view/ViewMain.java b/src/test/java/com/imyeyu/fx/ui/examples/view/ViewMain.java index 14b560b..c47996b 100644 --- a/src/test/java/com/imyeyu/fx/ui/examples/view/ViewMain.java +++ b/src/test/java/com/imyeyu/fx/ui/examples/view/ViewMain.java @@ -26,14 +26,8 @@ public abstract class ViewMain extends Application implements TimiFXUI { @Override public void start(final Stage stage) { - PerspectiveCamera perspectiveCamera = new PerspectiveCamera(false); - perspectiveCamera.setTranslateX(0); - perspectiveCamera.setTranslateY(0); - perspectiveCamera.setTranslateZ(0); - Scene scene = new Scene(root); TimiFXUI.applyStyle(scene); - scene.setCamera(perspectiveCamera); stage.setTitle(TimiFXUI.MULTILINGUAL.text("fx.example.title")); stage.getIcons().add(new Image(RESOURCE + "icon.png")); stage.setScene(scene); diff --git a/src/test/java/com/imyeyu/fx/ui/examples/view/pages/component/ProgressSliderDemo.java b/src/test/java/com/imyeyu/fx/ui/examples/view/pages/component/FilledSliderDemo.java similarity index 70% rename from src/test/java/com/imyeyu/fx/ui/examples/view/pages/component/ProgressSliderDemo.java rename to src/test/java/com/imyeyu/fx/ui/examples/view/pages/component/FilledSliderDemo.java index 4f66350..5d4bc13 100644 --- a/src/test/java/com/imyeyu/fx/ui/examples/view/pages/component/ProgressSliderDemo.java +++ b/src/test/java/com/imyeyu/fx/ui/examples/view/pages/component/FilledSliderDemo.java @@ -1,7 +1,7 @@ package com.imyeyu.fx.ui.examples.view.pages.component; import com.imyeyu.fx.ui.TimiFXUI; -import com.imyeyu.fx.ui.components.ProgressSlider; +import com.imyeyu.fx.ui.components.FilledSlider; import com.imyeyu.fx.ui.examples.component.AbstractDemoPane; import com.imyeyu.fx.ui.examples.component.sidebar.SidebarItem; import com.imyeyu.inject.annotation.Component; @@ -10,21 +10,21 @@ import javafx.scene.control.Label; import javafx.scene.layout.FlowPane; /** - * 拖拽进度组件 + * 填充轨道滑动条示例 * * @author 夜雨 * @since 2022-08-30 09:36 */ @Component -public class ProgressSliderDemo extends AbstractDemoPane { +public class FilledSliderDemo extends AbstractDemoPane { - public ProgressSliderDemo() { - title.setText(SidebarItem.PROGRESS_SLIDER.getText()); - document.sync("https://doc.imyeyu.net/timi-fx/net/imyeyu/timifx/component/ProgressSlider.html"); - source.sync("https://git.imyeyu.net/Timi/timi-fx/src/master/src/main/java/net/imyeyu/timifx/component/ProgressSlider.java"); + public FilledSliderDemo() { + title.setText(SidebarItem.FILLED_SLIDER.getText()); + document.sync("https://doc.imyeyu.net/timi-fx/net/imyeyu/timifx/component/FilledSlider.html"); + source.sync("https://git.imyeyu.net/Timi/timi-fx/src/master/src/main/java/net/imyeyu/timifx/component/FilledSlider.java"); // 组件 - ProgressSlider slider = new ProgressSlider(); + FilledSlider slider = new FilledSlider(); slider.setPrefWidth(360); slider.setValue(.5); diff --git a/src/test/java/com/imyeyu/fx/ui/examples/view/pages/component/IconButtonDemo.java b/src/test/java/com/imyeyu/fx/ui/examples/view/pages/component/IconButtonDemo.java index 6e14f40..bb79e28 100644 --- a/src/test/java/com/imyeyu/fx/ui/examples/view/pages/component/IconButtonDemo.java +++ b/src/test/java/com/imyeyu/fx/ui/examples/view/pages/component/IconButtonDemo.java @@ -8,6 +8,8 @@ import com.imyeyu.fx.ui.examples.component.AbstractDemoPane; import com.imyeyu.fx.ui.examples.component.sidebar.SidebarItem; import com.imyeyu.inject.annotation.Component; import javafx.geometry.Insets; +import javafx.scene.control.Button; +import javafx.scene.layout.Border; import javafx.scene.layout.GridPane; /** diff --git a/src/test/java/com/imyeyu/fx/ui/examples/view/pages/component/ToggleIconDemo.java b/src/test/java/com/imyeyu/fx/ui/examples/view/pages/component/ToggleIconDemo.java index 7e104e2..7064402 100644 --- a/src/test/java/com/imyeyu/fx/ui/examples/view/pages/component/ToggleIconDemo.java +++ b/src/test/java/com/imyeyu/fx/ui/examples/view/pages/component/ToggleIconDemo.java @@ -37,7 +37,9 @@ public class ToggleIconDemo extends AbstractDemoPane { // 按钮背景 Label labelWithBG = TimiFXUI.label(TimiFXUI.MULTILINGUAL.text("fx.example.toggle_icon.with_bg")); ToggleIcon withBG = new ToggleIcon(TimiFXIcon.get(TimiIcon.ARROW_0_W)).withBackground(); + withBG.setBorder(Stroke.DEFAULT); ToggleIcon withBGDiff = new ToggleIcon(TimiFXIcon.get(TimiIcon.ARROW_0_W), TimiFXIcon.get(TimiIcon.ARROW_0_E)).withBackground(); + withBGDiff.setBorder(Stroke.DEFAULT); setCenter(new GridPane() {{ setHgap(5);