如何根据另一个类的数据在一个类中更改JButton文本?

时间:2016-07-25 15:14:29

标签: java arraylist jbutton

背景:我有一个AccountingModuleUI JFrame,其帐户图表JPanel包含帐户JButtons,作为ArrayList的一部分,因为它们是通过CreateAccount生成的JButton,连续Jbutton生成的代码如下:

private void btnCreateAccountActionPerformed(java.awt.event.ActionEvent evt) {                                                 
    jLabel2.setText("Chart of Accounts");        
    buttonArrayList.add(new JButton("Button"+buttonCount));
    panelAccounts.add(buttonArrayList.get((buttonArrayList.size()-1)));
    buttonArrayList.get((buttonArrayList.size()-1)).show();
    buttonCount++;
    buttonArrayList.get((buttonArrayList.size()-1)).addActionListener(new ActionListener(){
        public void actionPerformed(ActionEvent e){
        inputForm.show();
        }
    });
    repaint();
    revalidate();
}

当单击其中一个新创建的JButton时,将显示输入表单,这是它自己的独立类。用户输入信息并单击Submit按钮,然后通过InputForm类中的以下代码创建Account对象:

private void btnSubmitActionPerformed(java.awt.event.ActionEvent evt) {                                          
    acctName = txtAcctName.getText();
    acctClass = cboxAcctClass.getSelectedItem().toString();
    acctSubClass = cboxAcctSubClass.getSelectedItem().toString();
    acctCCY = cboxAcctCCY.getSelectedItem().toString();
    accountArrayList.add(new Accounts(acctName, acctClass, acctSubClass,(i+1)));
    i++;
    this.hide();
}           

到目前为止一切正常,但是我在尝试将Account对象的acctName返回到AccountingModuleUI类起点中的JButton文本时遇到了困难。有什么建议吗?

1 个答案:

答案 0 :(得分:0)

查找模型 - 视图 - 控制器设计架构https://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller

在您的情况下,我会让控制器类更新您的视图以响应模型中的更新。可以扩展 btnSubmitActionPerformed 的功能,以使用新帐户名更新JButton。