Ajuda - Help

Pessoal,

Por favor, alguém de ajuda urgente…
preciso passar outra array para uma Jlist, quando o usuário escolhe uma opção num combobox…

várias pessoas jah me disseram que o código n funciona como eu fiz… mas eu não consigo fazer…

Help…


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


class gui extends JFrame 
{ 

private JLabel lblfornecedora,lblmodelo,lblforma,lblop1,lblcarro,lblpreco,lblop; 
private JLabel lblvvenda,lblvprest,lblvdesc,lblvtotal; 
private JTextField txtCarro, txtpreco,txtop,txtvvenda,txtvprest,txtvdesc,txtvtotal; 
private JButton btnCalcular,btnLimpar,btnSair; 
public JComboBox cbFornecedora; 
private JPanel pnlNorte1,pnlSul1,pnlCentro1,pnl1,pnl2,pnlNorte2,pnlSul2; 
private Container C; 
private JRadioButton radio1,radio2,radio3,radio4; 
private JCheckBox check1,check2,check3,check4; 
public JList list1,list2,list3; 
private ButtonGroup radiogrupo; 
private DefaultListModel listModel; 

gui() 
{ 

listModel = new DefaultListModel(); 
String Fornecedoras[]={"","Volkswagen","Chevrolet","Fiat","Ford"}; 
String Volkswagen[]={"","Gol 1000","Gol CL 1.6","Golf GL 1.6","Parati 1.0 Mi 16v","Apollo GL", 
"Logus CL 1.8","Pollo Classic","Quantum CL 1.8","Quantum GL 2.0"}; 
String Fiat[]={"","Palio ED","Elba Weekend","Tipo 1.6","Marea"}; 
int Volksprecos[]={12750,17527,27500,19500,20000,15745,13000,19500,17000}; 

pnlNorte1=new JPanel(new GridLayout(2,2)); 
pnlNorte2=new JPanel(new GridLayout(7,2)); 

pnlSul1=new JPanel(new GridLayout(5,1)); 
pnlCentro1=new JPanel(new GridLayout(6,1)); 
setTitle("Catálogo de Vendas de Carros"); 
setSize(700,400); 
C=getContentPane(); 
C.setLayout(new GridLayout(1,2)); 


pnl1=new JPanel(); 
pnl1.setLayout(new BorderLayout()); 
pnl1.setBorder(new javax.swing.border.TitledBorder("Dados do Carro")); 
pnl1.add(pnlNorte1,BorderLayout.NORTH); 
pnl1.add(pnlSul1,BorderLayout.SOUTH); 
pnl1.add(pnlCentro1,BorderLayout.CENTER); 

pnlNorte1.add(lblfornecedora=new JLabel(" Fornecedora")); 
pnlNorte1.add(lblmodelo=new JLabel(" Modelo")); 
pnlNorte1.add(cbFornecedora = new JComboBox(Fornecedoras)); 
pnlNorte1.add(new list(Fornecedoras)); 
// list2 = new JList(Fiat); 
list1.setVisibleRowCount(3); //define o numero de linhas visíveis 
pnlNorte1.add(new JScrollPane(list1));//adiciona uma barra de rolagem ao list 
list1.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); //o usuário seleciona apenas uma opção 
//pnlNorte1.add(listModel); 
cbFornecedora.setMaximumRowCount(3); 
cbFornecedora.addItemListener( 

new ItemListener() 
{ 
public void itemStateChanged(ItemEvent event) 
{ 

String Fornecedoras[]={"","Volkswagen","Chevrolet","Fiat","Ford"}; 
String Volkswagen[]={"Gol 1000","Gol CL 1.6","Golf GL 1.6","Parati 1.0 Mi 16v","Apollo GL", 
"Logus CL 1.8","Pollo Classic","Quantum CL 1.8","Quantum GL 2.0"}; 
String Fiat[]={"Palio ED","Elba Weekend","Tipo 1.6","Marea"}; 


if(event.getStateChange()==ItemEvent.SELECTED) 
{ 
if(cbFornecedora.getSelectedIndex() == 1) 
{ 


pnlNorte1.add(new JList(Fiat)); 
System.out.println("mudou"); 
} 

else 
{ 
if(cbFornecedora.getSelectedIndex()==1) 
{ 
// pnlNorte1.add(list1 = new JList(Fiat));// aqui o código n funciona, passa direto... 
System.out.println("mudou2"); 
} 
else 
list1=new JList(Fornecedoras); 
} 
} 
} 

} 
); 

radiogrupo = new ButtonGroup(); 
pnlSul1.add(lblforma=new JLabel("Forma de Pagamento")); 
pnlSul1.add(radio1=new JRadioButton("a vista")); 
pnlSul1.add(radio2=new JRadioButton("a prazo - 12 Meses")); 
pnlSul1.add(radio3=new JRadioButton("a prazo - 24 Meses")); 
pnlSul1.add(radio4=new JRadioButton("a prazo - 36 Meses")); 

radiogrupo.add(radio1); 
radiogrupo.add(radio2); 
radiogrupo.add(radio3); 
radiogrupo.add(radio4); 

pnlCentro1.add(lblop1=new JLabel("Opcionais")); 
pnlCentro1.add(check1=new JCheckBox("Direção Hidráulica - R$ 2.700,00")); 
pnlCentro1.add(check2=new JCheckBox("Air Bag - R$ 3.200,00")); 
pnlCentro1.add(check3=new JCheckBox("4 Portas - R$ 850,00")); 
pnlCentro1.add(check4=new JCheckBox("Ar condicionado - R$ 1.850,00")); 

C.add(pnl1); 




pnl2=new JPanel(); 
pnlSul2=new JPanel(new FlowLayout()); 
pnl2.setLayout(new BorderLayout()); 
pnl2.setBorder(new javax.swing.border.TitledBorder("Dados da Venda")); 
pnl2.add(pnlNorte2,BorderLayout.NORTH); 
pnl2.add(pnlSul2,BorderLayout.SOUTH); 

pnlNorte2.add(lblcarro=new JLabel("Carro::")); 
pnlNorte2.add(txtCarro=new JTextField()); 
pnlNorte2.add(lblpreco=new JLabel("Preço::")); 
pnlNorte2.add(txtpreco=new JTextField()); 
pnlNorte2.add(lblop=new JLabel("Opcionais::")); 
pnlNorte2.add(txtop=new JTextField()); 
pnlNorte2.add(lblvvenda=new JLabel("Valor da Venda::")); 
pnlNorte2.add(txtvvenda=new JTextField()); 
pnlNorte2.add(lblvprest=new JLabel("Valor da Prestação::")); 
pnlNorte2.add(txtvprest=new JTextField()); 
pnlNorte2.add(lblvdesc=new JLabel("Valor do Desconto::")); 
pnlNorte2.add(txtvdesc=new JTextField()); 
pnlNorte2.add(lblvtotal=new JLabel("Valor Total::")); 
pnlNorte2.add(txtvtotal=new JTextField()); 

pnlSul2.add(btnCalcular=new JButton("Calcular")); 
pnlSul2.add(btnLimpar=new JButton("Limpar")); 
pnlSul2.add(btnSair=new JButton("Sair")); 
C.add(pnl2); 
pnl2.add(pnlNorte2); 


} 
} 

