相关疑难解决方法(0)

JavaFX ObservableList的回调和提取器

这是代码:

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-8

8
推荐指数
1
解决办法
3941
查看次数

JavaFX Combobox 显示元素的属性

我目前正在使用 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”,这是可以理解的,因为我有一个动物组合框,但只想显示名称(字符串)。

只是简单地创建一个 …

java combobox javafx

1
推荐指数
1
解决办法
448
查看次数

为什么列表显示的是包而不是实际值?

我试图仅显示 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)

oop javafx arraylist

0
推荐指数
1
解决办法
53
查看次数

标签 统计

java ×2

javafx ×2

arraylist ×1

combobox ×1

javafx-8 ×1

oop ×1