我试图从Swing切换到JavaFX,但TableView出现了问题。
我在内存中有一个通用的基于列的数据结构,比如List
其中
数据列
是一个表列,它是基元数组的包装器。对于JTable
,我已经实现了一个自定义TableModel来处理这个数据结构。
我在TableView中看到的一切都是基于行而不是列的列表。
如何使用TableView可视化这些数据,而不将其复制到基于行的数据结构中?谢谢你。
下面是一个非常简单的例子,它使用基于列的数据;也许这会给你足够的时间继续。本例中的基本思想是使表类型为整数
,因此每个列的值由一个工厂计算,该工厂只需将索引映射到数据列
结构中,并检索索引的相应值。
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import javafx.application.Application;
import javafx.beans.property.ReadOnlyIntegerWrapper;
import javafx.scene.Scene;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.scene.layout.BorderPane;
import javafx.stage.Stage;
public class ColumnBasedTable extends Application {
@Override
public void start(Stage primaryStage) {
final int numRows = 20 ;
final int numCols = 12 ;
List<DataColumn<Integer>> data = new ArrayList<>();
for (int colIndex = 1; colIndex <= numCols; colIndex++) {
Integer[] colData = new Integer[numRows];
for (int rowIndex = 0; rowIndex < numRows; rowIndex++) {
colData[rowIndex] = (rowIndex+1)*colIndex ;
}
DataColumn<Integer> dataColumn = new DataColumn<>(colData);
data.add(dataColumn);
}
TableView<Integer> table = new TableView<>();
for (int i=0; i<numRows; i++) {
table.getItems().add(i);
}
for (int i=0; i<numCols; i++) {
TableColumn<Integer, Number> col = new TableColumn<>(Integer.toString(i+1));
final int colIndex = i ;
col.setCellValueFactory(cellData -> {
int rowIndex = cellData.getValue();
DataColumn<Integer> dataColumn = data.get(colIndex);
return new ReadOnlyIntegerWrapper(dataColumn.getData(rowIndex));
});
table.getColumns().add(col);
}
primaryStage.setScene(new Scene(new BorderPane(table), 600, 400));
primaryStage.show();
}
public static class DataColumn<T> {
private final T[] data ;
public DataColumn(T[] data) {
this.data = Arrays.copyOf(data, data.length);
}
public T getData(int index) {
return data[index];
}
public int getSize() {
return data.length ;
}
}
public static void main(String[] args) {
launch(args);
}
}
嗨,我正在创建一个C#程序,用户可以登录和预订目的地的公共汽车座位,我有这个程序,用户可以插入/更新/删除数据,但我希望数据只显示当前登录的数据,这是我的代码下面。 此函数位于主仪表板类中,它在其中向dataviewgrid显示SAITS表 这是我的数据库表,一旦用户登录,我想做的就是按userID显示每个seatID,seatID是这个表的主键,userID是链接到userdata表的外键。
我如何才能显示一个包含姓名、性别和出生日期的数据表,而只显示今天出生的人? 使用来自jdbc的java连接。 也就是说,我有一张分别于2015年6月15日、2015年5月13日和2015年6月17日出生的3个孩子的表格。 逻辑执行后,只有一个DOB在2015年6月17日(今天的日期)的孩子会出现在桌面上。
问题内容: 输出显示如下: 但我想展示 解 问题答案: 尝试在像这样的函数之后设置字符编码:
我正在创建具有下拉列表视图的页面。现在我在列表视图中显示完整数据。如果我想要任何特定的日期数据,那么我需要做什么。请帮我解决这个问题。下面是我正在获取的JSON。 下面是代码
问题内容: 在我们的Java应用程序屏幕之一上,我们希望在类似Excel的电子表格组件上显示从Excel文件加载的数据。 该组件必须能够评估电子表格中的公式,并且还必须像加载的Excel文件一样保留常规单元格格式。我们必须能够以编程方式更改电子表格中的单元格值。 自由是一件好事。 您会建议使用任何Java库吗? 问题答案: Apache POI。它是免费的, 但是您不能在此库的帮助下评估形式。 B
本文向大家介绍Java基于JDBC连接数据库及显示数据操作示例,包括了Java基于JDBC连接数据库及显示数据操作示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Java基于JDBC连接数据库及显示数据操作。分享给大家供大家参考,具体如下: 1. 导入jdbc包 java要连接MySQL数据库需要用到JDBC工具(mysql-connector-java-5.1.39-bin.jar)