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);