Tag: tableview

在没有中间类的情况下将数据插入JavaFX TableView

我是新手Java程序员。 我想将ResultSet数据插入JavaFX TableView,但我不会使用中间类。 我可以将ResultSet行作为对象插入TableView行吗? 这是我使用中间类Unit的代码 public static ObservableList getUnits() { final ObservableList data = FXCollections.observableArrayList(); if (openConnection()) { try { rs = st.executeQuery(“SELECT * FROM units”); while (rs.next()) { data.add(new Unit(rs.getString(“id_unit”), rs.getString(“short_name”), rs.getString(“name”))); } } catch (Exception ex) { Logger.getLogger(SQLConnect.class.getName()).log(Level.SEVERE, null, ex); } } closeConnection(); return data; } 调节器 idUnit.setCellValueFactory(new PropertyValueFactory(“idUnit”)); shortNameUnit.setCellValueFactory(new PropertyValueFactory(“shortName”)); nameUnit.setCellValueFactory(new PropertyValueFactory(“name”)); […]

JavaFX TableView中的属性绑定不起作用

我按照许多链接,在表格视图中找到了一个显示复选框的解决方案。 但是我无法在表视图中更改checkbox的值。 链接我遵循: 如何将CheckBox添加到JavaFX中的TableView 型号类: public class TUser { private SimpleStringProperty name; private SimpleStringProperty address; private SimpleBooleanProperty active; public TUser(String name, String address, boolean active) { this.name = new SimpleStringProperty(name); this.address = new SimpleStringProperty(address); this.active = new SimpleBooleanProperty(active); } public String getName() { return name.get(); } public void setName(String name) { this.name = new SimpleStringProperty(name); […]

JavaFX:使用ObservableMap填充TableView,该ObservableMap具有其值的自定义类

我有以下ObservableMap,我想在TableView显示: private ObservableMap myShapes = FXCollections.observableHashMap(); 其中Shape的定义如下: public class Shape { private StringProperty areaFormula = new SimpleStringProperty(); private IntegerProperty numSides = new SimpleIntegerProperty(); public Shape(String areaFormula, int numSides) { this.areaFormula.set(areaFormula); this.numSides.set(numSides); } public String getAreaFormula() { return areaFormula.get(); } public void setAreaFormula(String areaFormula) { this.areaFormula.set(areaFormula); } public StringProperty areaFormulaProperty() { return this.areaFormula; } public int […]

延迟加载FXProperties

这是此后的后续行动。 我正在实现一个表,它将数据异步加载到表格单元格中。 问题是,表格单元有时不能正确更新。 有时它会以某种方式“挂起”并永远显示“正在加载……” 。 只有当我在表格中滚动一点时,实际值才会更新。 要重现 ,请在表格中快速向下滚动应用程序。 某些单元格不会显示“延迟加载”值,而是占位符字符串。 延迟加载属性如下所示: public abstract class LazyLoadingStringProperty extends SimpleStringProperty { public static final String DEFAULT_LOADING_STRING = “Loading..”; private static final ExecutorService exe = Executors.newCachedThreadPool(); private String loadingString = DEFAULT_LOADING_STRING; private boolean loaded = false; public LazyLoadingStringProperty() { } public boolean isLoaded() { return loaded; } public void setLoaded(final […]

使用来自database.Dailed设置行的数据填充TableView

当我从数据库中检索数据时,我碰到了一堵墙。我设法将列名添加到我的表中,这是正常的,并且可以正常工作。 当我尝试添加行时发现我发现没有数据添加到我的tableview中,我试图从表示单行的字符串数组中添加行。我不知道用户会询问多少列等用于查询以及如何大表是我不能创建行对象和代表每列的所有属性。 问题是我如何使用String []每行成功从数据库检索到的行填充我的tableview。 private ObservableList dataRows=FXCollections.observableArrayList(); 检索行..(Works调试打印所有数据正确) while (this.resultSet.next()) { for (int i = 1; i { System.out.println(“Row———“); for(String s:r){ System.out.println(“Debug row value- “+s); } }); 添加到表中 private void populateTable() { dpcontroller.tableView.getColumns().addAll(columns); //columns work dpcontroller.tableView.setItems(dataRows); //no data entered } 编辑后的编辑工作代码 对于那些遇到同样问题的人的工作代码。只需要工厂就是ValueFactory.Here是我的两种方法 private void populateTable() { for (int rowNumber = 0; rowNumber < dataRows.size(); rowNumber++) […]

将图像放入JavaFX 2表中

我正在尝试做一些非常简单的事情。 我想在表格中的特定行的列中放置一个图标。 如果是文件夹,则显示文件夹图标。 如果是文件,则显示文件图标。 有谁知道如何在JavaFX 2中这样做? 我已经尝试了很多东西,这看起来应该是非常简单的,或者至少是某个地方的例子。

JavaFX表格单元格编辑

我正在尝试用Java创建一个程序来管理我的bookie帐户。 我是java的新手,所以我想我会选择一些简单的东西来看看它是如何工作的。 我决定使用tableview并使单个单元格可编辑。 我一直在关注这个教程http://java-buddy.blogspot.co.uk/2012/04/javafx-2-editable-tableview.html 。 它详细介绍了如何使用java代码进行操作,并将其复制到新类中可以完美地运行。 我决定尝试调整它以使用FXML,因为我喜欢Sceneviewer。 我的问题是,数据被加载到表中,但是当我单击/双击一个单元格时,没有任何反应。 这是我的代码。 testController.java import javafx.collections.FXCollections; import javafx.collections.ObservableList; import javafx.event.EventHandler; import javafx.fxml.FXML; import javafx.fxml.Initializable; import javafx.scene.control.*; import javafx.scene.control.cell.PropertyValueFactory; import javafx.scene.input.KeyCode; import javafx.scene.input.KeyEvent; import javafx.util.Callback; import java.net.URL; import java.util.ResourceBundle; public class testController implements Initializable { @FXML private TableColumn usernameCol; @FXML private TableColumn balanceCol; @FXML private TableView accountTable; @FXML private TableColumn […]

如何用数据库数据填充TableView

我一直在尝试使用从数据库查询的数据加载TableView,但似乎无法使其工作。 这是我尝试用数据库查询项填充数据库的第一次尝试,以防我的代码看起来很糟糕而且远非好。 FXML是通过JavaFx SceneBuilder完成的。 这是数据库查询类: import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import javafx.collections.FXCollections; import javafx.collections.ObservableList; import javafx.fxml.FXML; import javafx.scene.control.TableView; public class StudentInfo { static String JDBC_DRIVER = “org.h2.Driver”; static String DB_URL = “jdbc:h2:file:C:/WAKILI/WAKILIdb”; // Database credentials static final String USER = “sa”; static final String PASS = “”; public static Connection […]

SimpleStringProperty和SimpleIntegerProperty TableView JavaFX

所以我正在尝试学习如何使用JavaFx Tableview,并在本教程中简化: Oracle tableview教程 在本教程中,他们表明,为了填充tableView,你必须用字符串填充它,但不只是你需要格式化任何字符串String到SimpleStringProperty 我尝试没有格式,结果是没有任何信息显示! 另外我发现如果你想在表中添加一个Integer ,你必须将它声明为SimpleIntegerProperty 现在我对JavaFx还不熟悉,但这是否意味着当我创建一个对象时,我必须格式化所有的整数和字符串以便能够填充我的TableView? 它似乎相当愚蠢,但也许有更高的目的? 还是有办法避免它?

如何获得JavaFX TableView中的第一列值,就像JTable一样?

我希望得到第一列值,因为我们可以使用swing在Jtable中实现。 下面是我的jtable代码和图片。 String Table_Clicked = jTable1.getModel().getValueAt(row, 0).toString(); 正如你在图像中看到的那样,当我点击Name列值8时,它给出了第一列值,如8 。 但我选择名称列 那么如何使用TableView Componenet在JavaFX中实现这一点。 我从TableView中获取所选的值,如下图所示,其中包含代码。 tableview.getSelectionModel().selectedItemProperty().addListener(new ChangeListener() { @Override public void changed(ObservableValue observableValue, Object oldValue, Object newValue) { if(tableview.getSelectionModel().getSelectedItem() != null) { TableViewSelectionModel selectionModel = tableview.getSelectionModel(); ObservableList selectedCells = selectionModel.getSelectedCells(); TablePosition tablePosition = (TablePosition) selectedCells.get(0); Object val = tablePosition.getTableColumn().getCellData(newValue); System.out.println(“Selected value IS :” + val); } } […]