gpt4 book ai didi

java - 从另一个 JTable 的选择中创建新的 JTable?

转载 作者:行者123 更新时间:2023-12-02 12:10:46 30 4
gpt4 key购买 nike

我编写了下面的代码,以便在当前 JTable 上进行选择时创建一个新的 JTable:

makeTbale.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e){

int[] selectedCols = table.getSelectedColumns();
Object[] newCols = new Object[selectedCols.length];
TableModel model = table.getModel();
int selectedRows = model.getRowCount();
Object[][] output = new Object[selectedCols][selectedRows];
for(int nCol = 0; nCol < selectedCols.length; nCol++) {
for{int nRow = 0; nRow<selectedRows;nRow++) {
output[nCol][nRow] = model.getValueAt(nRow, selectedCols[nCol]).toString();
newCols[nCol] = table.getModel().getColumnName(selectedCols[nCol]);
}
}
table.setModel(new DefaultTableModel(output,newCols));
});

现在这是我选择的数据:

Col2     |Col3     |Col5     |Col6     |Col7     |Col10
1/1/2017 |3.45 |1.2 |hello |b1_133 |test
1/2/2017 |3.11 |4.9 |x |b3_122 |you
1/3/2013 |2.98 |5.5 |ask |c1_001 |foo
1/4/2012 |1.90 |2.1 |y |v7_670 |hey
1/6/2000 |9.99 |7.77 |w |c3_890 |fee
1/7/2012 |10.45 |8.75 |test |u0_998 |faa
.
.
.

减少到 100 行。

这是我运行代码后得到的表格:

Col2     |Col3     |Col5     |Col6     |Col7     |Col10
1/1/2017 |1/2/2017 |1/3/2013 |1/4/2012 |1/6/2000 |1/7/2012
3.45 |3.11 |2.98 |1.90 |9.99 |10.45
1.2 |4.9 |5.5 |2.1 |7.77 |8.75
hello |x |ask |y |w |test
.
.
.

您明白了,所选列现在是行,行是列,并且仅查看 6 行(等于列数?)。

我的代码哪里出错了?

最佳答案

表格行/列已交换,因此您混淆了数组索引。

改变

 output[nCol][nRow] = model.getValueAt(nRow, selectedCols[nCol]).toString();

 output[nRow][nCol] = model.getValueAt(nRow, selectedCols[nCol]).toString();

并切换这一行的索引:

Object[][] output = new Object[selectedCols][selectedRows];

关于java - 从另一个 JTable 的选择中创建新的 JTable?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46567623/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com