2016-12-15 63 views
0

我不明白是什么问题。JComboBox不给索引

我有一个JFrame,与JTextFieldsJComboBoxe s。当我按下一个按钮时,它必须从JTextField s中取值,并将它们传递给JComboBox中选择的其中一种方法,但我无法获得JComboBox中项目的索引。

这里是我的代码:

public class eHandler implements ActionListener { 

    public void actionPerformed(ActionEvent e) { 

     try { 

      if (e.getSource() == esc) { 
       bx.setText(null); 
       by.setText(null); 
       bt0.setText(null); 
       setVisible(false); 
       window window = new window("Расчет напряжений"); 
       window.setVisible(true); 
       window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
       window.setSize(600, 650); 
      } 
      if (e.getSource() == count) { 
       double x = Double.parseDouble(bx.getText()); 
       double y = Double.parseDouble(by.getText()); 
       double t0 = Double.parseDouble(bt0.getText()); 


       Integer item = (Integer)ras.getSelectedIndex(); 
       JOptionPane.showMessageDialog(null, item); 


         if (item == 0) { 
          double tens = linear(x, y, t0); 
          ltr.setText("Напряжение на данном периоде: " + tens + " Мпа"); 
         } 
         if (item == 1) { 
          double tens = squard(x, y, t0); 
          ltr.setText("Напряжение на данном периоде: " + tens + " Мпа"); 
         } 

        } 

      }//try 
     catch(Exception ex){ 
       JOptionPane.showMessageDialog(null, "Введите корректные данные"); 
      } 
     } 
} 

这是错误的:

Integer item = (Integer)ras.getSelectedIndex(); 
JOptionPane.showMessageDialog(null, item); 
+4

您发布的代码看起来很合理,所以问题可能在代码中的其他地方。发布一个适当的[mcve]来展示问题并在论坛中发布此代码。这是一个框架,一个组合框和一个按钮创建一个简单的例子。当你点击按钮时,它将显示选定的索引。一旦你了解了正确的用法,你就可以调试你的真实应用程序,看看问题出在哪里。 – camickr

+0

我试过类似于你的东西,但对我来说它的工作原理完全正常。我的代码:'JComboBox t1 = new JComboBox(); \t \t t1.addItem(“test”); \t \t t1.addItem(“tsds”); \t \t t1.addItem(“tesadfds”); \t \t t1.addKeyListener(新KeyAdapter(){ \t \t \t @Override \t \t \t公共无效的keyPressed(KeyEvent的发送){ \t \t \t \t如果(e.getKeyCode()== KeyEvent.VK_ENTER){ \t \t \t \t \t整数项=(整数)t1.getSelectedIndex(); \t \t \t \t \t JOptionPane.showMessageD ialog(null,item); \t \t \t \t} \t \t \t} \t \t});' 记住的是,索引从0开始不为1 – XtremeBaumer

回答

0

感谢答案。但是我尝试在其他的{Listener}中使用{Listener}作为{ComboBox}是错误的。我为{JComboBox}制作了一个特殊的{Listener},并且有效。祝好))