Javafx 如何使JFoenix JFXToggleButton看起来像一个ToggleButton而不是一个开关?
使用该库,有没有一种方法可以使切换按钮像普通的JavaFXJavafx 如何使JFoenix JFXToggleButton看起来像一个ToggleButton而不是一个开关?,javafx,toggle,togglebutton,jfoenix,Javafx,Toggle,Togglebutton,Jfoenix,使用该库,有没有一种方法可以使切换按钮像普通的JavaFXToggleButton一样为矩形 看起来更像一个开关,这不是我要找的。要制作类似于正常的切换按钮,您可以使用JFoenix中一个鲜为人知的控件,名为 如中所示,此控件通常包含一个图标 但是你可以在里面放任何你想要的东西为什么不是标签? 小心不要忘记包含import语句,只需手动将以下内容添加到FXML文件中§ §:请注意,SceneBuilder还不太支持非标准控件,因此,尽管您不能拖放它,但可以手动将其添加到FXML文件中 以下是我
ToggleButton
一样为矩形
看起来更像一个开关,这不是我要找的。要制作类似于正常的
切换按钮
,您可以使用JFoenix中一个鲜为人知的控件,名为
如中所示,此控件通常包含一个图标
但是你可以在里面放任何你想要的东西为什么不是标签?
小心不要忘记包含import
语句,只需手动将以下内容添加到FXML文件中§
§:请注意,SceneBuilder还不太支持非标准控件,因此,尽管您不能拖放它,但可以手动将其添加到FXML文件中
以下是我对JFXToggleNode的自定义实现 使用任何你想要的图标包
import com.jfoenix.controls.JFXToggleNode;
import de.jensd.fx.glyphs.materialicons.MaterialIcon;
import de.jensd.fx.glyphs.materialicons.MaterialIconView;
import javafx.scene.paint.Paint;
public class ShowPasswordButton extends JFXToggleNode {
private MaterialIconView visible = new MaterialIconView(MaterialIcon.VISIBILITY, "20");
private MaterialIconView notVisible = new MaterialIconView(MaterialIcon.VISIBILITY_OFF, "20");
public ShowPasswordButton() {
super();
this.init();
this.setGraphic(visible);
this.selectedProperty().addListener((observable, oldValue, newValue) ->
this.setGraphic(newValue ? notVisible : visible));
}
private void init() {
visible.setFill(Paint.valueOf("#46a28d"));
notVisible.setFill(Paint.valueOf("#46a28d"));
}
}
.jfx-toggle-node {
/* This is the color once toggled on. */
-jfx-toggle-color: deepskyblue;
}
import com.jfoenix.controls.JFXToggleNode;
import de.jensd.fx.glyphs.materialicons.MaterialIcon;
import de.jensd.fx.glyphs.materialicons.MaterialIconView;
import javafx.scene.paint.Paint;
public class ShowPasswordButton extends JFXToggleNode {
private MaterialIconView visible = new MaterialIconView(MaterialIcon.VISIBILITY, "20");
private MaterialIconView notVisible = new MaterialIconView(MaterialIcon.VISIBILITY_OFF, "20");
public ShowPasswordButton() {
super();
this.init();
this.setGraphic(visible);
this.selectedProperty().addListener((observable, oldValue, newValue) ->
this.setGraphic(newValue ? notVisible : visible));
}
private void init() {
visible.setFill(Paint.valueOf("#46a28d"));
notVisible.setFill(Paint.valueOf("#46a28d"));
}
}