java Table 问题

我想要按一个按键就将jtable里的值全部储存到linkedList或者ArrayList,应该怎样做??

最好写个java程式出来,比较容易明白。。。

首先让JTable实现KeyListener,我在这里当按下S的时候就会保存到List中去
关键代码是实现的keyPressed方法,楼主好好看看,还有Random是生成随机数的类,可以不必去管它,只是为了生成数据而已

import java.awt.GridLayout;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.util.LinkedList;
import java.util.Random;

import javax.swing.*;
import javax.swing.table.DefaultTableModel;

public class Table extends JFrame implements KeyListener {

private static final long serialVersionUID = 1L;
private JTable table;
private DefaultTableModel model;
private Random rand;
private JScrollPane pane;
private LinkedList<Integer> list;

public Table() {
rand = new Random();
list = new LinkedList<Integer>();
String[] name = { "第一列" };
Integer[][] data = { { rand.nextInt(50) }, { rand.nextInt(50) },
{ rand.nextInt(50) }, { rand.nextInt(50) },
{ rand.nextInt(50) }, { rand.nextInt(50) },
{ rand.nextInt(50) }, { rand.nextInt(50) },
{ rand.nextInt(50) }, { rand.nextInt(50) },
{ rand.nextInt(50) }, { rand.nextInt(50) },
{ rand.nextInt(50) }, { rand.nextInt(50) } };
model = new DefaultTableModel(data, name);
table = new JTable(model);
table.addKeyListener(this);
pane = new JScrollPane(table);
getContentPane().add(pane);
setLayout(new GridLayout(1, 1));
setBounds(100, 100, 200, 300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}

public static void main(String[] args) {
Table t = new Table();
t.setVisible(true);
}

@Override
public void keyPressed(KeyEvent arg0) {
if (arg0.getKeyCode() == KeyEvent.VK_S) {
int row = model.getRowCount();//返回总行数
System.out.println(row);
for (int i = 0; i < row; i++) {
list.add(i, (Integer)(table.getValueAt(i, 0)));
}
JOptionPane.showMessageDialog(this, "成功保存到LinkedList中!\n保存数据为:\n" +""+list);
}
}
@Override
public void keyReleased(KeyEvent arg0) {

}

@Override
public void keyTyped(KeyEvent arg0) {

}

}
温馨提示:内容为网友见解,仅供参考
第1个回答  2009-04-12
jtable可以getValueAt(row, col),listedlist可以add(e),从表格取值,添加进list就都可以完成了。然后就要看你具体怎么想的了,因为表格是二维的,而列表是一维的。。
第2个回答  2009-04-12
JTable不是有个getValueAt(int row, int column)方法啊~~
你遍历取出,再转存到其他容器里就是了~~~
第3个回答  2009-04-12
用一个循环来做

关于JAVA的JTable的疑问!求解!
只要一行对应一个实体对象即可,实体对象可以有嵌套属性,也就是包含多张表了。比如User类对应T_User表,Role类对应T_Role表 public class User{ private int id;private string name;private Role role;\/\/ getters and setters...} 开发一个针对实体对象的TableModel接口的实现类 ...

关于java中JTable中的错误。下面是出错的代码问题。第一次在Jtable中...
ArrayIndexOutOfBoundsException 这个是Array数组越界,是个常见的错误,记住这个错误,你以后肯定会碰到的 你的代码不完整 都不好调试,我就直接看下。Vector v =new Vector();你直接这么初始化实例就行了 \/\/一下是实例化Vector时候可以用的构造方法 Vector()构造一个空向量,使其内部数据数组的大小为...

java中的jtable每个单元格都显示图片,但是有的显示不出来为什么呢_百度...
可能是图片大小的设置和你单元格大小设置冲突

关于java的JTable 怎样获得选中某一行的值并且在另外一个JTable中显示...
1、获得table1的选中行 int index = table1.getSelectedRow();2、获得table1中列的个数 int column = table1.getColumnCount();3、取出表格中index行中的值,用集合保存!(1)创建一个保存的集合Vector<Vector<Object>> vector = Vector<Vector<Object>>();(2) 再创建一个集合,用于加...

如何使用java的bigtable进行数据比较?
1. compareTo方法的使用:compareTo方法是Java中许多类,包括BigDecimal类,用来比较对象大小的一个常见方法。对于BigDecimal来说,这个方法会返回一个整数,根据这个整数,我们可以判断两个BigDecimal对象的大小关系。如果返回值为负数,表示第一个BigDecimal小于第二个。如果返回值为正数,表示第一个BigDecimal...

java: 创建一个桌子Table类,该类中有桌子名称,重量,桌面宽度,长度及桌 ...
\/\/ 名称 private String name;\/\/ 重量 private float weight;\/\/ 宽度 private float width;\/\/ 高度 private float height;\/\/ 长度 private float length;public Table() { } \/\/ 带4个参数的构造方法初始化所有数据成员 public Table(float weight, float width, float height, float length) { ...

java List<String[] > table 赋值 和取值问题
Table table = new Table();赋值:table.setName("my_table");Map<String,Object[]> map = new HashMap<String,Object[]>();map.put("r",new Object[]{"rr"});map.put("q",new Object[]{"qq"});...table.setProperty(map);取值:String name = table.getName();String[] r = ...

JAVA中,如何使JTable的数据及时更新?
以后文件内容再怎么修改,程序也不知道,除非你再去读取文件一次,把新读到的数据再设置到table上。解决:1、再程序中写一个线程,一直不断的读取数据,然后给表格赋值,这种方法不太好。2、在界面上加一个按钮,点击按钮时去读取文件一次并将数据设置到到表格中,这样就可以了 ...

java swing中jtable,table中有一列数据,是\/否,我想把是的颜色变为红色...
1、首先写一个类继承 DefaultTableCellRenderer 重写getTableCellRendererComponent 方法,方法里可以对你的要求进行设置,形如 if( value.equals("是")){ this.setBackground(bgColor);this.setForeground(fgColor);} 2、然后设置:xxxTable.setDefaultRenderer(Object.class, new xxxxTableRenderer());

java中,为何JTable的显示不能随着文件的更改而及时修改?
于是修改了B自己的作业本,那么难道A的作业本也会自动同步更新吗?文件相当于B的作业本,java运行时从文件中读取数组进入JTable,JTable相当于A的作业本。想要文件更改时JTable也同步更新,必须在程序中添加一个功能。例如添加一个不断运行的线程,每隔多长时间就扫描一个文件,并负责更新到Jtable里。

相似回答