Java语言程序设计 第十五章 (15.8、15.9、15.10、15.11、15.12、15.13、15.14)
2018-01-30 17:07
309 查看
程序小白,希望和大家多交流,共同学习
15.8
15.9
15.10
15.11
在Java语言程序设计 (样例代码) 的第7个
15.12
15.13
15.14
15.8
//显示鼠标的位置 import javafx.application.Application; import javafx.stage.Stage; import javafx.scene.Scene; import javafx.scene.layout.Pane; import javafx.scene.input.MouseEvent; import javafx.scene.text.Text; public class ShowMouseCoordinate extends Application { @Override public void start(Stage primaryStage) { Pane pane = new Pane(); Text coordinate = new Text(); pane.setOnMousePressed(e -> { double x = e.getX(); double y = e.getY(); coordinate.setX(x); coordinate.setY(y); coordinate.setText("(" + x + "," + y + ")"); pane.getChildren().add(coordinate); }); pane.setOnMouseReleased(e -> { pane.getChildren().remove(coordinate); }); Scene scene = new Scene(pane); primaryStage.setTitle("ShowMouseCoordinate"); primaryStage.setScene(scene); primaryStage.show(); } }
15.9
//画线的位置坐标一个变,可以定义几个全局变量表示,但还是写成一个对象清晰明了 import javafx.application.Application; import javafx.stage.Stage; import javafx.scene.Scene; import javafx.scene.layout.Pane; import javafx.scene.shape.Line; import javafx.scene.input.KeyCode; public class DrawLine extends Application { @Override public void start(Stage primaryStage) { //LinePane 本身就是一个面板,不需要加入新的面板。 LinePane line = new LinePane(); line.setOnKeyPressed(e -> { switch (e.getCode()) { case UP: line.up(); break; case DOWN: line.down(); break; case LEFT: line.left(); break; case RIGHT: line.right(); break; } }); Scene scene = new Scene(line, 500, 500); primaryStage.setTitle("DrawLine"); primaryStage.setScene(scene); f2c9 primaryStage.show(); //这句不能忘啊 line.requestFocus(); } }
//要求是们每次的线条都要记录,所以每次更新的线条的坐标后, //就要画一条新的线 import javafx.scene.shape.Line; import javafx.scene.layout.Pane; import javafx.scene.paint.Color; public class LinePane extends Pane { private double startX; private double startY; private double endX; private double endY; public LinePane() { startX = endX = 40; startY = endY = 40; drawLine(); } public void drawLine() { Line line = new Line(); line.setStartX(startX); line.setStartY(startY); line.setEndX(endX); line.setEndY(endY); super.getChildren().add(line); line.setStroke(Color.RED); } public void up() { endY -= 5; drawLine(); startY = endY; } public void down() { endY += 5; drawLine(); startY = endY; } public void left() { endX -= 5; drawLine(); startX = endX; } public void right() { endX += 5; drawLine(); startX = endX; } }
15.10
//将输入内容显示在面板中 import javafx.application.Application; import javafx.stage.Stage; import javafx.scene.Scene; import javafx.scene.layout.VBox; import javafx.scene.control.Label; import javafx.geometry.Insets; import javafx.scene.input.KeyCode; import java.util.Scanner; public class PrintWords extends Application { @Override public void start(Stage primaryStage) { VBox pane = new VBox(5); String content = ""; pane.setOnKeyPressed(e -> { Label text = new Label(enterWords()); pane.getChildren().add(text); }); Scene scene = new Scene(pane, 200, 200); primaryStage.setTitle("PrintWords"); primaryStage.setScene(scene); primaryStage.show(); pane.requestFocus(); } public String enterWords() { Scanner input = new Scanner(System.in); String content = input.nextLine(); return content; } }
15.11
在Java语言程序设计 (样例代码) 的第7个
15.12
//确定一个圆和鼠标位置的关系 import javafx.application.Application; import javafx.stage.Stage; import javafx.scene.Scene; import javafx.scene.layout.Pane; import javafx.scene.shape.Circle; import javafx.scene.paint.Color; import javafx.scene.text.Text; import javafx.geometry.Point2D; public class PointAndACircle extends Application { @Override public void start(Stage primaryStage) { Pane pane = new Pane(); Circle circle = new Circle(100, 60, 50); pane.getChildren().add(circle); circle.setFill(Color.WHITE); circle.setStroke(Color.BLACK); Text text = new Text(); pane.getChildren().add(text); pane.setOnMouseMoved(e -> { pane.getChildren().remove(text); double x = e.getSceneX(); double y = e.getSceneY(); text.setX(x); text.setY(y); if (circle.contains(new Point2D(x, y))) { text.setText("Mouse point is inside the circle"); text.setStroke(Color.BLUE); } else { text.setText("Mouse point is outside the circle"); text.setStroke(Color.RED); } pane.getChildren().add(text); }); Scene scene = new Scene(pane, 200, 150); primaryStage.setTitle("PointAndACircle"); primaryStage.setScene(scene); primaryStage.show(); } }
15.13
//判断一个矩形和鼠标的位置关系 import javafx.application.Application; import javafx.stage.Stage; import javafx.scene.Scene; import javafx.scene.layout.Pane; import javafx.scene.text.Text; import javafx.scene.paint.Color; import javafx.scene.shape.Rectangle; import javafx.geometry.Point2D; public class PointAndARectangle extends Application { @Override public void start(Stage primaryStage) { Pane pane = new Pane(); Rectangle re = new Rectangle(100, 60, 100, 40); re.setFill(Color.WHITE); re.setStroke(Color.BLACK); pane.getChildren().add(re); Text text = new Text(); pane.getChildren().add(text); pane.setOnMouseMoved(e -> { pane.getChildren().remove(text); double x = e.getSceneX(); double y = e.getSceneY(); text.setX(x); text.setY(y); if (re.contains(new Point2D(x, y))) { text.setText("Mouse point is inside the circle"); text.setStroke(Color.BLUE); } else { text.setText("Mouse point is outside the circle"); text.setStroke(Color.RED); } pane.getChildren().add(text); }); Scene scene = new Scene(pane, 300, 200); primaryStage.setTitle("PointAndARectangle"); primaryStage.setScene(scene); primaryStage.show(); } }
15.14
//判断点和多边形的位置关系 import javafx.application.Application; import javafx.stage.Stage; import javafx.scene.Scene; import javafx.scene.layout.Pane; import javafx.scene.shape.Polygon; import javafx.collections.ObservableList; import javafx.scene.paint.Color; import javafx.scene.text.Text; import javafx.geometry.Point2D; public class PointAndPolygon extends Application { @Override public void start(Stage primaryStage) { Pane pane = new Pane(); Polygon polygon = new Polygon(); ObservableList<Double> list = polygon.getPoints(); list.add(40.0); list.add(20.0); list.add(70.0); list.add(40.0); list.add(60.0); list.add(80.0); list.add(45.0); list.add(45.0); list.add(20.0); list.add(60.0); polygon.setFill(Color.WHITE); polygon.setStroke(Color.BLACK); pane.getChildren().add(polygon); Text text = new Text(); pane.getChildren().add(text); pane.setOnMouseMoved(e -> { pane.getChildren().remove(text); double x = e.getSceneX(); double y = e.getSceneY(); text.setX(x); text.setY(y); if (polygon.contains(new Point2D(x, y))) { text.setText("Mouse point is inside the polygon"); text.setStroke(Color.BLUE); } else { text.setText("Mouse point is outside the circle"); text.setStroke(Color.RED); } pane.getChildren().add(text); }); Scene scene = new Scene(pane, 300, 100); primaryStage.setTitle("PointAndPolygon"); primaryStage.setScene(scene); primaryStage.show(); } }
相关文章推荐
- Java语言程序设计 第十五章 (15.15、15.16、15.17、15.18、15.19、15.20)
- Java语言程序设计 第十五章 (15.25、15.26、15.27、15.28)
- java语言程序设计 第十五章 (15.1、15.2、15.3、15.4、15.5、15.6、15.7)
- Java语言程序设计 第十五章(15.29、15.30、15.31、15.32)
- java语言程序设计 第十五章 (样例代码)
- Java语言程序设计 第十五章(15.34、15.35、15.36)自回避自由漫步
- Java语言程序设计 第十五章(15.33 )分豆机
- java语言程序设计 第十五章 (15.21、15.22、15.23、15.24)
- Java语言程序设计-基础篇(七)文本I/O
- Java语言程序设计【基础篇】【chapter08_8.7】
- 关于学习JAVA程序设计语言的回顾与展望
- Java语言程序设计-基础篇(十二)JavaFX
- java语言程序设计-进阶篇(十)网络
- 《程序设计入门—Java语言.翁恺》第七周编程作业(1)-分解质因数
- java语言程序设计 第十三章 抽象类与接口 (13.2、13.3、13.4)
- Java语言程序设计-助教篇
- java 语言程序设计-李尊朝-第2章 java基础
- Java语言程序设计 第十四章 (14.26、14.27、14.28、14.29)
- Java语言程序设计--基础篇(第八版)第一章概述
- Java语言程序设计-基础篇-第八版-第八章