1

我正在创建一个 java 应用程序。

我有一个类 q2a2,它是一个 jpanel,其设计如下所示:-img-

在此处输入图像描述

假设如果从组合框中选择了一个项目并单击了“创建帐户”按钮。一个选项卡被添加到 jTabbedPane。每个项目都有一个公共选项卡。所以我所做的是创建一个类并在每次单击按钮时添加它。类名是 q2a2_add。这也是一个面板。图像如下...

在此处输入图像描述

在拥有一些三个项目后,该应用程序看起来像

在此处输入图像描述

代码是:

public void addclass(int a) {
    if(jTabbedPane1.getTabCount()<13) { //variable name of TabbedPane
    String s=(String) mainCB.getItemAt(a); //mainCB is the variable name of main combobox
    int dont=0;
        for(int j=0;j<tabname.length;j++){ //just to ensure two accounts should not be same
        if(s.equals(tabname[j])){
            dont=1;
            break;
        }
        }
        if(dont==0){         
        for(int j=0;j<12;j++) {
            if(index[j]==0){
                q2a2_add subpanel2=new q2a2_add(this); //calling the second class
                jTabbedPane1.add(s,subpanel2); //here adding panel
                subpanel2.heading(s); // heading() method is defined in q2a2_add() which rename the jTextField to be same as argument s;
                tabname[j]=s;
                index[j]=1;
                break;
            }
        }
        }
        else {
            JOptionPane.showConfirmDialog(null, (String) mainCB.getItemAt(a)+" is already created","Information", JOptionPane.PLAIN_MESSAGE);
        }
}
    else {
            JOptionPane.showConfirmDialog(null, "Account Overload. Delete wrong account and then create","Caution", JOptionPane.PLAIN_MESSAGE);
    }
}

现在我的问题是。如函数中所见。每次调用和添加相同的类。我如何访问不同选项卡中的各种组合框和文本框。我想存储和操作用户输入的值。例如,如何以不同的方式从应收帐款、应付帐款和办公用品中读取输入。

请回复。

4

1 回答 1

1

我会在课堂上公开您需要的功能q2a2_add。例如,如果您想更改文本框的值,请在q2a2_add调用的类中添加一个setTextBoxValue()带有String参数的函数。在该函数中,您可以设置文本框的值。从中检索信息也是如此。剩下的唯一问题是如何跟踪不同的选项卡。我建议(这可能会简化您已经拥有的)是创建一个将类型映射Stringq2a2_add类型的 HashMap。然后,当您想添加一个新的选项卡面板时,您可以只检查StringHashMap 中是否存在,而不是通过搜索来检查标题。如果它不存在,您可以将其添加到HashMap外部存储的内部JPanel班级。然后,当您想要访问选项卡面板时,您可以简单地通过内部的字符串访问它们,HashMap并根据需要获取/设置它们的属性。

于 2011-07-11T04:25:53.990 回答