Button样式设置
button的背景、边框、字体设置,比较基础简单的示例如下:
public class JavaFxNote extends Application {
public static void main(String[] args)
{
// 调用launch方法启动应用
launch(args);
}
@Override
public void start(Stage primaryStage) throws Exception {
Button btn1 = new Button("btn1");
btn1.setLayoutX(50);
btn1.setLayoutY(50);
btn1.setPrefWidth(50);
btn1.setPrefHeight(50);
Group group =new Group();
// 容器添加子组件
group.getChildren().addAll(btn1);
// 装饰btn1按钮
btn1.setStyle(
"-fx-background-color:#00BFFF;"+ //设置背景颜色
"-fx-background-radius:20;"+ //设置背景圆角
"-fx-text-fill:#FF0000;"+ //设置字体颜色
"-fx-border-radius:20;"+ //设置边框圆角
"-fx-border-color:#FFFF00;"+ //设置边框颜色
"-fx-border-style:dashed;"+ //设置边框样式
"-fx-border-width:5;"+ //设置边框宽度
"-fx-border-insets:-5" //设置边框插入值
);
// 指定一个布局类或者根结点
Scene scene = new Scene(group);
primaryStage.setScene(scene);
primaryStage.setTitle("骏杰小程序");
primaryStage.setHeight(768);
primaryStage.setWidth(1366);
primaryStage.show();
}
}
运行出来的效果如下:
Button的点击事件
button的点击事件分单击事件、双击事件、键盘触发事件等。下面也是一个简单的示例,注释也说得比较明白。
public class JavaFxNote extends Application {
public static void main(String[] args)
{
// 调用launch方法启动应用
launch(args);
}
public void start(Stage primaryStage) throws Exception {
Button btn1 = new Button("btn1");
btn1.setLayoutX(50);
btn1.setLayoutY(50);
btn1.setPrefWidth(50);
btn1.setPrefHeight(50);
Group group =new Group();
// 容器添加子组件
group.getChildren().addAll(btn1);
// 设置按钮单击事件
btn1.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
System.out.println("btn1的单击事件");
}
});
// 设置按钮单击事件,并设置鼠标左键触发双击事件
btn1.addEventHandler(MouseEvent.MOUSE_CLICKED, new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent event) {
System.out.println("鼠标按键"+event.getButton().name());
// 将MouseButton.PRIMARY替换,可设置为鼠标右键
if(event.getClickCount()==2&&event.getButton().name().equals(MouseButton.PRIMARY.name())){
System.out.println("鼠标按键为:"+event.getButton().name());
System.out.println("触发双击事件");
}
}
});
// 设置按钮键盘按下事件,并过滤除A外的键
btn1.setOnKeyPressed(new EventHandler<KeyEvent>() {
@Override
public void handle(KeyEvent event) {
// 如果不想设置为A键,可将KeyCode.A替换成别的键
if(event.getCode().getName().equals(KeyCode.A.getName()))
System.out.println("按下="+event.getCode().getName());
}
});
// 设置按钮键盘释放事件,并过滤除A外的键
btn1.setOnKeyReleased(new EventHandler<KeyEvent>() {
@Override
public void handle(KeyEvent event) {
if(event.getCode().getName().equals(KeyCode.A.getName()))
System.out.println("释放="+event.getCode().getName());
}
});
// 指定一个布局类或者根结点
Scene scene = new Scene(group);
primaryStage.setScene(scene);
primaryStage.setTitle("骏杰小程序");
primaryStage.setHeight(400);
primaryStage.setWidth(400);
primaryStage.show();
}
}
Button设置快捷键
快捷键的设置有四种方法,两种是比较常用的,两种不常用。下面是设置快捷键的简单示例。
public class JavaFxNote extends Application {
public static void main(String[] args)
{
// 调用launch方法启动应用
launch(args);
}
@Override
public void start(Stage primaryStage) throws Exception {
Button btn1 = new Button("btn1");
btn1.setLayoutX(50);
btn1.setLayoutY(50);
btn1.setPrefWidth(50);
btn1.setPrefHeight(50);
Group group =new Group();
// 容器添加子组件
group.getChildren().addAll(btn1);
btn1.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
play();
}
});
// 指定一个布局类或者根结点
Scene scene = new Scene(group);
// 第一种快捷键设置方式,也是常用的
KeyCombination kc1 = new KeyCodeCombination(KeyCode.C,KeyCombination.ALT_DOWN,KeyCombination.CONTROL_DOWN);
Mnemonic mnemonic = new Mnemonic(btn1,kc1);
scene.addMnemonic(mnemonic);
// 第二种快捷键设置方式,不太常用
KeyCombination kc2 = new KeyCharacterCombination("A",KeyCombination.ALT_DOWN);
Mnemonic mnemonic2 = new Mnemonic(btn1,kc2);
scene.addMnemonic(mnemonic2);
// 第三种设置快捷键方式,基本不用
KeyCombination kc3 = new KeyCodeCombination(KeyCode.K,KeyCombination.SHIFT_DOWN,KeyCombination.CONTROL_DOWN,KeyCombination.ALT_DOWN,KeyCombination.META_DOWN,KeyCombination.SHORTCUT_DOWN);
Mnemonic mnemonic3 = new Mnemonic(btn1,kc3);
scene.addMnemonic(mnemonic3);
// 第四种设置快捷键方式,最常用,
// SHORTCUT_DOWN等同于Windows系统的Ctrl,等同于Mac系统的Meta
KeyCombination kc4 = new KeyCodeCombination(KeyCode.Y,KeyCombination.SHORTCUT_DOWN);
scene.getAccelerators().put(kc4, new Runnable() {
@Override
public void run() {
System.out.println("run方法");
play();
}
});
primaryStage.setScene(scene);
primaryStage.setTitle("骏杰小程序");
primaryStage.setHeight(400);
primaryStage.setWidth(400);
primaryStage.show();
}
public static void play(){
System.out.println("触发快捷键");
}
}
学习javafx的资料比较少,视频学习推荐哔哩哔哩搜索up主:Aimls,或者加入扣扣群里学习:一群 456378454 ,二群:464362636