无法将数据填充/更新到另一个JTable" B"点击JTable" A"中的特定行

时间:2016-03-25 10:46:37

标签: java swing jtable

我有两个课程placeNewOrder和主要课程DeliveryExpressApp

问题是当我选择可用餐馆JTable中的第一行时,它必须将我在代码中的注释中指定的数据加载到菜单表中。

我已将这两个类的代码放在下面的链接中。

http://txt.do/5nx9phttp://textuploader.com/5nx9p

1 个答案:

答案 0 :(得分:1)

我检查了你的代码,我知道你每次选择时都会创建一个新表。

 public JTable menuTableMethod(String []title, String [][]data){
        menuTable = new JTable(data, title);

在初始化类时创建表,并使用表模型来刷新表。我更改了以下部分,程序现在正在运行。但是你仍然必须进行一些更改并使用所有表格和表格模型。

初始化成员:

JTable availableRestaurantsTable,  orderSummaryTable;

DefaultTableModel defaultModel = new DefaultTableModel();
JTable menuTable = new JTable(defaultModel);

menuTableMethod

public JTable menuTableMethod(String []title, String [][]data){
    //menuTable = new JTable(data, title);
    defaultModel.setDataVector(data, title);

    menuTable.setPreferredScrollableViewportSize(new Dimension(380, 250));
    //menuTable.setBackground(Color.lightGray);
    menuTable.setFillsViewportHeight(true);
    menuTable.updateUI();
    menuTable.validate();
    //JOptionPane.showMessageDialog(null, "Table update ! ");

    return menuTable;
}

鼠标适配器

    availableRestaurantsTable.addMouseListener(new MouseAdapter() {
        @Override
        public void mouseClicked(MouseEvent e) {
            String cellValue = (String)availableRestaurantsTable.getValueAt(availableRestaurantsTable.getSelectedRow(), availableRestaurantsTable.getSelectedColumn());

            if(cellValue.compareTo("Bar & Boeuf") == 0){
                JOptionPane.showMessageDialog(null, "Yeap! Same\n"+cellValue);
                menuTableMethod(title2, dataUpdate);
            }

        }

查看here以获取有关表模型的更多信息。