Java与JPanel

Java与JPanel,java,arraylist,jpanel,Java,Arraylist,Jpanel,我正在构建一个表单,用户可以在其中输入员工信息并将其显示在文本区域字段中,但我还有一个显示全部或“查看全部”按钮,我无法开始工作\ 我将每次提交保存到一个名为resultshold的数组中,然后将该数组保存到一个名为line的数组中,但两个数组只保存一次提交,而不是多次提交-我对其进行了测试,每次显示数组“line”的内容时,它只显示最后一次提交,这意味着它没有存储多次提交每次点击“计算”按钮时提交-我在数组中添加了一个计数器来设置store“text”变量的位置,但它只保存一个而不是多个-有人

我正在构建一个表单,用户可以在其中输入员工信息并将其显示在文本区域字段中,但我还有一个显示全部或“查看全部”按钮,我无法开始工作\

我将每次提交保存到一个名为
resultshold
的数组中,然后将该数组保存到一个名为
line
的数组中,但两个数组只保存一次提交,而不是多次提交-我对其进行了测试,每次显示数组“line”的内容时,它只显示最后一次提交,这意味着它没有存储多次提交每次点击“计算”按钮时提交-我在数组中添加了一个计数器来设置store“text”变量的位置,但它只保存一个而不是多个-有人能帮我或指引我正确的方向吗-下面是我的代码

public class Container extends JFrame {
    ArrayList<String> resultsHold = new ArrayList<>();
    ArrayList line = new ArrayList<>();
    //private String[] resultsHold;
    private final JLabel EmployeeNamelabel;
    private final JLabel HoursWorkedLabel;
    private final JLabel department;
    private final JLabel emptycell;
    private final JLabel wageLabel;
    private final JLabel departmentresultsLabel;
    private final JTextField EmployeeNameTexfield;
    private final JTextField HoursWorkedtextfield;
    private final JTextField wagetextfield;
    private final JTextArea resultsscreen;
    public JButton seeAll;
    public JButton myExitButton;
    public JButton CalcButton;
    public JButton ClearButton;
    JPanel centerPanel;
    JPanel buttonPanel;
    JPanel textfieldPanel;
    JPanel myresultsPanel;

