2016-12-15 2 views
0

Ich kann nicht verstehen, was los ist.JComboBox gibt nicht den Index

Ich habe eine JFrame, mit JTextFields und JComboBoxe s. Wenn ich einen Knopf drücke, muss er die Werte von JTextFields nehmen und sie an eine der Methoden übergeben, die im JComboBox gewählt wird, aber ich kann den Index der Einzelteile innerhalb JComboBox nicht erhalten.

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

Es ist falsch, in:

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

Der Code, den Sie geschrieben haben, sieht vernünftig aus, so dass das Problem wahrscheinlich woanders in Ihrem Code ist. Poste ein korrektes [mcve], das das Problem demonstriert und poste diesen Code im Forum. Das ist ein einfaches Beispiel mit einem Rahmen, einem Kombinationsfeld und einer Schaltfläche. Wenn Sie auf die Schaltfläche klicken, wird der ausgewählte Index angezeigt. Sobald Sie die richtige Verwendung verstanden haben, debuggen Sie Ihre reale Anwendung, um zu sehen, wo das Problem liegt. – camickr

+0

Ich habe etwas ähnliches versucht, aber für mich funktioniert es völlig in Ordnung. Mein Code: 'JComboBox t1 = new JComboBox(); \t \t t1.addItem ("Test"); \t \t t1.addItem ("tsds"); \t \t t1.addItem ("tesadfds"); \t \t t1.addKeyListener (neu 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 item = Integer (Ganzzahl) t1.getSelectedIndex(); \t \t \t \t \t JOptionPane.showMessageD ialog (null, Artikel); \t \t \t \t} \t \t \t} \t \t}); ' erinnern, dass der Index bei 0 beginnt nicht bei 1 – XtremeBaumer

Antwort

0

Danke für Antworten. Aber es ist falsch, dass ich {Listener} für {ComboBox} in einem anderen {Listener} verwende. Ich habe einen speziellen {Listener} für {JComboBox} erstellt, und das funktioniert. Mit freundlichen Grüßen))