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

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


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

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

8   голосов , оценка 4.125 из 5