JComboBox 当前使用的值
为什么每次我单击代码上的提交按钮时,它都会不断地向我提供每小时的字符串值?即使我的 JComboBox 中的项目的当前值为每周?我该如何解决这个问题?
的代码
public class ComputeWindow extends JFrame{
private JLabel payRate,employeeID,payType,gWage;
private JTextField empRate,idTxt,gWageTxt;
private JComboBox rateChooser;
private JPanel panel;
private JButton generate;
public ComputeWindow(){
super("Gross Wage");
setSize(300, 150);
setLocationRelativeTo(null);
setVisible(true);
setDefaultCloseOperation(EXIT_ON_CLOSE);
String[] employeeType = {"Hourly","Bi Weekly","Weekly","Base"};
employeeID = new JLabel("Employee ID: ");
payRate = new JLabel("Employee Rate: ");
payType = new JLabel("Pay Type: ");
gWage = new JLabel("Gross Wage");
empRate = new JTextField(10);
idTxt = new JTextField(10);
gWageTxt = new JTextField(10);
generate = new JButton("Compute!");
rateChooser = new JComboBox(employeeType);
panel = new JPanel(new GridLayout(5,1));
panel.add(employeeID);
panel.add(idTxt);
panel.add(payRate);
panel.add(empRate);
panel.add(payType);
panel.add(rateChooser);
panel.add(gWage);
panel.add(gWageTxt);
panel.add(generate);
add(panel, BorderLayout.CENTER);
String Option =(String)rateChooser.getSelectedItem();
GenerateHandler generateHandler = new GenerateHandler();
generate.addActionListener(generateHandler);
generateHandler.setOption(Option);
}
}
我的 ComputeWindow和处理程序
private class GenerateHandler implements ActionListener{
String option;
public void setOption(String option){
this.option = option;
}
public void actionPerformed(ActionEvent e) {
if(option =="Hourly"){
JOptionPane.showMessageDialog(null,option);
}else if(option == "Weekly"){
JOptionPane.showMessageDialog(null,option);
}
}
}
}
有什么建议吗?我该如何解决这个问题?或者它会返回或显示我的 JComboBox 中正在使用的当前值?
How come each time I click the submit button on my code it keeps on giving me the hourly string value? even if the item in my JComboBox has the current value of weekly? how would I fix this?
The code for my ComputeWindow
public class ComputeWindow extends JFrame{
private JLabel payRate,employeeID,payType,gWage;
private JTextField empRate,idTxt,gWageTxt;
private JComboBox rateChooser;
private JPanel panel;
private JButton generate;
public ComputeWindow(){
super("Gross Wage");
setSize(300, 150);
setLocationRelativeTo(null);
setVisible(true);
setDefaultCloseOperation(EXIT_ON_CLOSE);
String[] employeeType = {"Hourly","Bi Weekly","Weekly","Base"};
employeeID = new JLabel("Employee ID: ");
payRate = new JLabel("Employee Rate: ");
payType = new JLabel("Pay Type: ");
gWage = new JLabel("Gross Wage");
empRate = new JTextField(10);
idTxt = new JTextField(10);
gWageTxt = new JTextField(10);
generate = new JButton("Compute!");
rateChooser = new JComboBox(employeeType);
panel = new JPanel(new GridLayout(5,1));
panel.add(employeeID);
panel.add(idTxt);
panel.add(payRate);
panel.add(empRate);
panel.add(payType);
panel.add(rateChooser);
panel.add(gWage);
panel.add(gWageTxt);
panel.add(generate);
add(panel, BorderLayout.CENTER);
String Option =(String)rateChooser.getSelectedItem();
GenerateHandler generateHandler = new GenerateHandler();
generate.addActionListener(generateHandler);
generateHandler.setOption(Option);
}
}
and for the handler here it is
private class GenerateHandler implements ActionListener{
String option;
public void setOption(String option){
this.option = option;
}
public void actionPerformed(ActionEvent e) {
if(option =="Hourly"){
JOptionPane.showMessageDialog(null,option);
}else if(option == "Weekly"){
JOptionPane.showMessageDialog(null,option);
}
}
}
}
any suggestions? on how would I fix this? or it will return or show me the current value that is being used in my JComboBox?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以按如下方式更改代码:
上面
的代码将解决您的解决方案,但这不是扩展 JFrame(特别是 JSomething ...)并按照完成方式初始化构造函数中的所有内容的好习惯。
You can change your code as follows:
and
Above code will solve your solution, but this is not a good practice to extend JFrame, specially JSomething ... and initialize everything in a constructor the way it is done.