【发布时间】:2016-01-11 01:19:07
【问题描述】:
我正在使用 IntelliJ 表单设计器在名为 AddAccountForm 的类中创建一个 JComboBox。我需要使用来自另一个类 (SCMain.java) 的 Java 数组 (InputArray) 来创建 JComboBox。我通过 AddAccountForm 的构造函数将此数组从 Main.java 传递到 AddAccountForm。不幸的是 createUIComponents 运行 before AddAccountForm 的构造函数运行,所以我无法访问它。从当前类之外的数组中设置 JComboBox 的正确方法是什么?
下面的错误代码来自 AddAccountForm.java 并被截断到相关部分。它返回 NPE,因为 this.InputArray 尚未被构造函数加载。
private JComboBox comboTest;
private String[] InputArray;
AddAccountForm(SCMain main, Set<String> InputSet) {
this.InputArray = InputSet.toArray(new String[InputSet.size()]);
}
private void createUIComponents() {
// TODO: place custom component creation code here
comboTest = new JComboBox(this.InputArray);
}
【问题讨论】:
-
假设
createUIComponents已经在你的AddAccountForm的构造函数(???)之前执行,那么你应该在AddAccountForm构造函数中有一个comboTest的实例,你可以工作与 -
由于某种原因,在构造函数中将 comboTest 设置为 InputArray 不起作用;它最终成为构造函数之前的模型/createUIComponents 中的任何内容
标签: java arrays swing intellij-idea