我有两个班级placeNewOrder
和主要班级DeliveryExpressApp
。
问题是,当我在可用餐厅JTable
中选择第一行时,必须将我在代码注释中指定的数据加载到菜单表中。
我已经将两个类的代码放在下面的链接中。
http://txt.do/5nx9p或http://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中查找有关表模型的更多信息。