【发布时间】:2015-05-09 19:57:24
【问题描述】:
我对此很陌生,主要是自学,所以任何建议都会对我有所帮助。我对此有过尝试,现在看来我要绕圈子了……
所以我使用 netbeans GUI builder 制作了一个 GUI...我有一个主菜单,我希望能够从任何框架修改一个数组列表...
我有一个员工对象,我想将它放入一个可以从任何类文件访问的 ArrayList 中。我在这个网站上四处寻找一些帮助,但最终被困在试图弄清楚如何将它应用到我自己的网站上。
public class EmployeesDATA {
private ArrayList<Employee> EmployeesDATA;
Main m; //not so sure what this is meant to do
public EmployeesDATA(Main m) {
EmployeesDATA = new ArrayList<>();
this.m = m;
}
public ArrayList<Employee> getList() {
return EmployeesDATA;
}
public void addEmployee(Employee e){
EmployeesDATA.add(e);
}
}
这是我开始真正感到困惑的地方......最终让这门课试图模仿别人的建议哈哈。
public class Main {
public static EmployeesDATA Employees;
public Main() {
//test employee
Employee TestObject = new Employee("Jeff","b",1);
//make a new list using this class file only.
Employees = new EmployeesDATA(this);
//add a employee to the list.
Employees.addEmployee(TestObject);
}//end method
public void addEmployeeMainList(Employee e) {
Employees.addEmployee(e);
System.out.println("added employee.");
}
我想我想要的是一个 ArrayList,它只创建一次,然后在其他地方调用。我早期的尝试是创建新的 ArrayList 并丢失旧数据。
接下来是我的 MainMenu 类,它是创建 GUI 的地方。主要方法在这里,但我没有触及它,因为它已经有很多其他生成的东西:
public class MainMenu extends javax.swing.JFrame {
private EmployeesDATA Employees;
public MainMenu() {
initComponents(); //generated
System.out.println(Main.Employees.getList().get(0).employeeFirstName + "test 1"); // I seem to crash out here...
//pretty confused, I can call the Main class but I can't get the Employees.addEmployeeMainList method which is where I wanted to try to keep it protected... Any help there?
//eventually I will move on to assigning stuff to my GUI items like this:
//Populate Combo Box with Employees.
for(int x = 0; x < Employees.size(); x++){
SelectEmployeeComboBox.addItem(Employees.get(x).employeeFirstName);
}}
此时我真的只是让自己感到困惑,我很确定有一种更简单的方法可以做到这一点。 任何指针,即使它不能解决手头的问题,也值得赞赏。在这里学习:)。
【问题讨论】:
-
您可以尝试使用接口来减少耦合。以mediator pattern 为例。
-
代码太多,读起来很烦,想一想读者,清楚地阐明你的观点
-
当然我会减少它... 1分钟...
-
很难理解你在这里想要完成什么。另外,我建议您使用 Java 约定以小写开头的变量名,这样可以立即将其与类区分开来。
-
Jyr - 看看背景,我现在明白了好处。可能会在不同的项目上尝试它并学习如何做到这一点。