Urgente! duvida JComboBox

2 respostas
B

oi, estou com uma duvida na criação de um jcombobox.

public class ComboBox{
	  protected static final String Açucar = null;
	JComboBox combo;
	protected Choice ingrediente;
	  
	  
	  public static void main(String[] args) {
	  ComboBox b = new ComboBox();
	  }
	  
	  	public ComboBox(){
		  String valor = JOptionPane.showInputDialog(null, "Introduza a quantidade em gramas:");
		  final int X = Integer.parseInt(valor);
		  String ingredientes[] = {"---","Açucar","Farinha","Amido de Milho","Manteiga"};
		  JFrame frame = new JFrame("Conversor");
		  JPanel panel = new JPanel();
		  combo = new JComboBox(ingredientes);
		  panel.add(combo);
		  frame.add(panel);
		  combo.addItemListener(new ItemListener(){
			  
				  public void itemStateChanged(ItemEvent ie){
					 
			   
				  }});
	  
	  frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	  frame.setSize(300,300);
	  frame.setLocation (450, 250);
	  frame.setVisible(true);
	  
	}

}

Gostava de saber como pegar no valor obtido no joptionpane, e dividi-lo por outro valor quando alguma opção da jcombobox é escolhida. Exemplo:
valor obtido- 500, opção selecionada "açucar" então resultado=500/210.

obrigada!

2 Respostas

B

se for so esse itens mesmo vc pode pegar o valor do combo com o método “getSelectedItem();”
e fazer us ifs.

Uma solução mais elegante e tambem para muitos itens vc poder criar um HashMap<String, double> e associar a sua string “açucar” ao valor “210” assim

logo depois da definição de String ingredientes[]

String ingredientes[] = {"---","Açucar","Farinha","Amido de Milho","Manteiga"}; 
hashMap = new HashMap<String, Double>();
double valores[] = {210, 220, 223, 240}; // uma posição a menos em relação ao vetor ingredientes
for (int i=1; i<ingredientes.length; i++) {
	hashMap.put(ingredientes[i], valores[i-1]);
}

e dentro do itemStateChanged(ItemEvent ie) assim

String item = (String) combo.getSelectedItem();
double itemValor = hashMap.get(item); //recupera o valor associado ao item
double res = X/itemValor;
JOptionPane.showMessageDialog(null, "Resultadao"+res, "Calculo efetuado", 
			JOptionPane.INFORMATION_MESSAGE);
B

muito obrigado!

Criado 28 de maio de 2015
Ultima resposta 28 de mai. de 2015
Respostas 2
Participantes 2