table GUI面板中,用鼠标选中表中的一行数据,怎样才能获得我 选中的 这一行的 数据呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在你的table的表结构中(比如是vector)利用行号进行循环查询,就能得到了 用一个循环 然后用 getvalueat这个 for(int i=0;i<行数;i++){jTable1.getModel().getValueAt(i, 列);}用这个思路来取吧哪一列可以给表格添加一个MouseListener来获得\不明白的话可以继续探讨 一般不这么用啊都是用getValueAt()如果用Vector,那么不是任何情况都通用,有的时候表格的数据不是由Vector的形势给出的 楼主可以试试这个/** *选中某行,并返回信息到文本框 */ private void jTable1MouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jTable1MouseClicked int rr; String tt = null; rr = jTable1.getSelectedRow(); String t = jTable1.getValueAt(rr,0).toString(); String t1 = jTable1.getValueAt(rr,1).toString(); String t2 = jTable1.getValueAt(rr,2).toString(); String t3 = jTable1.getValueAt(rr,3).toString(); jTextField1.setText(t); jTextField2.setText(t1); jTextField3.setText(t2); jTextField4.setText(t3); import java.awt.*;import javax.swing.*;import java.awt.BorderLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.table.*;import java.util.*;public class Frame1 extends JFrame implements ActionListener { public Frame1() { try { jbInit(); } catch (Exception exception) { exception.printStackTrace(); } } JPanel jPanel1 = new JPanel(); JButton jButton1 = new JButton();//add rows in the table DefaultTableModel dtm = new DefaultTableModel(0, 3); DefaultTableModel dtm1 = new DefaultTableModel(0, 3); JButton jButton2 = new JButton();//clear table JButton jButton3 = new JButton();//move table1 to table2 "<<" JPanel jPanel2 = new JPanel(); JScrollPane jScrollPane1 = new JScrollPane(); JTable jTable1 = new JTable(dtm); JScrollPane jScrollPane2 = new JScrollPane(); JTable jTable2 = new JTable(dtm1); private void jbInit() throws Exception { this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); jButton2.setText("清空 "); jButton2.addActionListener(this); jButton3.setText(" < < "); this.getContentPane().add(jPanel1, java.awt.BorderLayout.SOUTH); jButton1.addActionListener(this); jPanel1.add(jButton1); jPanel1.add(jButton2); this.getContentPane().add(jPanel2, java.awt.BorderLayout.CENTER); jPanel2.add(jScrollPane2); jScrollPane2.getViewport().add(jTable2); jPanel2.add(jButton3); jPanel2.add(jScrollPane1); jScrollPane1.getViewport().add(jTable1); jButton3.addActionListener(this); jButton1.setText("添加一行 "); this.setBounds(0, 0, 1000, 700); this.setVisible(true); } public static void main(String[] args) { Frame1 f = new Frame1(); } public void actionPerformed(ActionEvent e) { if (e.getSource().equals(jButton2)) { //清空 while (dtm.getRowCount() > 0) { dtm.removeRow(0); } } else if (e.getSource().equals(jButton1)) { //添加一行 String[] a = { String.valueOf(Math.random()), String.valueOf(Math.random()), String.valueOf(Math.random())}; dtm.addRow(a); } else if (e.getSource().equals(jButton3)) { if (this.jTable1.getSelectedRow() >= 0) { //System.out.println(dtm.getDataVector().get(jTable1.getSelectedRow()).getClass()); //dtm1.addRow((String[])dtm.getDataVector().get(jTable1.getSelectedRow())); dtm1.addRow( (Vector) dtm.getDataVector().get(jTable1.getSelectedRow())); } } }}或许有帮助 用循环...因为列数是已知的.如果你的Model里面的数据是用JList,或是Vector,或是数组存放则可以在你的TableModel里面多写个函数来得到那一行的数据. jvm 如何查看Xss的值 一个小问题 数组的插入和删除 请教jawin调用DLL 《java数据结构和算法》这本书有没有对应的视频? 工程与类的关系?? repaint .update.paint之间关系谁知道? 【诚招】上海JAVA开发工程师 请问有没有办法把一个Label上的文字横过来显示 求数据结构与算法分析(java)中文电子版!! 看看这个数组的输出形状,如何分析它才能写出这样的数组 Jtable中如何获取某个单元格的内容
jTable1.getModel().getValueAt(i, 列);
}
用这个思路来取吧哪一列可以给表格添加一个MouseListener来获得\
不明白的话可以继续探讨
都是用getValueAt()
如果用Vector,那么不是任何情况都通用,有的时候表格的数据不是由Vector的形势给出的
*选中某行,并返回信息到文本框
*/
private void jTable1MouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jTable1MouseClicked
int rr;
String tt = null;
rr = jTable1.getSelectedRow();
String t = jTable1.getValueAt(rr,0).toString();
String t1 = jTable1.getValueAt(rr,1).toString();
String t2 = jTable1.getValueAt(rr,2).toString();
String t3 = jTable1.getValueAt(rr,3).toString();
jTextField1.setText(t);
jTextField2.setText(t1);
jTextField3.setText(t2);
jTextField4.setText(t3);
import javax.swing.*;
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.table.*;
import java.util.*;public class Frame1
extends JFrame implements ActionListener {
public Frame1() {
try {
jbInit();
}
catch (Exception exception) {
exception.printStackTrace();
}
} JPanel jPanel1 = new JPanel();
JButton jButton1 = new JButton();//add rows in the table
DefaultTableModel dtm = new DefaultTableModel(0, 3);
DefaultTableModel dtm1 = new DefaultTableModel(0, 3);
JButton jButton2 = new JButton();//clear table
JButton jButton3 = new JButton();//move table1 to table2 "<<"
JPanel jPanel2 = new JPanel();
JScrollPane jScrollPane1 = new JScrollPane();
JTable jTable1 = new JTable(dtm);
JScrollPane jScrollPane2 = new JScrollPane();
JTable jTable2 = new JTable(dtm1); private void jbInit() throws Exception {
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jButton2.setText("清空 ");
jButton2.addActionListener(this);
jButton3.setText(" < < ");
this.getContentPane().add(jPanel1, java.awt.BorderLayout.SOUTH);
jButton1.addActionListener(this);
jPanel1.add(jButton1);
jPanel1.add(jButton2);
this.getContentPane().add(jPanel2, java.awt.BorderLayout.CENTER);
jPanel2.add(jScrollPane2);
jScrollPane2.getViewport().add(jTable2);
jPanel2.add(jButton3);
jPanel2.add(jScrollPane1);
jScrollPane1.getViewport().add(jTable1);
jButton3.addActionListener(this);
jButton1.setText("添加一行 ");
this.setBounds(0, 0, 1000, 700);
this.setVisible(true);
}
public static void main(String[] args) {
Frame1 f = new Frame1();
} public void actionPerformed(ActionEvent e) {
if (e.getSource().equals(jButton2)) { //清空
while (dtm.getRowCount() > 0) {
dtm.removeRow(0);
}
}
else if (e.getSource().equals(jButton1)) { //添加一行
String[] a = {
String.valueOf(Math.random()), String.valueOf(Math.random()),
String.valueOf(Math.random())};
dtm.addRow(a);
}
else if (e.getSource().equals(jButton3)) {
if (this.jTable1.getSelectedRow() >= 0) {
//System.out.println(dtm.getDataVector().get(jTable1.getSelectedRow()).getClass());
//dtm1.addRow((String[])dtm.getDataVector().get(jTable1.getSelectedRow()));
dtm1.addRow( (Vector) dtm.getDataVector().get(jTable1.getSelectedRow()));
}
}
}
}或许有帮助
如果你的Model里面的数据是用JList,或是Vector,或是数组存放则可以在你的TableModel里面多写个函数来得到那一行的数据.