java语言程序设计 第十五章 (15.1、15.2、15.3、15.4、15.5、15.6、15.7)
2018-01-30 16:59
344 查看
程序小白,希望和大家多交流,共同学习
15.1
15.2
15.3
15.4
15.5
15.6
15.7
15.1
//调用CardsPane点击按钮后随机出现三张扑克牌 import javafx.application.Application; import javafx.stage.Stage; import javafx.scene.Scene; import javafx.scene.layout.VBox; import javafx.scene.control.Button; import javafx.geometry.Pos; import javafx.geometry.Insets; public class GetCards extends Application { @Override public void start(Stage primaryStage) { VBox pane = new VBox(5); pane.setPadding(new Insets(5, 5, 5, 5)); CardsPane cards = new CardsPane(); pane.getChildren().add(cards); Button btRefresh = new Button("Refresh"); pane.getChildren().add(btRefresh); pane.setAlignment(Pos.CENTER); VBox.setMargin(btRefresh, new Insets(5, 5, 5, 5)); btRefresh.setOnAction(e -> { cards.refresh();}); Scene scene = new Scene(pane); primaryStage.setTitle("GetCards"); primaryStage.setScene(scene); primaryStage.show(); } }
//cards面板,用于随机选取三张扑克牌显示在一个HBox 的面板中 import javafx.scene.layout.HBox; import javafx.scene.image.ImageView; import java.util.Arrays; import java.util.Collections; import java.util.ArrayList; public class CardsPane extends HBox { private Integer[] cardsNum = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54}; private ArrayList<Integer> list = new ArrayList<>(Arrays.asList(cardsNum)); private ImageView p1; private ImageView p2; private ImageView p3; private ImageView p4; public CardsPane() { setSpacing(5); Collections.shuffle(list); p1 = new ImageView("image/card/" + Integer.valueOf(list.get(0)) + ".png"); p2 = new ImageView("image/card/" + Integer.valueOf(list.get(1)) + ".png"); p3 = new ImageView("image/card/" + Integer.valueOf(list.get(2)) + ".png"); p4 = new ImageView("image/card/" + Integer.valueOf(list.get(3)) + ".png"); super.getChildren().addAll(p1, p2, p3, p4); } public void refresh() { Collections.shuffle(list); super.getChildren().removeAll(p1, p2, p3, p4); p1 = new ImageView("image/card/" + Integer.valueOf(list.get(0)) + ".png"); p2 = new ImageView("image/card/" + Integer.valueOf(list.get(1)) + ".png"); p3 = new ImageView("image/card/" + Integer.valueOf(list.get(2)) + ".png"); p4 = new ImageView("image/card/" + Integer.valueOf(list.get(3)) + ".png"); super.getChildren().addAll(p1, p2, p3, p4); } }
15.2
import javafx.application.Application; import javafx.stage.Stage; import javafx.scene.Scene; import javafx.scene.layout.VBox; import javafx.scene.paint.Color; import javafx.scene.shape.Rectangle; import javafx.scene.control.Button; import javafx.geometry.Insets; import javafx.geometry.Pos; public class RotateARectagle extends Application { private double angle = 0; @Override public void start(Stage primaryStage) { VBox pane = new VBox(10); pane.setPadding(new Insets(20, 20, 20, 20)); Rectangle re = new Rectangle(50, 50, 20, 40); re.setFill(Color.WHITE); re.setStroke(Color.BLACK); Button btRotate = new Button("Rotate"); pane.getChildren().addAll(re, btRotate); pane.setAlignment(Pos.CENTER); btRotate.setOnAction(e -> { changeRectagle(re); }); Scene scene = new Scene(pane); primaryStage.setTitle("RotateARectangle"); primaryStage.setScene(scene); primaryStage.show(); } public void changeRectagle(Rectangle re) { angle += 15; re.setRotate(angle); } }
15.3
//单击四个按钮改变小球的位置 import javafx.application.Application; import javafx.stage.Stage; import javafx.scene.Scene; import javafx.scene.layout.Pane; import javafx.scene.layout.HBox; import javafx.geometry.Pos; import javafx.scene.control.Button; import javafx.scene.shape.Circle; import javafx.scene.paint.Color; import javafx.geometry.Pos; public class MoveBall extends Application { @Override public void start(Stage primaryStage) { Pane pane = new Pane(); Circle circle = new Circle(10, 10, 10); circle.setFill(Color.WHITE); circle.setStroke(Color.BLACK); pane.getChildren().add(circle); Button up = new Button("Up"); Button right = new Button("Right"); Button down = new Button("Down"); Button left = new Button("Left"); HBox hbox = new HBox(5); hbox.setAlignment(Pos.CENTER); hbox.getChildren().addAll(up, right, down, left); pane.getChildren().add(hbox); up.setOnAction(e -> { if (circle.getCenterY() - 10 - 5 < 0) { circle.setCenterY(circle.getCenterY()); } else circle.setCenterY(circle.getCenterY() - 5); circle.setCenterX(circle.getCenterX()); }); down.setOnAction(e -> { if (circle.getCenterY() + 10 + 5 > pane.getHeight()) { circle.setCenterY(circle.getCenterY()); } else circle.setCenterY(circle.getCenterY() + 5); circle.setCenterX(circle.getCenterX()); }); left.setOnAction(e -> { if (circle.getCenterX() - 10 - 5 < 0) { circle.setCenterX(circle.getCenterX()); } else circle.setCenterX(circle.getCenterX() - 5); circle.setCenterY(circle.getCenterY()); }); right.setOnAction(e -> { if (circle.getCenterX() + 10 + 5 > pane.getWidth()) { circle.setCenterX(circle.getCenterX()); } else circle.setCenterX(circle.getCenterX() + 5); circle.setCenterY(circle.getCenterY()); }); Scene scene = new Scene(pane, 200, 200); primaryStage.setTitle("MoveBall"); primaryStage.setScene(scene); primaryStage.show(); } }
15.4
//使用按钮完成简单的加减乘除 import javafx.application.Application; import javafx.stage.Stage; import javafx.scene.Scene; import javafx.scene.layout.HBox; import javafx.scene.layout.VBox; import javafx.scene.control.Label; import javafx.scene.control.TextField; import javafx.scene.control.Button; import javafx.geometry.Insets; import javafx.geometry.Pos; public class SimpleCalculate extends Application { @Override public void start(Stage primaryStage) { VBox pane = new VBox(10); pane.setAlignment(Pos.CENTER); pane.setPadding(new Insets(20, 20, 20, 20)); HBox hbox1 = new HBox(10); Label lbN1 = new Label("Number1: "); Label lbN2 = new Label("Number2: "); Label lbR = new Label("Result: "); TextField tf1 = new TextField(); tf1.setPrefColumnCount(3); TextField tf2 = new TextField(); tf2.setPrefColumnCount(3); TextField tfR = new TextField(); tfR.setPrefColumnCount(3); tfR.setEditable(false); hbox1.getChildren().addAll(lbN1, tf1, lbN2, tf2, lbR, tfR); pane.getChildren().add(hbox1); Button btAdd = new Button("Add"); Button btSubtract = new Button("Subtract"); Button btMultiply = new Button("Multiply"); Button btDivide = new Button("Divide"); HBox hbox2 = new HBox(10); hbox2.getChildren().addAll(btAdd, btSubtract, btMultiply, btDivide); pane.getChildren().add(hbox2); btAdd.setOnAction(e -> { double result = Double.parseDouble(tf1.getText()) + Double.parseDouble(tf2.getText()); tfR.setText(result + ""); }); btSubtract.setOnAction(e -> { double result = Double.parseDouble(tf1.getText()) - Double.parseDouble(tf2.getText()); tfR.setText(result + ""); }); btMultiply.setOnAction(e -> { double result = Double.parseDouble(tf1.getText()) * Double.parseDouble(tf2.getText()); tfR.setText(result + ""); }); btDivide.setOnAction(e -> { if (Double.parseDouble(tf2.getText()) != 0) { double result = Double.parseDouble(tf1.getText()) / Double.parseDouble(tf2.getText()); tfR.setText(result + ""); } else tfR.setText("Wrong"); }); Scene scene = new Scene(pane); primaryStage.setTitle("SimpleCalculate"); primaryStage.setScene(scene); primaryStage.show(); } }
15.5
//投资值计算器 import javafx.application.Application; import javafx.stage.Stage; import javafx.scene.Scene; import javafx.scene.layout.GridPane; import javafx.scene.control.Button; import javafx.scene.control.Label; import javafx.scene.control.TextField; import javafx.geometry.Insets; import javafx.geometry.Pos; import javafx.geometry.HPos; public class InvestmentCalculate extends Application { @Override public void start(Stage primaryStage) { GridPane pane = new GridPane(); pane.setPadding(new Insets(20, 20, 20, 20)); pane.setHgap(5); pane.setVgap(5); TextField tfInvestmentAmount = new TextField(); TextField tfNumberOfYears = new TextField(); TextField tfAnnualInterestRate = new TextField(); TextField tfFutureValue = new TextField(); Button btCalculate = new Button("Calculate"); tfInvestmentAmount.setAlignment(Pos.BOTTOM_RIGHT); tfNumberOfYears.setAlignment(Pos.BOTTOM_RIGHT); tfAnnualInterestRate.setAlignment(Pos.BOTTOM_RIGHT); tfFutureValue.setAlignment(Pos.BOTTOM_RIGHT); tfFutureValue.setEditable(false); GridPane.setHalignment(btCalculate, HPos.RIGHT); pane.add(new Label("Investment Amounnt: "), 0 ,0); pane.add(tfInvestmentAmount, 1, 0); pane.add(new Label("Number Of Years: "), 0, 1); pane.add(tfNumberOfYears, 1, 1); pane.add(new Label("Annual Iterest Rate: "), 0, 2); pane.add(tfAnnualInterestRate, 1, 2); pane.add(new Label("Future Value: "), 0, 3); pane.add(tfFutureValue, 1, 3); pane.add(btCalculate, 1, 4); btCalculate.setOnAction(e -> { double futureValue = Double.parseDouble(tfInvestmentAmount.getText()) * Math.pow((1 + Double.parseDouble(tfAnnualInterestRate.getText()) / 1200), (Integer.parseInt(tfNumberOfYears.getText()) * 12)); tfFutureValue.setText(String.format("$%.2f", futureValue)); }); Scene scene = new Scene(pane); primaryStage.setTitle("InvestmentCalculate"); primaryStage.setScene(scene); primaryStage.show(); } }
15.6
//单击鼠标交替显示两个信息 import javafx.application.Application; import javafx.stage.Stage; import javafx.scene.Scene; import javafx.scene.layout.StackPane; public class ShowMessage extends Application { private boolean fun = true; @Override public void start(Stage primaryStage) { StackPane pane = new StackPane(); pane.setOnMouseClicked(e -> { print(); }); Scene scene = new Scene(pane, 200, 200); primaryStage.setTitle("ShowMessage"); primaryStage.setScene(scene); primaryStage.show(); } public void print() { if (fun) { System.out.println("Java is fun"); fun = false; } else { System.out.println("Java is powerful"); fun = true; } } }
15.7
//鼠标按下和松开小球显示不同的颜色 import javafx.application.Application; import javafx.stage.Stage; import javafx.scene.Scene; import javafx.scene.layout.StackPane; import javafx.scene.paint.Color; import javafx.scene.shape.Circle; public class ChangeColor extends Application { @Override public void start(Stage primaryStage) { StackPane pane = new StackPane(); Circle circle = new Circle(50); pane.getChildren().add(circle); circle.setStroke(Color.BLACK); circle.setFill(Color.WHITE); pane.setOnMousePressed(e -> { circle.setFill(Color.BLACK); }); pane.setOnMouseReleased(e -> { circle.setFill(Color.WHITE); }); Scene scene = new Scene(pane, 200, 200); primaryStage.setTitle("Change Color"); primaryStage.setScene(scene); primaryStage.show(); } }
相关文章推荐
- 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语言程序设计 第十五章 (15.8、15.9、15.10、15.11、15.12、15.13、15.14)
- 15.1, 15.2, 15.3, 15.5
- Java语言程序设计 第十五章 (15.15、15.16、15.17、15.18、15.19、15.20)
- Java语言程序设计 第十五章 (15.25、15.26、15.27、15.28)
- java语言程序设计第十版(Introduce to java 10th) 课后习题 chapter6-29
- Java语言程序设计-进阶篇(四)集合和映射表
- NJUPT JAVA语言 综合图形界面程序设计
- Java语言程序设计-基础篇(三)方法
- Java语言程序设计-基础篇-第八版-复习题-第一章
- Java语言程序设计-基础篇-第八版-复习题-第二章
- java语言程序设计第十版(Introduce to java 10th) 课后习题 chapter7-21
- Java语言程序设计-JDK 1.6 及 Eclipse 3.4安装及配置
- Java语言程序设计-基础篇第六章--数组
- Java 语言程序设计【13~15章】(Word版)
- Java 语言程序设计 -图形与多媒体处理