2016-12-15 2 views
0

Je n'arrive pas à comprendre ce qui ne va pas.JComboBox ne donne pas l'index

J'ai un JFrame, avec JTextFields et JComboBoxe s. Quand je pousse un bouton, il doit prendre les valeurs du JTextField s et les passer à l'une des méthodes, qui est choisie dans le JComboBox, mais je ne peux pas obtenir l'index des éléments dans le JComboBox.

Voici mon code:

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, "Введите корректные данные"); 
      } 
     } 
} 

Il est faux dans:

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

Le code que vous avez posté semble raisonnable donc le problème est probablement ailleurs dans votre code. Publiez un [mcve] approprié qui démontre le problème et publiez ce code sur le forum. C'est créer un exemple simple avec un cadre, une zone de liste déroulante et un bouton. Lorsque vous cliquez sur le bouton, l'index sélectionné s'affiche. Une fois que vous avez compris l'utilisation correcte, vous déboguez votre application réelle pour voir où se situe le problème. – camickr

+0

J'ai essayé quelque chose de similaire à vous, mais pour moi cela fonctionne totalement bien. mon code: 'JComboBox t1 = new JComboBox(); \t \t t1.addItem ("test"); \t \t t1.addItem ("tsds"); \t \t t1.addItem ("tesadfds"); \t \t t1.addKeyListener (nouveau KeyAdapter() { \t \t \t @Override \t \t \t public void keyPressed (KeyEvent e) { \t \t \t \t if (e.getKeyCode() == KeyEvent.VK_ENTER) { \t \t \t \t \t élément de Integer = (entier) t1.getSelectedIndex(); \t \t \t \t \t JOptionPane.showMessageD ialog (null, élément); \t \t \t \t} \t \t \t} \t \t}); ' se rappeler que l'indice commence à 0 pas 1 – XtremeBaumer

Répondre

0

Merci pour les réponses. Mais il est faux que j'essaie d'utiliser {Listener} pour {ComboBox} dans un autre {Listener}. J'ai fait un {Listener} spécial pour {JComboBox}, et cela a du travail. Cordialement))