首先让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
public Table() {
rand = new Random();
list = new LinkedList
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) {
}
}