Estou com algumas dificuldades em JList, como adicionar e remover algo da lista.
Se repara no meu código ele adiciona o Nome em uma linha, Sobrenome em outra e a Idade também, alguém sabe como colocar o Nome, Sobrenome e Idade na mesma linha e como remover a linha selecionada?
[code]mport javax.swing.*;
import java.awt.;
import java.awt.event.;
public class SwingExemplo3
extends JFrame
implements ActionListener {
private JLabel lblNome = new JLabel("Nome");
private JTextField txtNome = new JTextField(“Zeh”);
private JLabel lblSobreNome = new JLabel(“Sobre Nome”);
private JTextField txtSobreNome = new JTextField(“Silva”);
private JLabel lblIdade = new JLabel(“Idade”);
private JTextField txtIdade = new JTextField(“20”);
private JPanel pnlCampos = null; //painel Campos
private JPanel pnlBotoes = null; //painel Campos
JList lista;
JButton btAdicionar = new JButton(“Adicionar”);
JButton btRemover = new JButton(“Remover”);
JPanel listPanel = new JPanel(); //Painel para lista
JScrollPane scroll;
DefaultListModel listModel = new DefaultListModel();
JPanel dadosSelecionados = new JPanel( new BorderLayout() );
public SwingExemplo3() {
setTitle("Vendas"); //titulo da janela
// Adiciona o botao no south
getPnlBotoes().add(getBtAdicionar(), BorderLayout.WEST);
getPnlBotoes().add(getBtRemover(), BorderLayout.CENTER);
getContentPane().add(getPnlBotoes(), BorderLayout.SOUTH);
getContentPane().add(getPnlCampos(), BorderLayout.NORTH); //coloca o pnlCampos no Norte
getContentPane().add(getScroll(), BorderLayout.CENTER );
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(500,400);
show();
}
public JScrollPane getScroll(){
lista = new JList(listModel);
lista.setVisibleRowCount(4);
scroll = new JScrollPane(lista);
return scroll;
}
public JPanel getPnlCampos(){
if(pnlCampos==null){
pnlCampos = new JPanel(new GridLayout(3, 2)); //divide o painel em uma "matriz" 1,2
pnlCampos.add(lblNome); //o painel Campos recebe lblNome
pnlCampos.add(txtNome); //o painel Campos recebe txtNome
pnlCampos.add(lblSobreNome); //o painel Campos recebe lblNome
pnlCampos.add(txtSobreNome); //o painel Campos recebe txtNome
pnlCampos.add(lblIdade); //o painel Campos recebe lblNome
pnlCampos.add(txtIdade); //o painel Campos recebe txtNome
}
return pnlCampos;
}
public JPanel getPnlBotoes() {
if(pnlBotoes==null){
pnlBotoes = new JPanel();
}
return pnlBotoes;
}
public JButton getBtAdicionar(){
btAdicionar.addActionListener(this);
return btAdicionar;
}
public JButton getBtRemover(){
btRemover.removeActionListener(this);
return btRemover;
}
public void actionPerformed(ActionEvent e) {
if(e.getActionCommand().equals("Adicionar"))
{
/*Se repara no meu código ele adiciona o Nome em uma linha,
* Sobrenome em outra e a Idade também, alguém sabe como colocar o Nome,
* Sobrenome e Idade na mesma linha */
listModel.addElement(txtNome.getText());
listModel.addElement(txtSobreNome.getText());
listModel.addElement(txtIdade.getText());
getContentPane().invalidate();
getContentPane().validate();
}
else
if(e.getActionCommand().equals("Remover"))
{
//Aqui estou tentando remover alguma linha selecionada, + nao deu certo
//listModel.removeElement(lista.getListSelectionListeners());
//listModel.removeElement(txtNome.getText());
//lista.getListSelectionListeners();
//listModel.removeElement(lista.getSelectedValue());
listModel.remove(lista.getSelectedIndex());
}
}
public static void main(String args[]) {
SwingExemplo3 janela = new SwingExemplo3();
}
}
[/code]
Ass.: Adriano Barbosa
adrianosb@gmail.com