我想从jtable中提取一列的所有数值,怎么取啊,大虾们帮忙啊

解决方案 »

  1.   

    就是如下一个jtable:
    Barcode      Type     Quantity
    Cardline      Carton      12  
    Pardline      Pallet      40   
    Car           Carton      50           
    我现在只想取 :Barcode的内容,就是Cardline ,Pardline,Car
    这几个值,该怎么写代码啊,谢谢
    最好能有代码 提示,谢谢
      

  2.   


    package swingtest;
    import java.awt.*;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import javax.swing.*;
    import javax.swing.table.*;
    public class JTableTest {
    private JFrame jf;
    private JTable table;
    private JScrollPane jsp;
    private static Student[] arr ={ //我不知道你是怎么取数据,取那数据,这里我
                                                  //把自己创建的数据赋予arr,你用的话把得到的数据赋予给他
                                                  //我这里为了方便写的数组,你最好用集合类来接数据
    new Student("zhangsan","male",21,89),
    new Student("lisi","male",21,89),
    new Student("wangwu","female",21,89),
    new Student("zhaoliu","female",21,89),
    new Student("qianqi","female",21,89),
    new Student("liuba","male",21,89),
    new Student("tangliang","male",21,89)};;
    private JButton ok;

    public  JTableTest(){
    jf=new JFrame("JTable测试");
     

    ok = new JButton("确定");
    ok.addActionListener(new ActionListener(){
                            //为OK做的按钮时间监听,当鼠标选中一列 点击确定 打印出这一列的所有的值
    public void actionPerformed(ActionEvent e) {
    int i = table.getSelectedColumn();
    if(i == -1){
    return;
    }
    StringBuilder sb = new StringBuilder();
    for(Student s : JTableTest.arr){
    sb.append(s.column(i));
    sb.append("\n");
    }
    System.out.println(sb.toString());
    }

    });
    table=new JTable(new TableModelForArrayList(arr));
    table.setCellSelectionEnabled(true);
    jsp=new JScrollPane();
    jsp.setViewportView(table);
    jf.add(ok,BorderLayout.NORTH);
    jf.add(jsp,BorderLayout.CENTER);
    jf.setSize(640,480);
    jf.setVisible(true);
    jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    }
    public static void main(String[] args) {
    JTableTest jt = new JTableTest();


    }
    }//TableModelForArrayList.java
    class TableModelForArrayList extends AbstractTableModel{
    private static final long serialVersionUID = 1L;
    private Student[] arr;

    public TableModelForArrayList(Student[] arr){
    this.arr=arr;
    }
    @Override
    public String getColumnName(int index) {
    switch(index){
    case 0:return "姓名";
    case 1:return "性别";
    case 2:return "年龄";
    case 3:return "成绩";
    default:return null;
    }
    } public int getColumnCount() {
    return 4;
    } public int getRowCount() {
    return arr.length;
    } public Object getValueAt(int row, int col) {
    Student s= arr[row];
    switch(col){
    case 0:return s.getName();
    case 1:return s.getGender();
    case 2:return s.getAge();
    case 3:return s.getScore();
    }
    return null;
    }
    }
    //student.java
    class Student{
    private String name;
    private String gender;
    private int age;
    private int score;
    public Student(String name, String gender, int age, int score) {
    super();
    this.name = name;
    this.gender = gender;
    this.age = age;
    this.score = score;
    }
    public Object column(int x){
    switch(x){
    case 0: return name;
    case 1: return gender;
    case 2: return age;
    case 3: return score;
    }
    return null;
    }
    public String getName() {
    return name;
    }
    public void setName(String name) {
    this.name = name;
    }
    public String getGender() {
    return gender;
    }
    public void setGender(String gender) {
    this.gender = gender;
    }
    public int getAge() {
    return age;
    }
    public void setAge(int age) {
    this.age = age;
    }
    public int getScore() {
    return score;
    }
    public void setScore(int score) {
    this.score = score;
    }
    }Output:
    当你用鼠标选取某一行后 点击确定按纽,打印出所用行的值,我这里做的是按纽事件监听,你可以改为你想要的事件
    监听~