java实现两个表格之间数据的传递

如何点击选择按钮实现左边表格内容到右边表格内容的传递,点击清空列表能清空右边的列表(左边的表格是连接数据库的)

img


package xiaoshouz;
import javax.swing.*;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableRowSorter;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Vector;

public class xiaoshouz extends JPanel {
    xiaoshouzdao ed = new xiaoshouzdao();
    DefaultTableModel model,model1;
    JTable table,table1;
    JTextField  textField2;
    JButton query,tuihuang,choice,end,qinkong;
    JScrollPane jsp, jsp1;
    JComboBox JC=new JComboBox();
    public static void main(String args[]) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    xiaoshouz frame = new xiaoshouz();
                    frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }
    public xiaoshouz() {
        setLayout(null);
        this.setBounds(350, 300, 660, 500);
        this.setVisible(true);
        JC.addItem("药品编号");
        JC.addItem("药品名称");
        JC.setBounds(280, 20, 100, 30);
        textField2 = new JTextField();
        textField2.setBounds(380, 20, 80, 30);
        add(JC);
        add(textField2);
        query = new JButton("查询");
        tuihuang=new JButton("退换药品");
        choice=new JButton("选择");
        end=new JButton("结算");
        qinkong=new JButton("清空列表");
        add(choice);
        add(end);
        add(qinkong);
        query.setBounds(500, 20, 80, 30);
        tuihuang.setBounds(580,20,80,30);
        choice.setBounds(480,100,60,20);
        end.setBounds(800,490,100,40);
        qinkong.setBounds(530,490,80,30);

        add(query);
        add(tuihuang);

        Icon chaxun = new ImageIcon("C://Users//anyone//wqlidea//yp//tubiao/查询.png");
        query.setIcon(chaxun);

        Vector> vData=ed.selectALL();
        getModel(vData);
        table = new JTable(model);
         jsp = new JScrollPane(table);
        jsp.setBounds(0, 50, 480, 400);
        add(jsp);



        jsp1=new JScrollPane(table1);
        String[]columnNames={"药品编号","药品名称","售价/元","数量/件"};
        String[][]tableValues={};
        model1=new DefaultTableModel(tableValues,columnNames);
        table1=new JTable(model1);
        jsp1=new JScrollPane(table1);
        jsp1.setBounds(540,50,400,400);
        add(jsp1);




        query.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent actionEvent) {
                if(JC.getSelectedItem().toString().equals("药品编号")){
                    String rid = textField2.getText();
                    getModel(ed.selectname1(rid));
                }
                if(JC.getSelectedItem().toString().equals("药品名称")){
                    String eid=textField2.getText();
                    getModel(ed.selectname(eid));

                }
            }
        });



    }

    private void getModel (Vector < Vector < String >> vData) {
        Vector vHead = new Vector();
        vHead.add("药品编号");
        vHead.add("药品名称");
        vHead.add("药品类别");
        vHead.add("生厂厂家");
        vHead.add("售价/元");
        vHead.add("剩余数量/件");
        if (model == null) {
            model = new DefaultTableModel(vData, vHead);
        } else {
            model.setDataVector(vData, vHead);
        }


    }

}

将左侧选中的记录显示在右侧,跟渲染左侧思路是一样的。

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^