您的位置:首页 > 编程语言 > Java开发

Java语言程序设计 第十五章 (15.8、15.9、15.10、15.11、15.12、15.13、15.14)

2018-01-30 17:07 309 查看
程序小白,希望和大家多交流,共同学习







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();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: