Adicionando itens de um JList em um JTextArea

4 respostas
F

Boa noite pessoal, minha dúvida é a seguinte:
Como faço para adicionar os itens de uma JList em um JTextArea.
Tenho o seguinte código:

package View;

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

public class Sales extends JFrame implements ActionListener {

    Pacote Classic = new Pacote();
    Pacote Premium = new Pacote();
    JLabel lbl_cliente;
    JLabel lbl_pacote;
    JLabel lbl_produto;
    JLabel lbl_quarto;
    JLabel lbl_valor;
    JLabel lbl_total;
    JLabel lbl_nome;
    JTextField txt_cliente;
    JTextField txt_nomeCli;
    JTextArea area_itens;
    JComboBox cbox_pacote;
    JComboBox cbox_quarto;
    JList list_produto;
    JButton btn_confirmar;
    JButton btn_cancelar;
    JButton btn_limpar;
    JButton btn_add;
    JButton btn_procurar;
    TesteArray ta = new TesteArray();

    public Sales() {

        ta.filesar();
        Classic.setNome("Classic");
        Classic.setValor("50.00");
        Classic.setCanais("Aberto");
        Classic.setItens("Ar Condicionado, Luz");
        Classic.setDiaria("1");
        Premium.setNome("Premium");
        Premium.setValor("100.00");
        Premium.setCanais("Pay Per View");
        Premium.setItens("Ar Condicionado, Luz, Banheira");
        Premium.setDiaria("1");
        String[] pacotes = {String.valueOf(Classic.getNome()), String.valueOf(Premium.getNome())};
        String[] quartos = {"1", "2", "3", "4"};

        setTitle("Tela de Venda");
        setSize(500, 300);
        setDefaultCloseOperation(javax.swing.WindowConstants.DO_NOTHING_ON_CLOSE);
        setLayout(null);

        JScrollPane scroll_lista = new JScrollPane(list_produto);
        lbl_cliente = new JLabel("Cliente:");
        lbl_cliente.setBounds(10, 10, 100, 20);
        txt_cliente = new JTextField();
        txt_cliente.setBounds(135, 10, 150, 20);
        btn_procurar = new JButton("Procurar");
        btn_procurar.setBounds(300, 10, 150, 20);
        btn_procurar.addActionListener(this);
        txt_nomeCli = new JTextField();
        txt_nomeCli.setBounds(135, 35, 150, 20);
        txt_nomeCli.setEnabled(false);
        lbl_nome = new JLabel("Nome: ");
        lbl_nome.setBounds(10, 35, 100, 20);
        lbl_pacote = new JLabel("Pacote");
        lbl_pacote.setBounds(10, 60, 100, 20);
        cbox_pacote = new JComboBox(pacotes);
        cbox_pacote.setBounds(135, 60, 150, 20);
        cbox_pacote.setSelectedIndex(0);
        cbox_pacote.addActionListener(this);
        lbl_produto = new JLabel("Produto:");
        lbl_produto.setBounds(10, 85, 100, 20);
        Object[] produtos = new Object[TesteArray.pr.size()];

        for (int i = 0;
                i < TesteArray.pr.size();
                i++) {

            produtos[i] = new Object();

            produtos[i] = TesteArray.pr.get(i).getNome().replace("Nome: ", "");
        }
        list_produto = new JList(produtos);
        list_produto.setBounds(135, 85, 150, 40);
        list_produto.setFixedCellHeight(20);
        list_produto.setVisibleRowCount(4);
        btn_add = new JButton("ADD");
        btn_add.setBounds(300, 85, 150, 20);
        btn_add.addActionListener(this);
        lbl_quarto = new JLabel("Quarto");
        lbl_quarto.setBounds(10, 130, 100, 20);
        cbox_quarto = new JComboBox(quartos);
        cbox_quarto.setBounds(135, 130, 150, 20);
        cbox_quarto.setSelectedIndex(0);
        cbox_quarto.addActionListener(this);
        area_itens = new JTextArea();
        area_itens.setBounds(10, 155, 150, 150);
        lbl_valor = new JLabel("Valor Total");
        lbl_valor.setBounds(10, 155, 100, 20);
        lbl_total = new JLabel();
        lbl_total.setBounds(135, 155, 100, 20);
        btn_confirmar = new JButton("Confirmar");
        btn_confirmar.setBounds(10, 200, 150, 20);
        btn_cancelar = new JButton("Cancelar");
        btn_cancelar.setBounds(170, 200, 150, 20);
        btn_cancelar.addActionListener(this);
        btn_limpar = new JButton("Limpar");
        btn_limpar.setBounds(330, 200, 150, 20);

        Container c = this.getContentPane();

        c.add(lbl_cliente);
        c.add(lbl_pacote);
        c.add(lbl_produto);
        c.add(lbl_quarto);
        c.add(lbl_valor);
        c.add(lbl_nome);
        c.add(txt_nomeCli);
        c.add(txt_cliente);
        c.add(cbox_pacote);
        c.add(cbox_quarto);
        c.add(list_produto);
        c.add(lbl_total);
        c.add(btn_add);
        c.add(btn_procurar);
        c.add(btn_cancelar);
        c.add(btn_confirmar);
        c.add(btn_limpar);
    }

    @Override
    public void actionPerformed(ActionEvent e) {
        if (0 == cbox_pacote.getSelectedIndex()) {
            String valor = Classic.getValor();
            lbl_total.setText(valor);
        }
        if (1 == cbox_pacote.getSelectedIndex()) {
            String valor = Premium.getValor();
            float soma = (Float.parseFloat(Classic.getValor()) + Float.parseFloat(Premium.getValor()));
            lbl_total.setText(String.valueOf(soma));
        }
        if (e.getSource().equals(btn_procurar)) {
            for (int i = 0; i < TesteArray.cl.size(); i++) {
                try {
                    if (TesteArray.cl.get(i).getCpf().equals("CPF: " + txt_cliente.getText())) {
                        txt_nomeCli.setText(TesteArray.cl.get(i).getNome().replace("Nome: ", ""));
                    }
                } catch (Error err) {
                    System.out.println(err.getMessage());
                }
            }
        }
        if (e.getSource().equals(btn_cancelar)) {
            this.setVisible(false);
        }
        if (e.getSource().equals(btn_add)) {
        }
    }

    public static void main(String[] args) {
        Sales s = new Sales();
        s.setVisible(true);
    }
}

No caso, quando o Usuário clicar no botão ADD ele irá pegar o(s) itens selecionados na JList e irá adicioná-los no JTextArea.

Desde já obrigado à todos.

4 Respostas

B

Amigo, não seria mais conveniente colocar os itens selecionados em outra lista?

F

Pode ser que sim. Vou fazer deste jeito então, obrigado.

ViniGodoy

Movido para o fórum de interface gráfica. Por favor, leia atentamente a descrição dos fóruns antes de postar.

JonaTHANNM

Olá, para pegar de um jList e jogar em um JTextArea é só no evendo do seu botão ADD adicionar a seguinte linha:

jTextArea.setText(jList.getSelectedValue().toString());
Criado 22 de maio de 2011
Ultima resposta 26 de mai. de 2011
Respostas 4
Participantes 4