因此,对于我在计算机科学中的学期项目,我需要获取一个选定的行并从所选行的第一列中获取存储在表格中的信息(在按下按钮之后)。获取信息后,我需要将其存储到以前初始化的变量中。我无法弄清楚,任何帮助都非常感谢。
这就是我选择行并尝试从行中获取信息的方法。我正在使用一个按钮来运行它,以便它根据从表中存储的字符串收集的信息从数据库中删除一行。
if (theMainViewDisplay.bookingData.getSelectedRow() != -1) {
String bookingID;
DefaultTableModel model = (DefaultTableModel)theMainViewDisplay.bookingData.getModel();
model.removeRow(theMainViewDisplay.bookingData.getSelectedRow());
// Get stored varible
bookingID = model.getColumnName(1);
System.out.println(bookingID);
}
答案 0 :(得分:0)
为此,您可以为表格编写鼠标监听器
要获取值,您可以使用table.getModel().getValueAt(ROW_NUMBER,COLUMN_NUMBER)
函数。在此代码中,通过鼠标单击事件选择raw。因此table.rowAtPoint(e.getPoint())
函数返回鼠标单击的原始索引。
示例代码如下所示;
table.addMouseListener(new MouseListener() {
@Override
public void mouseClicked(MouseEvent e) {
if (e.getClickCount() == 2) {
String symbol=(String)table.getModel().getValueAt(table.rowAtPoint(e.getPoint()),0);
}
}
}
您可以详细了解JTABLES和。{ Java Mouse click Events
答案 1 :(得分:0)
没有鼠标监听器就可以做到这一点。您可以通过以下方式完成此操作。
private class RemoveBookings implements ActionListener {
String bookingID;
@Override
public void actionPerformed(ActionEvent ae) {
if (theMainViewDisplay.bookingData.getSelectedRow() != -1) {
final DefaultTableModel model = (DefaultTableModel) theMainViewDisplay.bookingData.getModel();
// Get stored varible
int index = theMainViewDisplay.bookingData.getSelectedRow();
System.out.println(index);
theMainViewDisplay.bookingID = model.getValueAt(index, 0).toString();
theMainViewDisplay.pickUpLocation = model.getValueAt(index, 2).toString();
theMainViewDisplay.dropOffLocation = model.getValueAt(index, 3).toString();
System.out.println(theMainViewDisplay.bookingID);
// Remove booking from database
model.removeRow(theMainViewDisplay.bookingData.getSelectedRow());
theBackendModel.thePowList.remove(bookingID);
}
}
}