combobox - Javafx:数据在组合框中不可见

标签 combobox javafx

我想看到一个包含一些元素的组合框。我尝试这样做:

columnName.getItems().addAll("Item1", "Item2", "Item3");

<ComboBox fx:id="columnName" prefHeight="27" prefWidth="100" layoutX="500" layoutY="523" />

当我启动项目时,我在组合框中看不到任何元素。 我也尝试过使用 ObservableList,但它似乎没有帮助。我该怎么办?

抱歉我的英语不好。

类 Controller :

package tnk.bp.controller;

/*
 * To change this license header, choose License Headers in         Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

import java.net.URL;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.ResourceBundle;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.ComboBox;
import javafx.scene.control.DatePicker;
import javafx.scene.control.ScrollPane;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.scene.control.cell.PropertyValueFactory;
import tnk.bp.core.Employee;
import tnk.bp.core.Summary;

/**
 *
 * @author Дмитрий
 */
public class Controller implements Initializable {

@FXML
private DatePicker dp;
@FXML
private ScrollPane scrollPaneTable;
private final ObservableList<Employee> lEmployeesCollection =     FXCollections.observableArrayList();
private final ObservableList<Summary> summaryCollection = FXCollections.observableArrayList();
private  ObservableList<String> comboBoxCollection;
@FXML
private ComboBox<String> columnName;
@FXML
private TableView<Employee> employees;
@FXML
private TableColumn<Employee, String> nameSecondnameColumn;
@FXML
private TableColumn<Employee, String> surnameColumn;
@FXML
private TableView<Summary> summaryTable;
@FXML
private TableColumn<Summary, String> fieldColumn;
@FXML
private TableColumn<Summary, String> cdngColumn;
@FXML
private TableColumn<Summary, String> clusterColumn;
@FXML
private TableColumn<Summary, String> wellColumn, uecnColumn, vQColumn, timeRequestColumn, postExecutantColumn,
        contentRequestColumn, startTimeColumn, endTimeColumn, nameExecutantColumn,
        mechanismColumn, executionColumn, numberColumn;
private ArrayList<Summary> listSummary;
private ArrayList<Employee> listEmployee;


@Override
public void initialize(URL url, ResourceBundle rb) {//General function
    initComponents();
    fillListEmployees();//заполняем данные в ArrayList
    fillTableViewEmployees();// Заносим в таблицу
    dp.setValue(LocalDate.now());
    fillListSummary();
    fillTableViewSummary();
    initComboBox();
}

@FXML
void getCurrentDate() {
    System.out.println(dp.getValue().toString());
}

private void initComponents() {
    dp = new DatePicker();
    scrollPaneTable = new ScrollPane();
    listEmployee = new ArrayList<Employee>();
    listSummary = new ArrayList<Summary>();
}

private void fillListEmployees() {
    listEmployee.add(new Employee("Федяев", "А.В."));
    listEmployee.add(new Employee("Герман", "Д.В."));
    listEmployee.add(new Employee("Шиловских", "А.А."));
    listEmployee.add(new Employee("Кипоров", "С.Л."));
    listEmployee.add(new Employee("Кащеев", "Ю.В."));
    listEmployee.add(new Employee("Буракаев", "З.З."));
    listEmployee.add(new Employee("Репетов", "А.Н."));
}

private void fillTableViewEmployees() {
    for (Employee moved : listEmployee) {
        lEmployeesCollection.add(moved);
    }
    surnameColumn.setCellValueFactory(new PropertyValueFactory<Employee, String>("surname"));
    nameSecondnameColumn.setCellValueFactory(new PropertyValueFactory<Employee, String>("nameSecondname"));
    employees.setItems(lEmployeesCollection);
}

private void fillListSummary() {
    listSummary.add(new Summary(1,"Прилазломное", "10", "База", "", "", "", "8:00", "Диспетчер", "ПРР", "8:00", "10:00", "Буркаев З.З", "", "Выполнено"));
    listSummary.add(new Summary(2,"Прилазломное", "10", "69", "5888", "", "", "10:00", "Инженер по применению", "Подключить кабель в ТМПН\n(работала на Х.Х.). Пробный запуск ", "10:00", "10:35", "Буркаев З.З", "", "Выполнено"));
    listSummary.add(new Summary(3,"Прилазломное", "10", "32", "5694", "", "", "10:00", "Инженер по применению", "Подключить кабель в ТМПН\n(работала на Х.Х.). Пробный запуск ", "10:35", "11:00", "Буркаев З.З", "553", "Запуск с оператором\nв 10ч-57мин. \nРпр=87атм, Т=100?С,\nВибр=0м/с?, \nF=52 Гц, I=17,5А,\nЗагр=55%, ЗСП=45%,\ncos=0,65, Uс=395В,\nUвых=329В, Uотп=2272В,\n АПВ1=120сек."));
    listSummary.add(new Summary(4,"Прилазломное", "10", "5", "5282", "", "", "8:00", "Инженер по применению"  , "ПРГ поддержания Р 32 Атм\nF47,5-49Гц", "8:00", "10:00", "Федяев А.В", "668", "Выполнено F-47,5 \nI-16,4, Загр-65/55,\nРпр=52атм, Т=107?С,\n Вибр=1,9м/с?"));
    listSummary.add(new Summary(5,"Прилазломное", "10", "305", "5569", "", "", "8:00", "Инженер по применению", "осмотр НЭО", "10:20", "10:50", "Федяев А.В", "668", "СУ 250А Э-04  ТМСН-3 Электон\nнет бронерукава ТМПН 102"));
    listSummary.add(new Summary(6,"Прилазломное", "10", "104", "961", "", "", "8:00", "Инженер по применению" , "Отстроить защиты и запустить ", "11:00", "11:25", "Федяев А.В", "668", "СУ 250А Э-04  ТМСН-3 Электон\nнет бронерукава ТМПН 102"));
    listSummary.add(new Summary(7,"Прилазломное", "10", "47", "776", "", "", "8:00", "Инженер по применению"  , "Отстроить защиты и запустить ", "11:45", "12:10", "Федяев А.В", "668", "Выполнено на кусту нет\nоператора ДНГ выполнен\nпробный пуск и \nостановлена"));
    listSummary.add(new Summary(8,"Прилазломное", "10", "29", "5630", "", "", "10:00", "Инженер по применению", "Подключить кабель в ТМПН\n(работала на Х.Х.). Пробный запуск ", "11:00", "11:45", "Буркаев З.З", "553", "Выполнено"));
    listSummary.add(new Summary(9,"Прилазломное", "10", "30", "5764", "", "", "10:00", "Инженер по применению", "Подключить кабель в ТМПН\n(работала на Х.Х.). Пробный запуск ", "11:45", "12:50", "Буркаев З.З", "553", "Выполнено"));
    listSummary.add(new Summary(10,"Прилазломное", "10", "27", "5757", "", "", "14:00", "Инженер по применению", "Останов", "14:00", "14:40", "Буркаев З.З", "553", "Останов по ЗСП. \nСамозапуск по АПВ. \nВ работе. Информацию снял."));
    listSummary.add(new Summary(11,"Прилазломное", "10", "302", "5915", "", "", "14:40", "Инженер по применению", "Останов. Нет напряжения\nна СУ.", "14:40", "16:40", "Буркаев З.З", "553", "Выбит автомат в СУ.\n Запуск в 15ч-28мин. \nРпр=162атм, Т=101?С, \nВибр=0,3g,\n F=50Гц, I=20,4А, Загр=42%, \nЗСП=20%, cos=0,62, Uс=404В,\nUотп=1558В, АПВ1=60сек,\n Rиз=9999кОм"));
    listSummary.add(new Summary(12,"Прилазломное", "10", "305", "8503", "", "", "8:00", "Инженер по применению", "ВНР", "10:40", "16:40", "Тимофеев Ю.Ю", "672", "Выполнено"));
    listSummary.add(new Summary(13,"Прилазломное", "10", "123", "1109", "", "", "8:00", "Инженер по применению", "ВНР", "11:20", "14:30", "Тимофеев Ю.Ю", "672", "Выполнено"));
    listSummary.add(new Summary(14,"Прилазломное", "10", "125", "1108", "", "", "8:00", "Инженер по применению", "ВНР", "14:20", "14:40", "Тимофеев Ю.Ю", "672", "Выполнено"));
    listSummary.add(new Summary(15,"Прилазломное", "10", "77", "5873", "", "", "8:00", "Инженер по применению", "ВНР", "9:05", "15:35", "Тимофеев Ю.Ю", "672", "Выполнено"));
    listSummary.add(new Summary(16,"Прилазломное", "10", "77", "8194", "", "", "8:00", "Инженер по применению", "ПР", "13:13", "13:19", "Тимофеев Ю.Ю", "672", "Выполнено"));
    listSummary.add(new Summary(17,"Прилазломное", "10", "302", "5914", "", "", "8:00", "Инженер по применению", "ПР", "13:20", "13:30", "Тимофеев Ю.Ю", "672", "Выполнено"));
    listSummary.add(new Summary(18,"Прилазломное", "10", "44", "853", "", "", "8:00", "Инженер по применению", "ПР", "14:40", "15:00", "Тимофеев Ю.Ю", "672", "Выполнено"));
    listSummary.add(new Summary(19,"Прилазломное", "10", "57", "5637", "", "", "8:00", "Инженер по применению", "ВНР", "10:40", "18:10", "Ражев А.В", "913", "Выполнено"));
    listSummary.add(new Summary(20,"Прилазломное", "10", "116", "8381", "", "", "8:00", "Инженер по применению", "КП", "15:48", "16:13", "Ражев А.В", "913", "Выполнено"));
}
private void fillTableViewSummary() {
    for (Summary moved : listSummary) {
        summaryCollection.add(moved);

    }
    numberColumn.setCellValueFactory(new PropertyValueFactory<Summary, String>("number"));
     fieldColumn.setCellValueFactory(new PropertyValueFactory<Summary, String>("field"));
    cdngColumn.setCellValueFactory(new PropertyValueFactory<Summary, String>("cdng"));
    clusterColumn.setCellValueFactory(new PropertyValueFactory<Summary, String>("cluster"));
    wellColumn.setCellValueFactory(new PropertyValueFactory<Summary, String>("well"));
    uecnColumn.setCellValueFactory(new PropertyValueFactory<Summary, String>("uecn"));
    vQColumn.setCellValueFactory(new PropertyValueFactory<Summary, String>("vQ"));
    timeRequestColumn.setCellValueFactory(new PropertyValueFactory<Summary, String>("timeRequest"));
    postExecutantColumn.setCellValueFactory(new PropertyValueFactory<Summary, String>("postExecutant"));
    contentRequestColumn.setCellValueFactory(new PropertyValueFactory<Summary, String>("contentRequest"));
    startTimeColumn.setCellValueFactory(new PropertyValueFactory<Summary, String>("startTime"));
    endTimeColumn.setCellValueFactory(new PropertyValueFactory<Summary, String>("endTime"));
    nameExecutantColumn.setCellValueFactory(new PropertyValueFactory<Summary, String>("nameExecutant"));
    mechanismColumn.setCellValueFactory(new PropertyValueFactory<Summary, String>("mechanism"));
    executionColumn.setCellValueFactory(new PropertyValueFactory<Summary, String>("execution"));



    summaryTable.setItems(summaryCollection);
}
private void initComboBox() {

    String[] listComboBox = {"Месторождение", "ЦДНГ", "Куст", "Скважина", "УЭЦН","Q м3/т", "ФИО Должность", "Окончание работ", "Исполнитель", "Техника"};
    comboBoxCollection = FXCollections.observableArrayList(listComboBox);
    columnName = new ComboBox<>();
    //comboBoxColumnName.getItems().addAll(comboBoxCollection);
    columnName.getItems().addAll("Item1", "Item2", "Item3");

}

}

最佳答案

问题是你正在打电话

columnName = new ComboBox<>();

删除该调用:它会创建一个新的组合框,您将填充新的组合框,而不是 GUI 中显示的组合框。

关于combobox - Javafx:数据在组合框中不可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23159439/

相关文章:

c - 如何从文本文件填充组合框 - GTK - C

c# - 如何在 WinForms 中将字典绑定(bind)到组合框?

c++ - 如何反转qcombobox的方向?

JavaFX - 使 TableView 高度适应行数

python-2.7 - 带有 LIKE 搜索的 Python Tkinter 自动完成组合框?

php - 2个保管箱ajax

java - 去除方法的工作原理bindAutoCompletion()类TextFields库ControlsFX

css - JavaFX:整个框架的菜单栏宽度

JavaFX 在线程任务完成后显示对话

css - 制作更小的 JavaFX ComboBox