Valar丶Morghulis_ 2016-11-13 04:58 采纳率: 100%
浏览 1810
已采纳

JAVA 如何用实现table内容向另一table内容的复制。求大神们帮忙解决!

图片说明
就是实现点击→实现内容的传递。点击←删除该行。 但是我实现时却出现了这样的问题。。简单的示例图片说明图片说明图片说明
简单的点击添加值之后,会将之前的全部替换。一头雾水- -。。求大神讲解
简单源码如下。
package com.test;

import java.awt.BorderLayout;
import java.awt.EventQueue;
import java.util.Vector;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.border.EmptyBorder;
import javax.swing.table.DefaultTableModel;
import javax.swing.JTable;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;

public class Jtable extends JFrame {

private JPanel contentPane;
private JTable table;
private JButton btnNewButton;

/**
 * Launch the application.
 */
public static void main(String[] args) {
    EventQueue.invokeLater(new Runnable() {
        public void run() {
            try {
                Jtable frame = new Jtable();
                frame.setVisible(true);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    });
}

/**
 * Create the frame.
 */
public Jtable() {
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setBounds(100, 100, 450, 300);
    contentPane = new JPanel();
    contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
    setContentPane(contentPane);
    contentPane.setLayout(new BorderLayout(0, 0));

    JScrollPane scrollPane = new JScrollPane(table);
    contentPane.add(scrollPane);
    Vector columnNames =  new Vector();
    for(int i=0;i<4;i++){
        columnNames.add("第" +(i+1) + "列");
    }
    Vector rowData = new Vector();
    Vector data = new Vector();

    //开始表中的数据是1,2,3,4
    rowData.add("1");
    rowData.add("2");
    rowData.add("3");
    rowData.add("4");
    data.add(rowData);

    //使用DefaultTableModel构建表格
    DefaultTableModel tableModel = new DefaultTableModel(data,columnNames);
    table = new JTable(tableModel);
    scrollPane.setViewportView(table);

    btnNewButton = new JButton("New button");
    btnNewButton.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            rowData.add("4");
            rowData.add("5");
            rowData.add("6");
            rowData.add("7");
            data.add(rowData);
            tableModel.setDataVector(data, columnNames);
            table.setModel(tableModel);
        }
    });
    scrollPane.setRowHeaderView(btnNewButton);

}

}

  • 写回答

3条回答 默认 最新

  • threenewbee 2016-11-13 05:07
    关注

    rowData = new Vector(); //加上
    rowData.add("4");
    rowData.add("5");
    rowData.add("6");
    rowData.add("7");

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
  • ¥15 绘制多分类任务的roc曲线时只画出了一类的roc,其它的auc显示为nan
  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?