Java Swing动态字段选择

Java Swing动态字段选择,java,swing,combobox,Java,Swing,Combobox,我不知道该怎么问这个问题,而且我肯定我遇到的问题还有其他解决方案,所以如果有人能给我指出正确的方向,我将不胜感激 无论如何,我遇到的问题是,我有一个字符串[]列表(称为“项目”),用于填充组合框。我想使用组合框中的选择动态更改GUI面板中列出的表单字段 到目前为止,我的方法还不够动态,因为当我完成时,我将从组合框中有近100个可能的选择。到目前为止,我已经测试了3个选项,但将其扩展到100将涉及大量代码,我认为一定有其他解决方案,对吗?我只是不知道解决办法是什么 String[] project

我不知道该怎么问这个问题,而且我肯定我遇到的问题还有其他解决方案,所以如果有人能给我指出正确的方向,我将不胜感激

无论如何,我遇到的问题是,我有一个字符串[]列表(称为“项目”),用于填充组合框。我想使用组合框中的选择动态更改GUI面板中列出的表单字段

到目前为止,我的方法还不够动态,因为当我完成时,我将从组合框中有近100个可能的选择。到目前为止,我已经测试了3个选项,但将其扩展到100将涉及大量代码,我认为一定有其他解决方案,对吗?我只是不知道解决办法是什么

String[] projects = {"Select a project...", "Option1", "Option2", "Option3"};

String[] Option1= {"phone", "maxphv"};
String[] Option2= {"address1", "address2", "house", "predir", "street", "strtype", "postdir", "apttype", "aptnbr"
        , "city", "state", "zip"};
String[] Option3= {"phone"};

ArrayList<String> fieldslist, fieldslbllist;
String[]projects={“选择一个项目…”、“选项1”、“选项2”、“选项3”};
字符串[]选项1={“phone”,“maxphv”};
字符串[]选项2={“address1”、“address2”、“house”、“predir”、“street”、“strtype”、“postdir”、“apttype”、“aptnbr”
,“城市”,“州”,“邮政”};
字符串[]选项3={“电话”};
ArrayList fieldslist,FieldsBlList;
理想情况下,我希望从projects String[]组合框中选择项目的名称,并将该名称引用为另一个列表的名称,该列表包含我要在面板中显示的字段

但我从阅读其他问题中发现,一旦代码被编译,变量的名称就无关紧要了

此时,我有一组代码来清除面板并动态选择字段,但我仍然需要为100个选项中的每一个手动编写替换代码。我想这并不可怕,但我认为可能有一种更好的方式我不知道

public void resetFields() {
    fieldslist.clear();
    fieldslbllist.clear();
}

public void setFields() {
    if (project.getSelectedIndex() == 0) {
        resetFields();
    }
    else if (project.getSelectedIndex() == 1) {
        resetFields();
        for (int i = 0; i <= Option1.length; i++) {
            fieldslist.add(Option1[i]);
            fieldslbllist.add(Option1[i]+"lbl");
        }
    }
    else if (project.getSelectedIndex() == 2) {
        resetFields();
        for (int i = 0; i <= Option2.length; i++) {
            fieldslist.add(Option2[i]);
            fieldslbllist.add(Option2[i]+"lbl");
        }
    }
//... onward to 100
public void resetFields(){
fieldslist.clear();
fieldslbllist.clear();
}
公共无效设置字段(){
if(project.getSelectedIndex()==0){
重置字段();
}
else if(project.getSelectedIndex()==1){
重置字段();
for(int i=0;i使用,如图所示,动态更改表单。鉴于有大量备选方案,请在可能允许您使用两个相关控件的选项中查找层次结构细分,如图所示


Uhmmm…2D阵列????