使用ComboBox在JavaFX中设置默认外观
我想在运行时更改JavaFXapplication的默认外观。如何使用ComboBox实现这一点?现在,我使用以下代码更改值:使用ComboBox在JavaFX中设置默认外观,javafx,javafx-2,javafx-8,Javafx,Javafx 2,Javafx 8,我想在运行时更改JavaFXapplication的默认外观。如何使用ComboBox实现这一点?现在,我使用以下代码更改值: setUserAgentStylesheet(STYLESHEET_MODENA); 有没有办法在运行时更改外观?您可以在ComboBox.setOnAction()方法体中使用setUserAgentStylesheet()。例如: import javafx.application.Application; import javafx.collections.FX
setUserAgentStylesheet(STYLESHEET_MODENA);
有没有办法在运行时更改外观?您可以在
ComboBox.setOnAction()
方法体中使用setUserAgentStylesheet()
。例如:
import javafx.application.Application;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.scene.control.ComboBox;
import javafx.scene.layout.BorderPane;
import javafx.stage.Stage;
public class SetStyleDemo extends Application {
public Parent createContent() {
/* layout */
BorderPane layout = new BorderPane();
/* layout -> combobox */
ObservableList<String> styles = FXCollections.observableArrayList(
"Modena", "Caspian");
ComboBox<String> cbStyles = new ComboBox<String>(styles);
cbStyles.getSelectionModel().select(0);
cbStyles.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent ae) {
if (cbStyles.getSelectionModel()
.getSelectedItem().equals("Modena")) {
setUserAgentStylesheet(STYLESHEET_MODENA);
} else {
setUserAgentStylesheet(STYLESHEET_CASPIAN);
}
}
});
/* add items to the layout */
layout.setCenter(cbStyles);
return layout;
}
@Override
public void start(Stage stage) throws Exception {
stage.setScene(new Scene(createContent()));
stage.setWidth(200);
stage.setHeight(200);
stage.show();
}
public static void main(String args[]) {
launch(args);
}
}
导入javafx.application.application;
导入javafx.collections.FXCollections;
导入javafx.collections.ObservableList;
导入javafx.event.ActionEvent;
导入javafx.event.EventHandler;
导入javafx.scene.Parent;
导入javafx.scene.scene;
导入javafx.scene.control.ComboBox;
导入javafx.scene.layout.BorderPane;
导入javafx.stage.stage;
公共类SetStyleDemo扩展了应用程序{
公共父级createContent(){
/*布局*/
BorderPane布局=新建BorderPane();
/*布局->组合框*/
ObservableList styles=FXCollections.observableArrayList(
“摩德纳”、“里海”);
组合框cbStyles=新组合框(样式);
cbStyles.getSelectionModel().select(0);
setOnAction(新的EventHandler()){
@凌驾
公共无效句柄(ActionEvent ae){
if(cbStyles.getSelectionModel()
.getSelectedItem().equals(“Modena”)){
setUserAgentStylesheet(样式表_MODENA);
}否则{
setUserAgentStylesheet(样式表_CASPIAN);
}
}
});
/*将项目添加到布局中*/
布局。设置中心(cbStyles);
返回布局;
}
@凌驾
public void start(Stage)引发异常{
stage.setScene(新场景(createContent());
舞台布景宽度(200);
舞台设置高度(200);
stage.show();
}
公共静态void main(字符串参数[]){
发射(args);
}
}
您可以在ComboBox.setOnAction()
方法体中使用setUserAgentStylesheet()
。例如:
import javafx.application.Application;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.scene.control.ComboBox;
import javafx.scene.layout.BorderPane;
import javafx.stage.Stage;
public class SetStyleDemo extends Application {
public Parent createContent() {
/* layout */
BorderPane layout = new BorderPane();
/* layout -> combobox */
ObservableList<String> styles = FXCollections.observableArrayList(
"Modena", "Caspian");
ComboBox<String> cbStyles = new ComboBox<String>(styles);
cbStyles.getSelectionModel().select(0);
cbStyles.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent ae) {
if (cbStyles.getSelectionModel()
.getSelectedItem().equals("Modena")) {
setUserAgentStylesheet(STYLESHEET_MODENA);
} else {
setUserAgentStylesheet(STYLESHEET_CASPIAN);
}
}
});
/* add items to the layout */
layout.setCenter(cbStyles);
return layout;
}
@Override
public void start(Stage stage) throws Exception {
stage.setScene(new Scene(createContent()));
stage.setWidth(200);
stage.setHeight(200);
stage.show();
}
public static void main(String args[]) {
launch(args);
}
}
导入javafx.application.application;
导入javafx.collections.FXCollections;
导入javafx.collections.ObservableList;
导入javafx.event.ActionEvent;
导入javafx.event.EventHandler;
导入javafx.scene.Parent;
导入javafx.scene.scene;
导入javafx.scene.control.ComboBox;
导入javafx.scene.layout.BorderPane;
导入javafx.stage.stage;
公共类SetStyleDemo扩展了应用程序{
公共父级createContent(){
/*布局*/
BorderPane布局=新建BorderPane();
/*布局->组合框*/
ObservableList styles=FXCollections.observableArrayList(
“摩德纳”、“里海”);
组合框cbStyles=新组合框(样式);
cbStyles.getSelectionModel().select(0);
setOnAction(新的EventHandler()){
@凌驾
公共无效句柄(ActionEvent ae){
if(cbStyles.getSelectionModel()
.getSelectedItem().equals(“Modena”)){
setUserAgentStylesheet(样式表_MODENA);
}否则{
setUserAgentStylesheet(样式表_CASPIAN);
}
}
});
/*将项目添加到布局中*/
布局。设置中心(cbStyles);
返回布局;
}
@凌驾
public void start(Stage)引发异常{
stage.setScene(新场景(createContent());
舞台布景宽度(200);
舞台设置高度(200);
stage.show();
}
公共静态void main(字符串参数[]){
发射(args);
}
}
您可以在ComboBox.setOnAction()
方法体中使用setUserAgentStylesheet()
。例如:
import javafx.application.Application;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.scene.control.ComboBox;
import javafx.scene.layout.BorderPane;
import javafx.stage.Stage;
public class SetStyleDemo extends Application {
public Parent createContent() {
/* layout */
BorderPane layout = new BorderPane();
/* layout -> combobox */
ObservableList<String> styles = FXCollections.observableArrayList(
"Modena", "Caspian");
ComboBox<String> cbStyles = new ComboBox<String>(styles);
cbStyles.getSelectionModel().select(0);
cbStyles.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent ae) {
if (cbStyles.getSelectionModel()
.getSelectedItem().equals("Modena")) {
setUserAgentStylesheet(STYLESHEET_MODENA);
} else {
setUserAgentStylesheet(STYLESHEET_CASPIAN);
}
}
});
/* add items to the layout */
layout.setCenter(cbStyles);
return layout;
}
@Override
public void start(Stage stage) throws Exception {
stage.setScene(new Scene(createContent()));
stage.setWidth(200);
stage.setHeight(200);
stage.show();
}
public static void main(String args[]) {
launch(args);
}
}
导入javafx.application.application;
导入javafx.collections.FXCollections;
导入javafx.collections.ObservableList;
导入javafx.event.ActionEvent;
导入javafx.event.EventHandler;
导入javafx.scene.Parent;
导入javafx.scene.scene;
导入javafx.scene.control.ComboBox;
导入javafx.scene.layout.BorderPane;
导入javafx.stage.stage;
公共类SetStyleDemo扩展了应用程序{
公共父级createContent(){
/*布局*/
BorderPane布局=新建BorderPane();
/*布局->组合框*/
ObservableList styles=FXCollections.observableArrayList(
“摩德纳”、“里海”);
组合框cbStyles=新组合框(样式);
cbStyles.getSelectionModel().select(0);
setOnAction(新的EventHandler()){
@凌驾
公共无效句柄(ActionEvent ae){
if(cbStyles.getSelectionModel()
.getSelectedItem().equals(“Modena”)){
setUserAgentStylesheet(样式表_MODENA);
}否则{
setUserAgentStylesheet(样式表_CASPIAN);
}
}
});
/*将项目添加到布局中*/
布局。设置中心(cbStyles);
返回布局;
}
@凌驾
public void start(Stage)引发异常{
stage.setScene(新场景(createContent());
舞台布景宽度(200);
舞台设置高度(200);
stage.show();
}
公共静态void main(字符串参数[]){
发射(args);
}
}
您可以在ComboBox.setOnAction()
方法体中使用setUserAgentStylesheet()
。例如:
import javafx.application.Application;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.scene.control.ComboBox;
import javafx.scene.layout.BorderPane;
import javafx.stage.Stage;
public class SetStyleDemo extends Application {
public Parent createContent() {
/* layout */
BorderPane layout = new BorderPane();
/* layout -> combobox */
ObservableList<String> styles = FXCollections.observableArrayList(
"Modena", "Caspian");
ComboBox<String> cbStyles = new ComboBox<String>(styles);
cbStyles.getSelectionModel().select(0);
cbStyles.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent ae) {
if (cbStyles.getSelectionModel()
.getSelectedItem().equals("Modena")) {
setUserAgentStylesheet(STYLESHEET_MODENA);
} else {
setUserAgentStylesheet(STYLESHEET_CASPIAN);
}
}
});
/* add items to the layout */
layout.setCenter(cbStyles);
return layout;
}
@Override
public void start(Stage stage) throws Exception {
stage.setScene(new Scene(createContent()));
stage.setWidth(200);
stage.setHeight(200);
stage.show();
}
public static void main(String args[]) {
launch(args);
}
}
导入javafx.application.application;
导入javafx.collections.FXCollections;
导入javafx.collections.ObservableList;
导入javafx.event.ActionEvent;
导入javafx.event.EventHandler;
导入javafx.scene.Parent;
导入javafx.scene.scene;
导入javafx.scene.control.ComboBox;
导入javafx.scene.layout.BorderPane;
导入javafx.stage.stage;
公共类SetStyleDemo扩展了应用程序{
公共父级createContent(){
/*布局*/
BorderPane布局=新建BorderPane();
/*布局->组合框*/
可观察列表样式=F