2011-12-12 44 views
0

每次我点击我的代码上的提交按钮时,它会给我每小时的字符串值?即使我的JComboBox中的项目具有每周的当前值?我该如何解决这个问题?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中使用的当前值?

+0

请学习java的命名约定并坚持他们 – kleopatra

回答

2

你可以改变你的代码如下:

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 ...并按照完成的方式初始化构造函数中的所有内容。

+0

那我该怎么做呢?或者什么是正确的方法呢? – user962206

+0

在会议中:(现在,它应该需要一些时间来exmplain。但作为一个开始,这是探索 – Kowser

+0

okey没关系,我会等待,我没有太多的想法与GUI的我刚刚开始 – user962206