我正在构建一个表单,用户可以在其中输入员工信息并将其显示在textarea字段中,但我也有一个显示全部或“看不见”按钮,我无法工作。 \Java与JPanel
我节省保存到一个数组每次提交称为resultshold
,然后该数组保存到一个数组称为line
但两个数组只持有一个提交而不是多个 - 我测试了它,每一次我显示的内容数组'行'它只显示最后一次提交意味着它不存储多次提交每次单击计算按钮 - 我添加了一个计数器行数组来设置商店“文本”变量的位置,但它只保存一个而不是多少 - 有人可以帮助或引导我在正确的方向 - 下面是我的代码。
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);
}
}
@Zhuinden格式是好的,但请不要” t删除其他更改 – msrd0 2014-10-11 11:53:54
@ msrd0这是并行编辑的问题,无法合并 – EpicPandaForce 2014-10-11 11:54:28
您的arraylist称为'line'缺少模板参数,并且您正在使用原始类型 – EpicPandaForce 2014-10-11 12:01:33