2011-07-11 60 views
4

如何將getSelectedItem()從JComboBox轉換爲int或其他任何東西?即使轉換爲字符串不起作用。 Eclipse說「類型不匹配:無法從Object轉換爲String」或int或其他。任何方式來實現這一目標?將getSelectedItem()從JComboBox轉換爲int或任何其他東西

+4

如果你不明白爲什麼你不能將一個'Object'投入到一個原語中,那麼你需要花一些時間來理解Java的基礎知識...... – mre

+1

嘗試'getSelectedItem.toString()' – Logan

回答

0

您可以將它投射到(String)

String value = (String) comboBox.getSelectedItem(); 
3

答案真的取決於你放在什麼樣的項目進入JComboBox開始。無論你投入什麼(例如,使用addItem()insertItemAt()),都可以從中獲得。

5

它在這裏用對象工作得很好。

import java.awt.*; 
import javax.swing.*; 

class TestCombo { 

    public static void main(String[] args) { 
     SwingUtilities.invokeLater(new Runnable() { 
      public void run() { 
       Integer[] numbers = {1,2,3}; 
       String[] names = {"Ben", "Jill", "Peter"}; 
       JComboBox numberCombo = new JComboBox(numbers); 
       JComboBox nameCombo = new JComboBox(names); 
       JPanel p = new JPanel(new GridLayout(0,1,3,3)); 
       p.add(numberCombo); 
       p.add(nameCombo); 

       JOptionPane.showMessageDialog(null, p); 

       Integer chosenNumber = (Integer)numberCombo.getSelectedItem(); 
       System.out.println("Chosen Number: " + chosenNumber); 
       String chosenName = (String)nameCombo.getSelectedItem(); 
       System.out.println("Chosen Name: " + chosenName); 
      } 
     }); 
    } 
} 

典型輸出:

Chosen Number: 2 
Chosen Name: Peter 
Press any key to continue . . . 

我與LBFF評論非常同意。你需要回到基礎。

+0

Doesn' t與Enums合作 – Populus

+0

您的回答對我有用,我會說很棒的工作 – humphrey

0
//compiled in netbeans 

import java.awt.GridLayout;<br> 
import javax.swing.JComboBox;<br> 
import javax.swing.JOptionPane;<br> 
import javax.swing.JPanel;<br> 
import javax.swing.SwingUtilities;<br> 

class TestCombo { 

    public static void main(String[] args) { 
     SwingUtilities.invokeLater(new Runnable() { 
      @Override 
      public void run() { 
       Integer[] numbers = {1,2,3}; 
       String[] names = {"Ben", "Jill", "Peter"}; 
       JComboBox numberCombo = new JComboBox(numbers); 
       JComboBox nameCombo = new JComboBox(names); 
       JPanel p = new JPanel(new GridLayout(0,1,3,3)); 
       p.add(numberCombo); 
       p.add(nameCombo); 

       JOptionPane.showMessageDialog(null, p); 

       Integer chosenNumber = (Integer)numberCombo.getSelectedItem(); 
       System.out.println("Chosen Number: " + chosenNumber); 
       String chosenName = (String)nameCombo.getSelectedItem(); 
       System.out.println("Chosen Name: " + chosenName); 
      } 
     }); 
    } 
} 
0
String value = comboBox.getSelectedItem(comboBox.getSelectedIndex()); 

任何類型強制轉換是必需的。