JcomboBox

1 resposta
Ezequiel-one

Pessoal, preciso pegar a descrição de um combobox, ou seja, quando eu seleciono um item no combobox ele me mostra a descrição daquele item na TextArea,Aqui esta o meu codigo.

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.BorderLayout;

import java.awt.Container;

import javax.swing.*;

import javax.swing.JFrame;

import javax.swing.JTextArea;

import javax.swing.JScrollPane;

import javax.swing.JButton;
public class MostrarEventosDaComboBox extends JFrame implements ActionListener

{

private Container conteinerPrinc,conteiner;

private JComboBox jcEscolherCor;

private JTextArea jtaDetalhesFuncionario;

JScrollPane jscBarraDeRolagem;

private String nomeDeintes[]= {Cordenador,Gestor De Sala,Supervisor,Assistente};

private String descricao[]={Responsavel por todos os trabalhadores da operacao,

Gestor de sala resposavel a enviar email das situacoes que ocorrem na sala de operacao,

Responsavel pelo assistente da sala de operacao,Responsavel pelas ligacoes dos clientes};

String demo = This;
MostrarEventosDaComboBox()
{
	conteinerPrinc = getContentPane();
	//Box box = Box.createHorizontalBox();

	conteiner = new JPanel();
	conteiner.setLayout(new BorderLayout());
	conteinerPrinc.setLayout(new BorderLayout());
	jcEscolherCor = new JComboBox(nomeDeintes);
	jtaDetalhesFuncionario = new JTextArea();
	jscBarraDeRolagem = new JScrollPane(jtaDetalhesFuncionario,JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
	conteiner.add(jcEscolherCor,BorderLayout.NORTH);
	conteiner.add(jscBarraDeRolagem,BorderLayout.CENTER);
	conteinerPrinc.add(conteiner);

	jcEscolherCor.addActioListener(this);
	{
			public void actionPerformed(ActionEvent e)
			{  
						int valor=getSelectedItem();
						for(int i=0;i<4;i++)
						{	if(valor!=-1)
							append(descricao[valor]);
						}
			}
	}

	
	}

}

Clase de teste

import javax.swing.JFrame;

public class TesteMostrarComboBox extends JFrame

{

public static void main(String args[])

{

MostrarEventosDaComboBox configJanela = new MostrarEventosDaComboBox();

configJanela.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

configJanela.setSize(300,250);

configJanela.setVisible(true);

}

}

1 Resposta

SamuelLira99

dei uma organizada +ou- no código porque estava meio confuso,

acho que o que vc quer seria isso:

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

public class MostrarEventosDaComboBox extends JFrame
{
private Container conteinerPrinc = getContentPane();
private Container conteiner = new JPanel();
private JTextArea jtaDetalhesFuncionario = new JTextArea();
private JScrollPane jscBarraDeRolagem = new JScrollPane(jtaDetalhesFuncionario,JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
// private JComboBox jcEscolherCor;

private String[] nomeDeintes = {"Cordenador","Gestor De Sala","Supervisor","Assistente"};

private String[] descricao = {
	"Responsavel por todos os trabalhadores da operacao",
	"Gestor de sala resposavel a enviar email das situacoes que ocorrem na sala de operacao",
	"Responsavel pelo assistente da sala de operacao",
	"Responsavel pelas ligacoes dos clientes"
};

String demo = "This";//não entendi pra que essa string

private JComboBox jcEscolherCor = new JComboBox(nomeDeintes);

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

MostrarEventosDaComboBox()
{
	setDefaultCloseOperation(EXIT_ON_CLOSE);
	setSize(300,250);

	//Essas duas linhas são pra quebra automática(pro seu texto não ficar só uma linha gigante)
	jtaDetalhesFuncionario.setLineWrap(true);
	jtaDetalhesFuncionario.setWrapStyleWord(true);

	//Essa linha inicia o jtextarea com o texto de indice 0
	jtaDetalhesFuncionario.setText(descricao[0]);

	// MostrarEventosDaComboBox configJanela = new MostrarEventosDaComboBox();

	//Box box = Box.createHorizontalBox();

	conteiner.setLayout(new BorderLayout());
	conteinerPrinc.setLayout(new BorderLayout());



	conteiner.add(jcEscolherCor,BorderLayout.NORTH);
	conteiner.add(jscBarraDeRolagem,BorderLayout.CENTER);
	conteinerPrinc.add(conteiner);

	//é mais fácil adicionar o listener desse jeito
	jcEscolherCor.addItemListener(new ItemListener() {
		public void itemStateChanged(ItemEvent e) {
			if (e.getStateChange() == ItemEvent.SELECTED) {
				Object item = e.getItem();
				jtaDetalhesFuncionario.setText(descricao[jcEscolherCor.getSelectedIndex()]);
			}
		}
	});
	{


		//do jeito abaixo fica mais complicado
			// public void actionPerformed(ActionEvent e)
			// {
			// 			int valor=getSelectedItem();
			// 			for(int i=0;i<4;i++)
			// 			{	if(valor!=-1)
			// 				append(descricao[valor]);
			// 			}
			// }
	}


	}


	}
Criado 9 de novembro de 2017
Ultima resposta 9 de nov. de 2017
Respostas 1
Participantes 2