【发布时间】:2014-11-10 10:50:56
【问题描述】:
我有 2 个类,一个类是 JFrame (MainUIHolder.java),另一个类是 JDialog (EditValuationsDialog.java)。 MainUIHolder 可以在按钮点击事件中调用 EditValuationsDialog。
EditValuationsDialog 打开后,用户可以在其字段中输入数据并按其“添加”按钮。好的,现在问题来了。一旦用户按下“添加”按钮,EditValuationsDialog 应该通知MainUIHolder。
下面是代码。
MainUIHolder
Action edit = new AbstractAction()
{
public void actionPerformed(ActionEvent e)
{
JTable table = (JTable)e.getSource();
int rowNum = Integer.valueOf(e.getActionCommand());
Object valueAt = table.getModel().getValueAt(rowNum, 0);
EditValuationsDialog edit = new EditValuationsDialog(null,true);
edit.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
edit.setTitle("Edit Valuations");
edit.setClientName(portfolioViewClientName.getText());
edit.setPortfolioType(portfolioViewInvestmentTypeCombo.getSelectedItem().toString());
edit.setPortfolioId(id);
edit.setOngoingValuationsId(Integer.parseInt(String.valueOf(valueAt)));
edit.setLocationRelativeTo(table);
edit.setVisible(true);
//CATCH THE CALL FROM EditValuationsDialog HERE!!!!//
}
};
EditValuationsDialog
//Action Listeners
private class AddBtnAction implements ActionListener
{
@Override
public void actionPerformed(ActionEvent e)
{
if(someCondition)
{
return String / int to MainUIHolder (See where I want to catch it in MainUIHolder)
}
else
{
do nothing
}
}
}
在我的代码中,我已经指出应该从哪里生成对MainUIHolder 的调用,以及我必须在哪里捕获MainUIHolder 中的调用。我该如何做这个回调工作?
【问题讨论】:
标签: java swing methods callback actionlistener