приложение javafx создается, но не запускается, ошибок не отображается

#java #javafx

#java #javafx

Вопрос:

Я создал Java-приложение для печати имен в приложении. Я считаю, что все в порядке, но я использовал javafx, чтобы превратить его в приложение, и когда я запускаю его, оно создается, и это все, и я не уверен, почему.

У меня есть два класса: основной класс для запуска и класс person, который подключается к основному классу для создания people.

Вот основной код класса:

 //Carmine, Rohit
package project5;

import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.TextArea;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

/**
 * @author finst
 */
public class Project5a extends Application {

    TextArea textAreaResults;
    Button buttonShowNames;
    StringBuilder output;

    @Override
    public void start(Stage primaryStage) {
        textAreaResults = new TextArea();
        textAreaResults.setPrefSize(380, 375);
        textAreaResults.setEditable(false);

        buttonShowNames = new Button("Show Names");
        buttonShowNames.setStyle("-fx-text-fill: white; -fx-background-color: midnightblue; -fx-font-weight: bold;");
        buttonShowNames.setOnAction(e -> NamesList(e));

        VBox vBoxResults = new VBox(10, textAreaResults, buttonShowNames);
        vBoxResults.setPadding(new Insets(10));
        vBoxResults.setAlignment(Pos.CENTER);

        Scene scene = new Scene(vBoxResults, 400, 450);

        primaryStage.setTitle("Names");
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    private void NamesList(ActionEvent event) {
        output = new StringBuilder();

        List<Person> list = new ArrayList();

        list.add(new Person("John", 'H', "Johnson"));
        list.add(new Person("Kaitlyn", 'A', "Indigo"));
        list.add(new Person("Wesley", 'T', "Collins"));
        list.add(new Person("Emma", 'Z', "Watson"));


        output.append("Names:n");
        displayList(list);

        textAreaResults.setText(output.toString());
    }

    public void displayList(List list) {
        Iterator personIterator = list.iterator();

        while (personIterator.hasNext()) {
            output.append(personIterator.next());
        }
    }

    public static void main(String[] args) {
        launch(args);
    }
}
  

И вот исходный код для класса person:

 package project5;

/**
 * @author finst
 */
public class Person {

    String firstName;
    String lastName;
    char middleInitial;


    public Person() {
        this("", '0', "");
    }

    public Person(String firstName, char middleInitial, String lastName) {
        this.firstName = firstName;
        this.middleInitial = middleInitial;
        this.lastName = lastName;
    }

    public String getFirstName() {
        return firstName;
    }

    public char getMiddleInitial() {
        return middleInitial;
    }

    public String getLastName() {
        return lastName;
    }

    @Override
    public String toString() {
        StringBuilder output = new StringBuilder();

        output.append("First Name: ");
        output.append(getFirstName());
        output.append("    Middle Initial: ");
        output.append(getMiddleInitial());
        output.append("    Last Name: ");
        output.append(getLastName());
        output.append("n");

        return output.toString();
    }
}
  

Комментарии:

1. Вы видите, что процесс завершается?

2. Я протестировал ваш код, и приложение работает отлично. Какую IDE вы используете?

3. Вы имеете в виду, что оно не будет запускаться при нажатии на jar? Если это так, то рассмотрите возможность использования плагинов Maven для создания интерактивного приложения javafx.

4. @LppEdd это просто говорит об успешной сборке, и больше ничего

5. @SamuelP. это странно, я использую netbeans

Ответ №1:

Протестировал ваш код в Intellij Idea 2018.2.3 и получил следующий результат: введите описание изображения здесь

Комментарии:

1. хм, вот как это должно работать, не уверен, почему netbeans этого не создает

2. Я тоже получил этот результат, также в Intellij.