Изменить размер изображения - 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

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4.5 из 5
Похожие ответы