Opa,
E ai pessoal, beleza?
Estou tentando criar o seguinte aplicativo:
Um Frame contendo:
2 ComboBox
2 Buttons
1 Label
ComboBox 1:
Apresenta opções da String1[]
ComboBox 2:
Apresenta opções da String1[]
Button 1:
Adiciona a opção selecionada na ComboBox2 em uma String2[]
Label:
Lista a String2[] com os valores selecionados pela ComboBox2
Button 2:
Exibe uma janela de aviso exibindo a seguinte mensagem:
(Opção selecionada na ComboBox1) => String2[0] + String2[1] + String2[n]…
Deu pra ter uma idéia?
O usuário selecionará um valor na ComboBox1, e poderá selecionar vários valores da ComboBox2, selecionando a opção e clicando no Button1(Adicionar). As opções selecionadas são adicionadas em uma Array, e serão exibidas no Label, como uma lista, que vai sendo atualizada à partir que o usuário vai adicionando as opcões. E ao lado de cada opção adicionada, será exibido um botão (X), para removê-la da lista.
Ao clicar no Button2, o usúario visualiza um aviso, exibindo a opção selecionada na ComboBox1, e as opções selecionadas na ComboBox2.
Se alguém puder me dar alguma luz de como posso fazer isso.
Obrigado,
João Daniel
Rapaz, se for uma aplicação Desktop que você quer criar, a única dica que posso dizer é: Estude bastante o Swing ou AWT.
link 1
link 2
Pesquise no fórum também… existe muito material de estudo para tal!
Assim que fizer isso, poste as dúvidas/dificuldades que estiver encontrando.
Espero ter ajudado 
Pedro,
A aplicação é sim Desktop, mas minha dúvida não é exatamente na parte Swing ou AWT. Eu sei criar os ComboBoxes, colocá-los nos frames, etc.
Minha dúvida está na concepção da lógica de programação. Sou “amador” e sempre aprendi na marra, nunca estudei lógica pura de programação.
Minha dúvida está principalmente, em como fazer com que esta lista dos elementos selecionados se “atualize” cada vez que um elemento é adicionado.
1º) Para pegar o índice da linha selecionada no ComboBox use seuCombo.getSelectedIndex();
2º) Com o índice capturado, levante o valor da posição do vetor aplicado ao seu ComboBox. Ex:
String s = meuVetorDoCombo[seuCombo.getSelectedIndex()];
3º) Atualize o Label com o método seuLabel.setLabel(String s);. Se não quiser perder o valor anterior, antes de um seuLabel.getLabel(); e concactene com o valor da String s.
Para exibir mensagens, use javax.swing.JOptionPane.
Ajudou?
Espero ter ajudado! 
Pedro,
Ajudou muito sim! Hehe
Acho que vou conseguir aqui, mas qualquer coisa volto a te perguntar aqui! Hehe
Abraços
[code]package teste;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class TesteCombo extends JFrame{
String[] lista = {“um”, “dois”, “três”, “quatro”, “cinco”};
public String var1;
public String[] var2;
public int i = 0;
public TesteCombo() {
setTitle(“Teste Combo”);
setSize(500,200);
final Container cp = getContentPane();
cp.setLayout(new FlowLayout());
JComboBox cb1 = new JComboBox(lista);
final JComboBox cb2 = new JComboBox(lista);
JButton bAdicionar = new JButton(“Adicionar”);
JButton bExibe = new JButton(“Exibe”);
final JList lVari = new JList(var2);
cp.add(cb1);
cp.add(cb2);
cp.add(bAdicionar);
cp.add(bExibe);
bAdicionar.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e){
var2[i] = lista[cb2.getSelectedIndex()];
lVari.setListData(var2);
cp.add(lVari);
i++;
}
});
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main (String[] args) {
new TesteCombo().setVisible(true);
}
}
[/code]
Estou recebendo erros na linha 31… acredito que seja devido à definição ‘final’, que foi requisitada pelo Eclipse… Alguém sabe o erro aí?
OBS.: Ainda estou desenvolvendo o código, não escrevi as ações dos outros botões, apenas do adicionar.
Você precisa inicializar o vetor:
public String[] var2 = new String[quantidade];

Pois é… mas eu não sei de antemão quantos serão os itens da array.
Use DefaultListModel para o seu caso. :idea: Ex:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class TesteCombo extends JFrame{
JList lista;
String[] elementos = {"um", "dois", "três", "quatro", "cinco"};
JComboBox combo;
public TesteCombo() {
super("Teste List&Combo");
Container c = getContentPane();
c.setLayout(new FlowLayout(FlowLayout.LEFT));
DefaultListModel modelo = new DefaultListModel();
lista = new JList();
lista.setModel(modelo);
JButton bAdicionar = new JButton("Adicionar");
bAdicionar.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent e){
int valor = combo.getSelectedIndex();
((DefaultListModel)(lista.getModel())).addElement(elementos[valor]);
}
}
);
c.add(new JScrollPane(lista));
combo = new JComboBox(elementos);
c.add(combo);
c.add(bAdicionar);
setSize(350, 250);
setVisible(true);
}
public static void main(String args[]){
TesteCombo teste = new TesteCombo();
teste.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
