我无法访问Java中另一个类的变量值

卡兰·马尔霍特拉(Karan Malhotra)

我有A类和B类。B类是从A类扩展而来的。

在班级AI中有此声明。

JCombobox namecombo; 

    JButton btnPrint = new JButton("Print");
    btnPrint.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent arg0) {
            CreateInvoiceTable op = new CreateInvoiceTable();
            op.invoicetable();
            insertingBillNoIntoDatabase();
            String custname =namecombo.getSelectedItem().toString();
            MessageFormat footer = new MessageFormat(custname);
            MessageFormat header = new MessageFormat("SAHA TRADERS");
            try {
                table.print(JTable.PrintMode.FIT_WIDTH, header,footer);
            } catch (PrinterException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

            while(model_table.getRowCount()>0) {
                model_table.removeRow(0);
            }

            itemcombo.setSelectedIndex(0);



        }
    }); 

我从组合框中选择了名称,然后单击按钮(打印)以执行B类。

B班

public void invoicetable() {

    String name = Invoice.namecombo.getSelectedItem().toString();

    System.out.println(name); 
}

public static void main(String[] args) {
    CreateInvoiceTable a = new CreateInvoiceTable();
    a.invoicetable();
}
}

现在,当我打印它时。它只是打印comboBox的第一个值而不是
所选的。

akortex91

这里的问题源于对实例变量访问的了解不足。

假设您已在ClassA某个地方实例化了对象并开始对其进行操作。在某个时候,的值JCombobox将被更改。这意味着它的状态仍然驻留在的实例中ClassA

在打印方法中,创建一个新实例,CreateInvoiceTable在该实例上调用该invoicetable表。虽然您希望这样做可以有效地使您能够访问JCombobox驻留在ClassA对象内的的值,但事实并非如此。

实例化扩展类后,您将有效地创建它的新实例,即new JCombobox这解释了为什么在getSelectedItem第二类的上下文中调用时返回的值不正确。

我假设该行String custname =namecombo.getSelectedItem().toString();有效地返回了正确的值,这将为您解决这个问题提供线索。

现在,我最好的建议是停止从classB扩展classA。由于您的invoicetable方法只会打印出一个名字,因此您只需在其中传递名字值作为参数即可。

我还建议检查变量访问和继承,因为您似乎对这些概念感到困惑。

希望这可以帮助。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在Java中将列表的变量值设置为另一个列表变量值

我可以在PowerShell中的另一个变量中按名称设置变量值吗

如何在Java方法中使用变量值到另一个Java类

从Java中的另一个类访问变量

根据另一个类上的变量值设置Qlabel文本

SAS-基于表中另一个变量值的变量值的倒序

Groovy-具有另一个变量值的访问变量

我如何在一个函数中设置全局变量值,然后在Codeigniter中通过另一个函数访问它?

从Solidity中的另一个函数访问在一个函数中初始化的变量值

通过存储在Powershell中另一个变量中的名称获取变量值

为什么Java从另一个类获取一个类的旧变量值?

根据JavaScript中的另一个变量值动态访问变量

无法访问在另一个模块中设置的类实例变量

从Objective C中的另一个类访问变量值

更改另一个类函数内的Members变量值?

无法访问Java中另一个类中方法的返回实例

无法从Java中的另一个类访问变量?

从Java中的另一个类访问变量

Mule-无法访问另一个流中的会话变量值

如何从另一个 php 脚本访问变量值

从另一个类获取变量值

无法访问子类中的父类变量值

在另一个变量中插入一些变量值

查找作为参数传递的变量值并替换为 Bash 脚本中的另一个变量值

Java - 无法访问另一个类中的数组列表

将 index.js 中的变量值访问到 nodejs 上的另一个 js 文件

使用另一个变量值作为变量值

如何将变量值放在javascript中的另一个变量中?

如何将一个类中的变量值用于另一个类?