按钮基本使用和快捷键设置,快捷键设置相当于单击事件
按钮字体、颜色、边框,单击、双击、按键事件等
package application;
import javafx.application.Application;
import javafx.event.EventHandler;
import javafx.geometry.Insets;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.input.KeyCharacterCombination;
import javafx.scene.input.KeyCode;
import javafx.scene.input.KeyCodeCombination;
import javafx.scene.input.KeyCombination;
import javafx.scene.input.KeyEvent;
import javafx.scene.input.Mnemonic;
import javafx.scene.input.MouseButton;
import javafx.scene.input.MouseEvent;
import javafx.scene.layout.Background;
import javafx.scene.layout.BackgroundFill;
import javafx.scene.layout.Border;
import javafx.scene.layout.BorderStroke;
import javafx.scene.layout.BorderStrokeStyle;
import javafx.scene.layout.BorderWidths;
import javafx.scene.layout.CornerRadii;
import javafx.scene.paint.Color;
import javafx.scene.paint.Paint;
import javafx.scene.shape.Rectangle;
import javafx.scene.text.Font;
import javafx.stage.Stage;
public class Main extends Application {
@Override
public void start(Stage primaryStage) {
Group root = new Group();
Scene s = new Scene(root, 300, 300, Color.BLACK);
Rectangle r = new Rectangle(25,25,250,250);
r.setFill(Color.BLUE);
Button btn = new Button();
btn.setText("changeSize");
// 设置按钮的字体
btn.setFont(Font.font("sans-serif",40));
//b1.setFont(Font.font(40));
// 设置按钮的背景颜色
BackgroundFill backgroundFill = new BackgroundFill(Paint.valueOf("#8FBC8F"), new CornerRadii(20), Insets.EMPTY);
Background background = new Background(backgroundFill);
btn.setBackground(background);
// 设置按钮的边框
BorderStroke borderStroke = new BorderStroke(Paint.valueOf("#8A2BE2"), BorderStrokeStyle.SOLID, new CornerRadii(20), new BorderWidths(10));
Border border = new Border(borderStroke);
btn.setBorder(border);
// 设置按钮文字的颜色
btn.setTextFill(Paint.valueOf("#CD0000"));
//单击事件
btn.setOnAction((e)->{
r.setWidth(300);
r.setHeight(300);
});
//双击事件
btn.addEventHandler(MouseEvent.MOUSE_CLICKED, (e)->{
System.out.println(e.getButton().name());
if (e.getClickCount() == 2 && e.getButton().name().equals(MouseButton.PRIMARY.name())) {
System.out.println("鼠标双击");
}
});
//键盘按下
btn.setOnKeyPressed((e)->{
if (e.getCode().getName().equals(KeyCode.A.getName())) {
System.out.println(e.getCode().getName());
}
});
//键盘弹起
btn.setOnKeyReleased(new EventHandler<KeyEvent>() {
@Override
public void handle(KeyEvent event) {
System.out.println(event.getCode().getName());
}
});
//设置快捷键,快捷键属于单击事件
// 第一种
KeyCombination kc1 = new KeyCodeCombination(KeyCode.C, KeyCombination.ALT_DOWN, KeyCombination.CONTROL_DOWN);
Mnemonic mnemonic1 = new Mnemonic(btn, kc1);
s.addMnemonic(mnemonic1);
// 第二种
KeyCombination kc2 = new KeyCharacterCombination("O", KeyCombination.ALT_DOWN);
Mnemonic mnemonic2 = new Mnemonic(btn, kc2);
s.addMnemonic(mnemonic2);
// 第三种
KeyCodeCombination kc4 = new KeyCodeCombination(KeyCode.Y, KeyCombination.SHORTCUT_DOWN);
s.getAccelerators().put(kc4, new Runnable() {
@Override
public void run() {
System.out.println("run()方法");
btn.fire();
}
});
root.getChildren().add(r);
root.getChildren().add(btn);
primaryStage.setScene(s);
primaryStage.setTitle("FX");
primaryStage.setHeight(800);
primaryStage.setWidth(800);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}