Java JTable选择与表模型

Java JTable选择与表模型,java,swing,jtable,selected,tablemodel,Java,Swing,Jtable,Selected,Tablemodel,我面临JTable和与之相关的TableModel的问题。这里的问题是,假设我在JTable上做了一行/行选择,我想从TableModel中获取特定的row对象并将其传递到某个地方。有人知道如何有效地做到这一点吗 假设您有一个自定义的TableModel,您可以执行以下操作: @Override public Object getValueAt(int rowIndex, int columnIndex) { if (rowIndex >= items.size()) { retu

我面临JTable和与之相关的TableModel的问题。这里的问题是,假设我在JTable上做了一行/行选择,我想从TableModel中获取特定的row对象并将其传递到某个地方。有人知道如何有效地做到这一点吗

假设您有一个自定义的TableModel,您可以执行以下操作:

@Override
public Object getValueAt(int rowIndex, int columnIndex) {
if (rowIndex >= items.size()) {
    return null;
}
Object obj = items.get(rowIndex);
if (obj == null) {
      return null;
}

switch (columnIndex){
case -1:
          return obj;
    case 0: ...
(假设
项目
是存储对象的列表)


。。。然后,当您需要给定行中的对象时,只需通过调用
tableModel.getValueAt(row,-1)获取它

我做了一个类似的应用程序。在我的任务中,我必须从一个表中获取数据(行),然后将其拖到另一个表中。i、 例如,如果用户从一个表中选择行,他应该能够拖动到另一个表中

当用户选择行时,请使用tableA.getSelectedRow()。现在循环获取每个选定行的所有列。将每行存储在字符串中,并使用新行字符作为行的结尾。导入时,通过字符串解析并获取每一行

// Sample code that I have worked on.
protected String exportString(JComponent c) {
JTable table = (JTable) c;
rows = table.getSelectedRows();
int colCount = table.getColumnCount();
    StringBuffer buff = new StringBuffer();
for (int i = 0; i < rows.length; i++) {
     for (int j = 0; j < colCount; j++) {
          Object val = table.getValueAt(rows[i], j);
          if (j != colCount - 1) {
              buff.append(",");
          }
         }
     if (i != rows.length - 1) {
         buff.append("\n");
     }
     }
     System.out.println("Export Success");
 return buff.toString();
}
//我已经编写过的示例代码。
受保护字符串exportString(JComponent c){
JTable table=(JTable)c;
rows=table.getSelectedRows();
int colCount=table.getColumnCount();
StringBuffer buff=新的StringBuffer();
for(int i=0;i

希望这能对您有所帮助。

我理解您的意思,但这里的问题是我需要与表模型交互。您能解释一下什么是交互吗?如果我需要在表上进行选择,我必须在JTable中进行选择,但同时我也需要在表模型中引用该选择。在这种情况下,将以多个间隔进行行选择。例如,当我选择第2、3、4行时。。。我需要表模型中包含与这些选定行相关的数据的对象。希望这能解释。请看一看