gpt4 book ai didi

java - JComboBox 当前使用的值

转载 作者:行者123 更新时间:2023-12-02 08:03:55 25 4
gpt4 key购买 nike

为什么每次我单击代码上的提交按钮时,它都会继续向我提供每小时的字符串值?即使我的 JComboBox 中的项目的当前值为每周?我该如何解决这个问题?

我的 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);
}
}

对于这里的处理程序来说,它是

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 中正在使用的当前值?

最佳答案

您可以按如下方式更改代码:

GenerateHandler generateHandler = new GenerateHandler(rateChooser);

private class GenerateHandler implements ActionListener{
JComboBox rateChooser;

public GenerateHandler(JComboBox rateChooser){
this.rateChooser = rateChooser;
}

public void actionPerformed(ActionEvent e) {
String Option =(String)rateChooser.getSelectedItem();
if("Hourly".equals(option)){
JOptionPane.showMessageDialog(null,option);
}else if("Weekly".equals(option)){
JOptionPane.showMessageDialog(null,option);
}
}
}
<小时/>

上面的代码将解决您的解决方案,但这不是扩展 JFrame 的好习惯,特别是 JSomething ...并按照完成的方式初始化构造函数中的所有内容。

关于java - JComboBox 当前使用的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8470735/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com