    public Container() {
        super("Payroll Program");
        String[] departments = {"CHOICE 1", "CHOICE 2", "CHOICE 3",
                "CHOICE 4", "CHOICE      5", "CHOICE 6"};
        final JComboBox<String> departmentsV = new JComboBox<String>(departments);

        departmentsV.setVisible(true);

        getContentPane().setLayout(new GridLayout(4, 5, 8, 8));

        //creating text fields, labels and buttons

        emptycell = new JLabel("");
        departmentresultsLabel = new JLabel();
        EmployeeNamelabel = new JLabel("First Name");
        HoursWorkedLabel = new JLabel("Hours Worked");
        wageLabel = new JLabel("Wage");
        department = new JLabel("Department");
        EmployeeNameTexfield = new JTextField(5);
        HoursWorkedtextfield = new JTextField(5);
        wagetextfield = new JTextField(5);
        resultsscreen = new JTextArea(20, 50);
        myExitButton = new JButton("Exit");
        myExitButton.setSize(new Dimension(10, 10));
        CalcButton = new JButton("Calc");
        CalcButton.setSize(new Dimension(10, 10));
        ClearButton = new JButton("Clear");
        ClearButton.setSize(new Dimension(10, 10));
        seeAll = new JButton("See All Results");
        seeAll.setSize(new Dimension(10, 10));

        //adding labels
        centerPanel = new JPanel();
        buttonPanel = new JPanel();
        textfieldPanel = new JPanel();
        myresultsPanel = new JPanel();

        centerPanel.setLayout(new GridLayout(0, 4, 8, 8));
        centerPanel.add(EmployeeNamelabel);
        centerPanel.add(HoursWorkedLabel);
        centerPanel.add(wageLabel);
        centerPanel.add(department);

        // adding text fields
        textfieldPanel.setLayout(new GridLayout(0, 4, 8, 8));
        textfieldPanel.add(EmployeeNameTexfield);
        textfieldPanel.add(HoursWorkedtextfield);
        textfieldPanel.add(wagetextfield);
        textfieldPanel.add(departmentsV);

        //adding the buttons to the panel
        buttonPanel.setLayout(new GridLayout(0, 4, 8, 8));
        buttonPanel.add(seeAll);
        buttonPanel.add(myExitButton);
        buttonPanel.add(CalcButton);
        buttonPanel.add(ClearButton);
        myresultsPanel.setLayout(new GridLayout(0, 1, 8, 8));
        myresultsPanel.add(emptycell);
        myresultsPanel.add(resultsscreen);
        myresultsPanel.add(emptycell);
        myresultsPanel.add(emptycell);

        getContentPane().add(centerPanel, BorderLayout.NORTH);
        getContentPane().add(textfieldPanel, BorderLayout.NORTH);
        getContentPane().add(buttonPanel, BorderLayout.NORTH);
        getContentPane().add(myresultsPanel, BorderLayout.NORTH);
        //clear button action event listener

        ClearButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                EmployeeNameTexfield.setText("");
                wagetextfield.setText("");
                HoursWorkedtextfield.setText("");
                resultsscreen.setText("");
            }
        });

        //end clear listener
        CalcButton.addActionListener(new ActionListener() {
            private int counter;

            @Override
            public void actionPerformed(ActionEvent e) {
                String mymy[];
                counter++;
                String hoursC;
                String name;
                Double total;
                String wageC;
                name = EmployeeNameTexfield.getText();
                wageC = wagetextfield.getText();
                hoursC = HoursWorkedtextfield.getText();
                total = Double.parseDouble(hoursC) * Double.parseDouble(wageC);
                departmentresultsLabel.setText((String) departmentsV.getSelectedItem());
                String text = name + "'s" + " weekly pay is: $" + total + "..." + "Department:      " + departmentsV.getSelectedItem();
                //  resultsscreen.append(
                // name +"'s"+" weekly pay is: $" + total + "..." + "Department:                      "+departmentsV.getSelectedItem());
                resultsHold = new ArrayList<>();
                resultsHold.add(text);
                //resultsHold.set(counter,text);
                // line= new ArrayList<>();
                line.add(counter, resultsHold);
                // System.out.println(line.size());
                // if(resultsHold.size()>0){
                System.out.println(resultsHold.size());
                resultsscreen.append(resultsHold.toString());
                // }
                System.out.println(counter);
                EmployeeNameTexfield.setText("");
                wagetextfield.setText("");
                HoursWorkedtextfield.setText("");
                resultsscreen.setText("");
                //resultsHold.add(name);
                //resultsHold.add(wageC);
                // resultsHold.add(hoursC);
                // resultsHold.add(total.toString());
                // resultsHold.add((String) departmentsV.getSelectedItem());
                //line.set(i, resultsHold.get(i));
                // line.add(resultsHold);
                //  System.out.println(line);
                resultsscreen.append(line.toString());
            }
        });
        //event listeners
        myExitButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                //exit program
                System.exit(0);
            }
        });
        seeAll.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                for (int i = 0; i < line.size(); i++) {
                    resultsscreen.append(line.get(i).toString());
                    System.out.println(line.get(i));
                    //System.out.println(line.size());
                }
            }
        });
    }

    public static void main(String[] args) {
        Container guiwindow = new Container();
        guiwindow.ShowWindow();
    }

    public void ShowWindow() {
        this.setDefaultCloseOperation(EXIT_ON_CLOSE);
        this.setBounds(100, 100, 400, 300);
        this.setVisible(true);
    }
}
公共类容器扩展JFrame{
ArrayList resultsHold=新建ArrayList();
ArrayList行=新的ArrayList();
//私有字符串[]resultsHold;
私人最终JLabel EmployeeNamelabel;
私人最终JLabel工时标签;
私人终审法院;
私人最终JLabel emptycell;
私人最终JLabel下注标签;
私人最终JLabel部门结果标签;
私人最终JTextField员工Ametextfield;
私人最终JTextField小时workedtextfield;
私有最终JTextField-wagetextfield;
私人最终JTextArea结果屏幕;
公共按钮seeAll;
公共JButton按钮;
公共按钮CalcButton;
公共按钮ClearButton;
JPanel中心面板;
JPanel按钮面板;
JPanel textfieldPanel;
JPanel myresultsPanel;
公共容器(){
超级(“工资计划”);
字符串[]部门={“选项1”、“选项2”、“选项3”,
“选择4”、“选择5”、“选择6”};
最终JCOMBOX部门SV=新JCOMBOX(部门);
部门SV.setVisible(真);
getContentPane().setLayout(新的GridLayout(4,5,8,8));
//创建文本字段、标签和按钮
emptycell=新的JLabel(“”);
departmentresultsLabel=新的JLabel();
EmployeeNamelabel=新的JLabel(“名字”);
工时标签=新的JLabel(“工时”);
wageLabel=新的JLabel(“工资”);
部门=新的JLabel(“部门”);
EmployeeNameTexfield=新的JTextField(5);
HoursWorkedtextfield=新的JTextField(5);
wagetextfield=新的JTextField(5);
结果屏幕=新的JTextArea(20,50);
myExitButton=新的JButton(“退出”);
myExitButton.setSize(新尺寸(10,10));
CalcButton=新的JButton(“Calc”);
CalcButton.setSize(新尺寸(10,10));
ClearButton=新的JButton(“Clear”);
ClearButton.setSize(新尺寸(10,10));
seeAll=新的JButton(“查看所有结果”);
参见所有设置尺寸(新尺寸(10,10));
//添加标签
centerPanel=新的JPanel();
buttonPanel=新的JPanel();
textfieldPanel=newjpanel();
myresultsPanel=newJPanel();
setLayout(新的GridLayout(0,4,8,8));
添加(EmployeeNamelabel);
centerPanel.add(小时工作标签);
中心面板。添加(标签);
centerPanel.add(部门);
//添加文本字段
setLayout(新的GridLayout(0,4,8,8));
textfieldPanel.add(EmployeeNameTexfield);
textfieldPanel.add(HoursWorkedtextfield);
textfieldPanel.add(wagetextfield);
textfieldPanel.add(部门SV);
//将按钮添加到面板
setLayout(新的GridLayout(0,4,8,8));
按钮面板。添加(参见全部);
buttonPanel.add(MyExit按钮);
按钮面板添加(CalcButton);
按钮面板。添加(ClearButton);
setLayout(新的GridLayout(0,1,8,8));
myresultsPanel.add(emptycell);
添加(结果屏幕);
myresultsPanel.add(emptycell);
myresultsPanel.add(emptycell);
getContentPane().add(中心面板,BorderLayout.NORTH);
getContentPane().add(textfieldPanel,BorderLayout.NORTH);
getContentPane().add(buttonPanel,BorderLayout.NORTH);
getContentPane().add(myresultsPanel,BorderLayout.NORTH);
//清除按钮操作事件侦听器
ClearButton.addActionListener(新ActionListener(){
@凌驾
已执行的公共无效操作(操作事件e){
EmployeeNameTexfield.setText(“”);
wagetextfield.setText(“”);
HoursWorkedtextfield.setText(“”);
resultsscreen.setText(“”);
}
});
//结束清除侦听器
addActionListener(新ActionListener(){
专用int计数器;
@凌驾
已执行的公共无效操作(操作事件e){
字符串mymy[];
计数器++;
字符串小时数c;
字符串名;
双倍总数;
字符串wageC;
name=EmployeeNameTexfield.getText();
wageC=wagetextfield.getText();
hoursC=HoursWorkedtextfield.getText();
总计=Double.parseDouble(小时数)*Double.parseDouble(瓦赫数);
departmentresultsLabel.setText((字符串)departmentsV.getSelectedItem());
String text=name+“'的“+”周工资为:$”+总计+“…”+”部门:“+部门SV.getSelectedItem();
//resultsscreen.append(
//name+“'的“+”周工资为:$”+总计+“…”+”部门:“+departmentsV.getSelectedItem());
resultsHold=新建ArrayList();
resultsHold.add(文本);
//resultsHold.set(计数器,文本);
//line=新的ArrayList();
行。添加(计数器、结果保持);
//System.out.println(line.size());
resultsHold = new ArrayList<>();
resultsHold.add(text);