gpt4 book ai didi

java - 如何调用 for 循环进入表数据?

转载 作者:行者123 更新时间:2023-11-30 07:27:28 24 4
gpt4 key购买 nike

我有一个代码,当我输入值时,我会获取数据itr.get(0),str.get(0)等...但是我想创建一个for循环它但我不能使用它,因为它位于 model.addRow

而且每个数组都有不同的大小数组列表对象(itr,str,dub)

如何通过 for 循环向其输入数据,这样我就不必手动调用它。

    public Data1()
{
super();
setDefaultCloseOperation(EXIT_ON_CLOSE);

JTable table = new JTable(new DefaultTableModel(new Object[]{"Integers", "RealNumbers","OtherTokens"},5));
DefaultTableModel model = (DefaultTableModel) table.getModel();

model.addRow(new Object[]{itr.get(0),dub.get(0) ,str.get(0) });
model.addRow(new Object[]{itr.get(1),dub.get(1) ,str.get(1) });
model.addRow(new Object[]{itr.get(2),dub.get(2) ,str.get(2) });
model.addRow(new Object[]{itr.get(3), "" ,str.get(3) });
model.addRow(new Object[]{itr.get(4), "" ,str.get(4) });
model.addRow(new Object[]{"", "" ,str.get(5) });

table.setPreferredScrollableViewportSize(new Dimension(500,80));
JScrollPane pane = new JScrollPane(table);
getContentPane().add(pane,BorderLayout.CENTER);

}

最佳答案

最初的问题询问有关向表中添加循环的问题。然而,真正的问题不是循环本身,而是存在不同数量、不同类型的元素这一事实。该答案获取聊天中提供的一些数据,并将其放入数组中。它可以从文件中读取。它通过在数组中放置一个空字符串来解决当没有数据时在给定行中放置什么的问题。

该方法是使用 TableModel 而不是尝试一次性添加。但是,如果需要,可以构造必要的数组并将其传递给构造函数。然而,从长远来看,TableModel 是一种更好的方法,恕我直言。

public static void main(String[] args)
{
// these three arrays represent the test data otherwise read
// from a file
int[] ia = { 1493, -832722, 0, 1, 162 };
double[] da = { 0.4, -6.382, 9.0E-21 };
String[] sa = { "The", "fox", "jumped", "over", "the", "dog!"};


Object[] columnNames = { "Int", "Real", "Tokens" };


DefaultTableModel dm = new DefaultTableModel(columnNames, 0);
JTable tbl = new JTable(dm);

// while reading for a file, would know the max length in
// a different way
int loopCtr = Math.max(ia.length, da.length);
loopCtr = Math.max(loopCtr, sa.length);

// loop for the longest entry; for each entry decide if there
// is a value
for (int i = 0; i < loopCtr; ++i) {
Integer iv = (i < ia.length ? ia[i] : null);
Double dv = (i < da.length ? da[i] : null);
String sv = (i < sa.length ? sa[i] : "");

//add the row; if no value for a given entry, use an empty
// String
dm.addRow(new Object[]{(iv != null ? iv : ""),
(dv != null ? dv : ""),
sv});
}

//just output for the moment
int cols = dm.getColumnCount();
int rows = dm.getRowCount();
StringBuilder sb = new StringBuilder();
for (int row = 0; row < rows; ++row) {
sb.setLength(0);
for (int col = 0; col < cols; ++col) {
sb.append(dm.getValueAt(row, col));
sb.append("\t");
}

System.out.println(sb.toString());
}
}

输出显示了一个根据需要包含空白的表格。

1493        0.4       The       
-832722 -6.382 fox
0 9.0E-21 jumped
1 over
162 the
dog!

关于java - 如何调用 for 循环进入表数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36629838/

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