使用数组填充 JTable
Populating a JTable with an array
我正在尝试制作一个table,其中包含多个垂直填充信息的对应数组。如果我的每个数组只有 3 条数据,下面的代码将完美运行:
import java.awt.BorderLayout;
import java.awt.Container;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
public class TableSample {
static String[] itemArray = new String[] {"item1","item2","item3"};
static String[] conditionArray = new String[] {"condition1","condition2","condition3"};
static String[] locationArray = new String[] {"location1","location2","location3"};
public static void main(String args[]) {
JFrame f = new JFrame("JTable Sample");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Container content = f.getContentPane();
Object rows[][] = { { itemArray[0], conditionArray[0], locationArray[0] },
{ itemArray[1], conditionArray[1], locationArray[1] },
{ itemArray[2], conditionArray[2], locationArray[2] } };
Object columns[] = { "Symbol", "Name", "Price" };
JTable table = new JTable(rows, columns);
JScrollPane scrollPane = new JScrollPane(table);
content.add(scrollPane, BorderLayout.CENTER);
f.setSize(300, 200);
f.setVisible(true);
}
}
但是,我的每个数组都有 10,000 行,继续将这些行再填充 9,997 次是极其不切实际的。我想创建一个类似这样的循环:(不起作用,但你知道我要完成什么)
for(int i=0;i<itemArray.length;i++)
{
Object rows[][]={
{ itemArray[i], conditionArray[i], locationArray[i] }};
}
使用 addRow()
方法将数据添加到 DefaultTableModel
:
DefaultTableModel model = new DefaultTableModel(columns, 0);
for(int i=0;i<itemArray.length;i++)
{
Vector row = new Vector(3);
row.add( itemArray[i] );
row.add( conditionArray[i] );
row.add( locationArray[i] );
model.addRow( row );
}
JTable table = new JTable( model );
我正在尝试制作一个table,其中包含多个垂直填充信息的对应数组。如果我的每个数组只有 3 条数据,下面的代码将完美运行:
import java.awt.BorderLayout;
import java.awt.Container;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
public class TableSample {
static String[] itemArray = new String[] {"item1","item2","item3"};
static String[] conditionArray = new String[] {"condition1","condition2","condition3"};
static String[] locationArray = new String[] {"location1","location2","location3"};
public static void main(String args[]) {
JFrame f = new JFrame("JTable Sample");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Container content = f.getContentPane();
Object rows[][] = { { itemArray[0], conditionArray[0], locationArray[0] },
{ itemArray[1], conditionArray[1], locationArray[1] },
{ itemArray[2], conditionArray[2], locationArray[2] } };
Object columns[] = { "Symbol", "Name", "Price" };
JTable table = new JTable(rows, columns);
JScrollPane scrollPane = new JScrollPane(table);
content.add(scrollPane, BorderLayout.CENTER);
f.setSize(300, 200);
f.setVisible(true);
}
}
但是,我的每个数组都有 10,000 行,继续将这些行再填充 9,997 次是极其不切实际的。我想创建一个类似这样的循环:(不起作用,但你知道我要完成什么)
for(int i=0;i<itemArray.length;i++)
{
Object rows[][]={
{ itemArray[i], conditionArray[i], locationArray[i] }};
}
使用 addRow()
方法将数据添加到 DefaultTableModel
:
DefaultTableModel model = new DefaultTableModel(columns, 0);
for(int i=0;i<itemArray.length;i++)
{
Vector row = new Vector(3);
row.add( itemArray[i] );
row.add( conditionArray[i] );
row.add( locationArray[i] );
model.addRow( row );
}
JTable table = new JTable( model );