我有一张表,每当我点击表格的单元格时,都会读取它的值。 我想将这些数据存储在arraylist中,以便您可以将此信息用于我的应用程序的另一种形式。
这可能吗? 有人能帮帮我吗? 非常感谢你。
我从jTable获取值的代码
jMyTable.addMouseListener(new MouseListener() {
public void mouseClicked(MouseEvent e) {
{
int selectedRowIndex = jMyTable.getSelectedRow();
int selectedColumnIndex = jMyTable.getSelectedColumn();
Object selectedObject = (Object) jMyTable.getModel().getValueAt(selectedRowIndex, selectedColumnIndex);
System.out.println(selectedObject);
}
});
}
答案 0 :(得分:0)
您可以实现ListSelectionListener。
//添加一个侦听器以撤消选择要更新的行。把它放在构造函数
中 ListSelectionModel selectionModel = jTable1.getSelectionModel();
selectionModel.addListSelectionListener(this);
//实现接口的方法
public void valueChanged(ListSelectionEvent evt) {
if(evt.getSource() == jTable1.getSelectionModel() &&
evt.getValueIsAdjusting()){
TableModel model = (TableModel)jTable1.getModel();
Integer i =(Integer)model.getValueAt(jTable1.getSelectedRow(), 0);
然后我猜你有一个数据库。 //创建数据库的对象,找到所选行并检索信息
DBManager db = new DBManager();
CoachTrip c = db.findById(i);//here you retrieve the info and can store at any array or object
db.close();//close database if you have any
通过这种方式它将起作用
答案 1 :(得分:0)
可能是这样的(Java 7语法示例):
List<Object> objs = new ArrayList<>();
jMyTable.addMouseListener(new MouseListener() {
public void mouseClicked(MouseEvent e) {
{
int selectedRowIndex = jMyTable.rowAtPoint(e.getPoint());
int selectedColumnIndex = jMyTable.columnAtPoint(e.getPoint());
Object selectedObject = jMyTable.getValueAt(selectedRowIndex, selectedColumnIndex);
objs.add(selectedObject);
System.out.println(selectedObject);
}
});
}
答案 2 :(得分:-1)
创建一个全局数组和一个整数
Object[] objs = new Object[];
int counter = 0;
每次鼠标单击执行此操作而不是system.out.println
objs[counter] = (Object) jMyTable.getModel().getValueAt(selectedRowIndex, selectedColumnIndex);
counter++;
计数器告诉数组存储下一个接收对象的位置。首次单击单元格时,它会将对象存储在数组中的0索引处,然后存储在1上,依此类推。代码工作需要计数器