如何从Java中的另一个类访问comboBox

时间:2014-10-30 11:55:02

标签: java swing jcombobox

comboBoxEnvIn Java是否可以在完全坐在不同的类中时访问它?我想将它作为一个整体使用而不只是传递它的值。

我有两个类 - 每个类都有一个GUI。我有我的main.java(主)类和我的ExportImportWindow.java

我正在尝试访问我在ExportImportWindow类中使用的comboBox,名为comboBoxEnv

目前我的主类中的代码引用/使用名为comboBox的错误comboBox。

导致写入文件的信息不正确。

我的主要代码是:

if (comboBox.getSelectedItem() == null ){

JOptionPane.showMessageDialog( null, "Please choose an ei");
}

else {

String env = comboBox.getSelectedItem().toString();

ExportImportWindow frm = new ExportImportWindow("Export",env,xmlFile , null, me); 

frm.setVisible( true );
}

我不确定如何能够访问位于其他类中的正确comboBox。我已经在我的代码顶部声明了它,试图在我的主类中访问它。

public final JComboBox comboBoxEnv ;

public ExportImportWindow( final String mode, final String env,String FromFile,String ToFile, final Main main){

comboBoxEnv = new JComboBox();

//other code to populate comboBoxEnv
}

这是我最后一次尝试后无法使用的目标:

    ExportImportWindow exportImport = new ExportImportWindow(//not sure what to pass through);
    exportImport.comboBoxEnv; // trying to access the method the ComboBoxEnv sits in

我觉得我看到的所有文章都只是询问如何传递值,无论是否要使用整个comboBox而不仅仅是它的值。非常感谢任何能够分享他们的知识的人。我确实可以访问它,但它只是通过创建它作为一种无效的方法。

1 个答案:

答案 0 :(得分:1)

您可以在ImpexWindow(更好)中定义getter,或者只使用类'字段因为该字段是公共的(不推荐方式)。

因此,在您的ExportImportWindow中,您应该保留对定义了组合框的ImpexWindow的引用,并使用ImpexWindow's字段