Изменить размер изображения - Java
Формулировка задачи:
Подскажите пожалуйста как сделать ,что бы размер изображения менялся вместе с размером окна. Например что бы игра растягивалась вместе с оеном или развернулась во весь экран, а не оставалась на месте.
package tictactoe; import javafx.application.Application; import javafx.stage.Stage; import javafx.scene.Scene; import javafx.fxml.FXMLLoader; import javafx.scene.Parent; /** * * @author user */ public class TicTacToe extends Application { @Override public void start(Stage primaryStage /*stage*/) throws Exception { Parent root = FXMLLoader.load(getClass().getResource("FXMLDocument.fxml")); Scene scene = new Scene(root,300,320); scene.getStylesheets().add(getClass().getResource("MyCss.css").toExternalForm()); primaryStage.setTitle("TicTacToe"); primaryStage.setScene( scene); primaryStage.show(); } /** * @param args the command line arguments */ public static void main(String[] args) { launch(args); } } package tictactoe; import javafx.event.ActionEvent; import javafx.fxml.FXML; import javafx.collections.ObservableList; import javafx.scene.Node; import javafx.scene.control.Button; import javafx.scene.control.MenuItem; import javafx.scene.layout.GridPane; /** * * @author user */ public class FXMLDocumentController { @FXML Button b1; @FXML Button b2; @FXML Button b3; @FXML Button b4; @FXML Button b5; @FXML Button b6; @FXML Button b7; @FXML Button b8; @FXML Button b9; @FXML GridPane gameBoard; private boolean isFirstPlayer = true; public void buttonClickHandler(ActionEvent evt){ Button clickedButton = (Button) evt.getTarget(); String buttonLabel = clickedButton.getText(); if ("".equals(buttonLabel) && isFirstPlayer){ clickedButton.setText("X"); isFirstPlayer = false; } else if("".equals(buttonLabel) && !isFirstPlayer){ clickedButton.setText("O"); isFirstPlayer = true; } find3InARow(); // is there a winner? } private boolean find3InARow(){ //Row 1 if (!"".equals(b1.getText()) && b1.getText().equals(b2.getText()) && b2.getText().equals(b3.getText())){ highlightWinningCombo(b1,b2,b3); return true; } //Row 2 if (!"".equals(b4.getText()) && b4.getText().equals(b5.getText()) && b5.getText().equals(b6.getText())){ highlightWinningCombo(b4,b5,b6); return true; } //Row 3 if (!"".equals(b7.getText()) && b7.getText().equals(b8.getText()) && b8.getText().equals(b9.getText())){ highlightWinningCombo(b7,b8,b9); return true; } //Column 1 if (!"".equals(b1.getText()) && b1.getText().equals(b4.getText()) && b4.getText().equals(b7.getText())){ highlightWinningCombo(b1,b4,b7); return true; } //Column 2 if (!"".equals(b2.getText()) && b2.getText().equals(b5.getText()) && b5.getText().equals(b8.getText())){ highlightWinningCombo(b2,b5,b8); return true; } //Column 3 if (!"".equals(b3.getText()) && b3.getText().equals(b6.getText()) && b6.getText().equals(b9.getText())){ highlightWinningCombo(b3,b6,b9); return true; } //Diagonal 1 if (!"".equals(b1.getText()) && b1.getText().equals(b5.getText()) && b5.getText().equals(b9.getText())){ highlightWinningCombo(b1,b5,b9); return true; } //Diagonal 2 if (!"".equals(b3.getText()) && b3.getText().equals(b5.getText()) && b5.getText().equals(b7.getText())){ highlightWinningCombo(b3,b5,b7); return true; } return false; } private void highlightWinningCombo(Button first, Button second, Button third){ first.getStyleClass().add("winning-button"); second.getStyleClass().add("winning-button"); third.getStyleClass().add("winning-button"); } public void menuClickHandler(ActionEvent evt){ MenuItem clickedMenu = (MenuItem) evt.getTarget(); String menuLabel = clickedMenu.getText(); if ("Play".equals(menuLabel)){ ObservableList<Node> buttons = gameBoard.getChildren(); buttons.forEach(btn -> { ((Button) btn).setText(""); btn.getStyleClass().remove("winning-button"); }); isFirstPlayer = true; } } <?import java.lang.*?> <?import java.util.*?> <?import javafx.scene.*?> <?import javafx.scene.control.*?> <?import javafx.scene.layout.*?> <?import javafx.scene.layout.*?> <?import javafx.scene.layout.BorderPane?> <BorderPane xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="tictactoe.FXMLDocumentController"> <top> <MenuBar BorderPane.alignment="CENTER"> <menus> <Menu text="Actions"> <items> <MenuItem text="Play" onAction="#menuClickHandler"/> <MenuItem text="Quit" /> </items> </Menu> </menus> </MenuBar> </top> <center> <GridPane fx:id = "gameBoard" BorderPane.alignment="CENTER"> <children> <Button fx:id="b1" onAction="#buttonClickHandler" prefHeight="100.0" prefWidth="100.0" /> <Button fx:id="b2" onAction="#buttonClickHandler" prefHeight="100.0" prefWidth="100.0" GridPane.columnIndex="1" /> <Button fx:id="b3" onAction="#buttonClickHandler" prefHeight="100.0" prefWidth="100.0" GridPane.columnIndex="2" /> <Button fx:id="b4" onAction="#buttonClickHandler" prefHeight="100.0" prefWidth="100.0" GridPane.rowIndex="1" /> <Button fx:id="b5" onAction="#buttonClickHandler" prefHeight="100.0" prefWidth="100.0" GridPane.columnIndex="1" GridPane.rowIndex="1" /> <Button fx:id="b6" onAction="#buttonClickHandler" prefHeight="100.0" prefWidth="100.0" GridPane.columnIndex="2" GridPane.rowIndex="1" /> <Button fx:id="b7" onAction="#buttonClickHandler" prefHeight="100.0" prefWidth="100.0" GridPane.rowIndex="2" /> <Button fx:id="b8" onAction="#buttonClickHandler" prefHeight="100.0" prefWidth="100.0" GridPane.columnIndex="1" GridPane.rowIndex="2" /> <Button fx:id="b9" onAction="#buttonClickHandler" prefHeight="100.0" prefWidth="100.0" GridPane.columnIndex="2" GridPane.rowIndex="2" /> </children> </GridPane> </center> </BorderPane>
Решение задачи: «Изменить размер изображения»
textual
Листинг программы
BorderPane
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д