#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:
Комментарии:
1. хм, вот как это должно работать, не уверен, почему netbeans этого не создает
2. Я тоже получил этот результат, также в Intellij.