Очередность запуска методов - 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);
}
}