这是代码:
package sample;
import javafx.beans.Observable;
import javafx.beans.property.IntegerProperty;
import javafx.beans.property.SimpleIntegerProperty;
import javafx.collections.FXCollections;
import javafx.collections.ListChangeListener;
import javafx.collections.ObservableList;
import javafx.util.Callback;
import java.util.List;
/**
* Created by IDEA on 28/07/15.
*/
public class ListUpdateTest {
public static void main(String[] args) {
Callback<IntegerProperty, Observable[]> extractor = (IntegerProperty p) -> {
System.out.println("The extractor is called.");
Observable[] res = new Observable[]{p};
System.out.println("Result from extractor: " + res);
return res;
};
ObservableList<IntegerProperty> list = FXCollections.observableArrayList(extractor);
System.out.printf("Before adding");
IntegerProperty p1 = new SimpleIntegerProperty(10);
IntegerProperty p2 = new SimpleIntegerProperty(20);
list.addAll(p1, …Run Code Online (Sandbox Code Playgroud) 我目前正在使用 Java 和 JavaFX 开发一款游戏。我正在使用 JavaFX ComboBox。
下面的例子应该可以解释我的问题。
假设我有一个“动物”类,其属性为“名称”、“年龄”和“颜色”。
第一个文件:
public class Animal {
private String name;
private int age;
private String color;
public Animal(String name, int age, String color) {
this.name = name;
this.age = age;
this.color = color;
}
}
Run Code Online (Sandbox Code Playgroud)
现在我想为我创建的每只动物创建一个组合框。
第二个文件:
ComboBox<Animal> comboBoxAnimal = new ComboBox();
ObservableList<Animal> comboBoxItems = FXCollections.observableArrayList();
Animal dog = new Animal("Liam", 2, "Brown");
Animal cat = new Animal("Emily", 5, "Gray");
Animal bird = new Animal("Kian", 3, "Green");
comboBoxItems.addAll(dog, cat, bird);
comboBoxAnimal.setItems(comboBoxItems);
Run Code Online (Sandbox Code Playgroud)
目前我只得到“Animal@xxxxxxxx”,这是可以理解的,因为我有一个动物组合框,但只想显示名称(字符串)。
只是简单地创建一个 …
我试图仅显示 orderwindow 中的项目名称,这就是我所拥有的
ListView<MenuItem> orderList = new ListView<>();
public OrderWindow() {
myStage = new Stage();
GridPane gridpane = new GridPane();
VBox vbox = new VBox(gridpane);
Scene scene = new Scene(vbox);
Label orderLabel = new Label("Items");
gridpane.add(orderLabel, 0, 0);
gridpane.add(orderList, 1, 0);
myStage.setTitle("Order Window");
gridpane.add(addSelect, 1, 4);
gridpane.add(placeOrder, 2, 4);
gridpane.add(cancelOrder, 3, 4);
addSelect.setOnAction(this);
placeOrder.setOnAction(this);
cancelOrder.setOnAction(this);
myStage.setScene(scene);
}
public void show(Cafe c) {
cafe = c;
//ObservableList<MenuItem> list = FXCollections.observableArrayList(c.getAllMenuItems());
orderList.getItems().setAll(c.getAllMenuItems());
orderList.getSelectionModel().select(0);
myStage.showAndWait();
}'`
Run Code Online (Sandbox Code Playgroud)
当我执行时,这就是我得到的
这是我的咖啡馆课:
import java.io.File;
import java.io.FileNotFoundException;
import …Run Code Online (Sandbox Code Playgroud)