我有两个班级placeNewOrder和主要班级DeliveryExpressApp

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

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

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

最佳答案

我检查了您的代码,我想这个问题是您每次选择时都在创建一个新表。

 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中查找有关表模型的更多信息。

10-05 22:20