Очередность запуска методов - Java
Формулировка задачи:
Добрый день. Столкнулся с такой проблемой. Помимо метода run, в программе есть еще 2 метода(openFile() i readFile()). По задумке, эти методы должны задавать начальное значение строке str, а уже затем на базе этой строки должен создаватся JavaFx Text который выводится на AnchorPane. Но почему-то на момент создание JavaFx Text значение строки все ещё не задано. Вроде как в главном методе main() сначала стоять методы openFile() i readFile() (чтобы задать значение строке), а уже потом стоит launch(args). Подскажите пожалуйста что я не так делаю. Спасибо.
package application; import java.io.File; import java.io.FileNotFoundException; import java.util.Random; import java.util.Scanner; import javafx.application.Application; import javafx.geometry.Pos; import javafx.stage.Stage; import javafx.scene.Group; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.image.Image; import javafx.scene.layout.AnchorPane; import javafx.scene.layout.BorderPane; import javafx.scene.layout.StackPane; import javafx.scene.paint.Color; import javafx.scene.paint.ImagePattern; import javafx.scene.shape.Circle; import javafx.scene.shape.Ellipse; import javafx.scene.shape.Rectangle; import javafx.scene.shape.StrokeType; import javafx.scene.text.Text; public class Main extends Application { Scanner s; String str; @Override public void start(Stage primaryStage) { AnchorPane root = new AnchorPane(); Scene scene = new Scene(root,500,500); Text t=new Text(str); t.setLayoutX(65); t.setLayoutY(50); t.setStyle("-fx-font: bold italic 20pt Arial;"); //root.setStyle("-fx-background-color:#808080;"); root.getChildren().add(t); primaryStage.setTitle("BUBBLE SPLASH"); primaryStage.setScene(scene); primaryStage.show(); } private void openFile(){ try { s=new Scanner(new File("txt/1.txt")); } catch (Exception e) {} } private void readFile(){ while(s.hasNext()){ str=s.next(); } } public static void main(String[] args) { Main m=new Main(); m.openFile(); m.readFile(); launch(args); } }
Решение задачи: «Очередность запуска методов»
textual
Листинг программы
import java.io.File; import java.util.Scanner; import javafx.application.Application; import javafx.stage.Stage; import javafx.scene.Scene; import javafx.scene.layout.AnchorPane; import javafx.scene.text.Text; public class Main extends Application { Scanner s; String str; @Override public void start(Stage primaryStage) { openFile(); readFile(); AnchorPane root = new AnchorPane(); Scene scene = new Scene(root, 500, 500); Text t = new Text(str); t.setLayoutX(65); t.setLayoutY(50); t.setStyle("-fx-font: bold italic 20pt Arial;"); //root.setStyle("-fx-background-color:#808080;"); root.getChildren().add(t); primaryStage.setTitle("BUBBLE SPLASH"); primaryStage.setScene(scene); primaryStage.show(); } private void openFile() { try { s = new Scanner(new File("txt/1.txt")); System.out.println(s); } catch (Exception e) { } } private void readFile() { while (s.hasNext()) { str = s.next(); } } public static void main(String[] args) { launch(args); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д