class Aplic 
{ 
public static void main(String args[]) 
{ 
gui DlgGui = new gui(); 
DlgGui.show(); 
} 
} 

Obrigada…
:???:

geralmente eu não ajudo quem posta um código do programa inteiro, mas como vc é mulher vo abrir uma exceção

faça um tratamento de evento: na hora que o usuário clica no combo box, vc testa qual elemento ele selecionou.

para passar uma array para um JList vc vai ter que fazer na marra…
transformar cada elemento da array em uma string, adicionando cada String criada para o JList…

Eu sei que talvez esteja pedindo demais…
mas estou sofrendo para fazer isso…

será que vc poderia me dar um exemplo de código?

Obrigada :oops:

fernanda, primeiramente bem-vinda ao Portal e a comunidade! :viva: … não esquenta com o microfilo não q ele é meio anti-social as vezes mesmo, heheahaeh :lol: , bem… olha só, primeiro uma dica: idente seu código antes de postá-lo, fica mais fácil pra quem quiser te ajudar, ler ele e achar algum problema (e se nao tiver identando ao programar, eu reforço essa dica!)… Bem, ai vai um exemplo de tratamento de evendo de um JComboBox, o programa é simples, onde tem arquivos .jpg são imagens qualquer no diretorio corrente, qnd tu seleciona um nome no combo, o programinha exibe essa imagem (claro, tu precisa ter elas, no caso, use umas q tu tiver ai por demonstração):

