我很難將行添加到位於不同類的表中。類之間的關係
以下是類結構:
虛線箭頭所期望的關係,我不管理有
在AddPanel
類我有一個的Fileds和Add按鈕。
單擊addButton時,我首先創建Product(位於Logic Package中的類)的實例。然後我需要添加行到表格中(使用TableModel.AddRow
方法)。
以下是GUI外貌(聚焦選項卡AddPannel
):
我嘗試不同approches但他們不被successed。
我最後的嘗試是在Table
類創建以下方法:
public void AddRow(Product p) {
tbmStock.addRow(new Object[] { p.getExternalId(), p.getName(),
p.getAmount(), p.getPriceForMe(), p.getPriceForCustomer() });
}
此外,在AddPanel
類我嘗試添加下面的方法:
private void AddButtonAction() {
btnAddProduct.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
try {
Product p = new Product(txtName.getText(), txtExternalID
.getText(), Integer.parseInt(txtAmount.getText()),
Double.parseDouble(txtPriceForMe.getText()),
Double.parseDouble(txtPriceForCustomer.getText()),
Integer.parseInt(txtFromYear.getText()), Integer
.parseInt(txtToYear.getText()), Integer
.parseInt(txtSupplier.getText()), Integer
.parseInt(txtCarType.getText()));
AddRow(p); //This call doesn't compiles
}
catch (Exception e1){
JOptionPane.showMessageDialog(null,"Error");
}
}
});
}
有什麼建議? (實際上我甚至不確定我的結構是否良好:S)
你可以簡單地表模型的引用添加到AddPanel – MadProgrammer 2013-02-16 10:27:21
實際上「這不起作用「表示由於以下原因它不編譯:'AddRow(Product)方法是undefin編輯爲新的ActionListener類型(){}' – 2013-02-16 10:39:44
@Gil Peretz在這種情況下,MadProgrammer大部分都是正確的,你需要在AddPanel中引用你的表,然後在你的ActionListener中調用table.AddRow()。不過,我建議創建一個自定義的'TableModel',它可以處理'Product'集合。 – annih 2013-02-16 10:50:10