五子棋
jdk1.8 11以上需要单独下载javafx的jar包
1.工具类继承Application 重写start(Stage primaryStage) 形参就是当前舞台对象
画板 //画板内部有个集合Children 集合存放所有控件
Pane pane = new Pane();
Line line = new Line(10,20,580,40); //画一根线 起点(10,20)终点(580,40)
pane.getChildren().add(line);//将线条对象加入画板的节点集合
Background background = new Background(new BackgroundFill(Color.BEIGE, null, null));
pane.setBackground(background);//设置好的背景加入画板
场景(画板放入场景)
Scene scene = new Scene(pane,600,700);//把控件通过画板放入场景 设置场景宽高
舞台(场景加入舞台)
primaryStage.setScene(scene);//把场景放入舞台 展示
展示舞台
primaryStage.show();
2.测试类启动应用程序
测试类继承工具类
调用launch(main方法的参数)
public class Test extends Util {
public static void main(String[] args) {
// TODO Auto-generated method stub
//启动应用程序
launch(args);
}
}
3.其他控件
按钮:新局 悔棋 保存棋谱 打谱 退出 600 560
Button button_1 = new Button("新局");//创建按钮对象
button_1.setPrefSize(80, 40);//设定按钮大小
button_1.setLayoutX(20);//设置距离左侧20
button_1.setLayoutY(610);//设置距离顶部多远
pane.getChildren().add(button_1);
按钮点击事件:
button_4.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
}
}
新局:
//清空原集合
ac.clear();
//清空棋盘
pane.getChildren().removeIf((Node t)->{return t instanceof Circle;});
4.落子
画板点击事件
pane.setOnMouseClicked(new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent event) {
// TODO Auto-generated method stub
double x = event.getSceneX();
double y = event.getSceneY();
//画棋子
Circle circle = new Circle(x,y,20,lz?Color.BLACK:Color.WHITE);
lz=lz?false:true;//切换落子颜色
//将棋子加入画板
pane.getChildren().add(circle);
}
});
1.不能超出600的高 此位置提示不能落子
2.落子应该找到最近的焦点坐标落子
3.如果最近的焦点坐标已经有子 则提示不能重复落子
4.判定是否赢棋
警告效果1. 只有确定 没有返回值
Alert alert = new Alert(AlertType.WARNING);
alert.setTitle("落子警告");
alert.setHeaderText("落子异常");
alert.setContentText("棋盘以外不能落子");
alert.show();
警告效果2. 有确定 取消两个选项
Alert alert = new Alert(AlertType.CONFIRMATION);
alert.setTitle("新局警告");
alert.setHeaderText("是否清空棋盘?");
alert.setContentText("若未保存,则丢失当前棋局。");
Optional<ButtonType> wait = alert.showAndWait();
if(wait.get() == ButtonType.OK) {}
提示框效果3. 内含下拉列表展示所有可选项 选择后返回选择的内容
//带下拉列表的提示框
ChoiceDialog<String> dialog = new ChoiceDialog<String>(as.get(0), as);
dialog.setTitle("打谱确认");
dialog.setHeaderText("请选择普表");
dialog.setContentText("你选择的普表:");
Optional<String> wait2 = dialog.showAndWait();
String fileName = wait2.get();