[code]import java.awt.;
import java.awt.event.
;
import javax.swing.*;

public class Bele extends JFrame {

private JComboBox combo;
private JLabel label;

private String imagens[] = {
"bele cara de santa.jpg",
"bele de perfil.jpg",
"bele de piercing.jpg",
"bele de raiba 1.jpg",
"bele de raiba 2.jpg",
"bele dos zoio verde.jpg",
"bele e sua belera.jpg",
"bele fuck you.jpg",
"bele linguao.jpg",
"bele pensante.jpg",
"bele sorriso colgate.jpg",
"bob belera.jpg"
};

private Icon icones[] = {
new ImageIcon( imagens[0] ),
new ImageIcon( imagens[1] ),
new ImageIcon( imagens[2] ),
new ImageIcon( imagens[3] ),
new ImageIcon( imagens[4] ),
new ImageIcon( imagens[5] ),
new ImageIcon( imagens[6] ),
new ImageIcon( imagens[7] ),
new ImageIcon( imagens[8] ),
new ImageIcon( imagens[9] ),
new ImageIcon( imagens[10] ),
new ImageIcon( imagens[11] )
};

public Bele()
{
super( "Bele e suas faces" );

  Container box = getContentPane();
  box.setLayout( new FlowLayout() );

  combo = new JComboBox( imagens );
  combo.setMaximumRowCount(7);

  combo.addItemListener(

     new ItemListener() {

        public void itemStateChanged( ItemEvent e )
        {
           if ( e.getStateChange() == ItemEvent.SELECTED )
              label.setIcon( icones[ combo.getSelectedIndex() ] );
        }

     }

  );

  box.add( combo );

  label = new JLabel( icones[0] );
  box.add( label );

  setSize( 350, 400 );
  setVisible( true );

}

public static void main( String args[] )
{
Bele win = new Bele();

  win.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );

}

}[/code]

Obrigada pela recepção…

Bem, com imagens realmente o código funciona…
mas o que resolveu o meu problema foi algo como
DefaultListModel, eu ainda n entendi direito pra que ele serve mas funcionou…

como eu faço para passar para o texto de um JTextField o conteúdo selecionado de um list?
é algo assim??

public void valueChanged(ListSelectionEvent event)
{
txtCarro = list1.getSelectedIndex();
}

e por exemplo, fazer uma soma de alguns valores e somar com o que jah havia no Text… e depois exibir…
eu tentei fazer e não consegui eliminar o erro de incompatibilidade…

na verdade esse é um trabalho da faculdade que eu estou fazendo… e infelizmente ainda estou apanhando bastante…

Aguardo resposta…
Obrigada

[quote=“matheus”] :viva: … não esquenta com o microfilo não q ele é meio anti-social as vezes mesmo, heheahaeh :lol:
[/quote]

:bravo: :bravo: :bravo: :bravo: :bravo: :bravo: :bravo: :bravo: :bravo: :bravo: :bravo: :bravo: :bravo: :bravo: :bravo: :bravo:

[quote=“microfilo”][quote=“matheus”] :viva: … não esquenta com o microfilo não q ele é meio anti-social as vezes mesmo, heheahaeh :lol:
[/quote]

:bravo: :bravo: :bravo: :bravo: :bravo: :bravo: :bravo: :bravo: :bravo: :bravo: :bravo: :bravo: :bravo: :bravo: :bravo: :bravo:[/quote]

“TA NEVOSO VAI PESCAR” :lol: :skol:

não, é algo assim:

txtCarro.setText( list1.getSelectedIndex().getText() );

só não sei se o List tem um método getText(), nunca mexi nele… mas deve ser algo parecido… :slight_smile:

bem, tu pode fazer algo como (sento text um JTextField com algum valor):

[code]int valor = Integer.parseInt(text.getText() );

valor += valorQueTuQuerSomar;

text.setText( valor );[/code]

de nada! :grin: