Visual – JComboBox, JList, Mouse Listener, Mouse Adapter, Mouse Clicked – Java

Publicado: 19 de março de 2014 em Java

Combo Box

Em computação, uma caixa de combinação é um elemento de interface gráfica. Um JComboBox, que permite ao usuário escolher uma das várias opções, pode ter duas formas muito diferentes. A forma padrão é a caixa de combinação não editável, que conta com um botão e uma lista suspensa de valores. A segunda forma, chamada de caixa de combinação editável, possui um campo de texto com um pequeno botão confinando-o. O usuário pode digitar um valor no campo de texto ou clique no botão para exibir uma lista drop-down.

List Box

Em computação, uma caixa de listagem é um elemento de interface gráfica. Uma JList apresenta ao usuário um grupo de itens, exibidos em uma ou mais colunas. As listas podem ter muitos itens, por isso eles são muitas vezes colocados em painéis de rolagem.

MouseListener

A interface do ouvinte para receber eventos do mouse (pressionando , soltando, clique, entrada e saída) em um componente.

Mouse Adapter

É uma classe abstrata no qual o adaptador é usado para receber eventos de mouse. Os métodos dessa classe estão vazios. Esta classe existe como conveniência para a criação de objetos do ouvinte.

Mouse Clicked

É uma void da classe  Mouse Adapter chamada quando o botão do mouse foi clicado (pressionado e liberado) em um componente.

Exemplo:

Neste exemplo escrevemos um combobox e um listbox que interagem entre si por seus eventos.

Java

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

import javax.swing.BorderFactory;
import javax.swing.Box;
import javax.swing.BoxLayout;
import javax.swing.JComboBox;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JPanel;

public class ComboList extends JPanel implements ActionListener
{
	// Declara componentes
	JLabel titulo;
	JLabel tmusica;
	JLabel tcombo;
	JLabel tlista;
	JComboBox combo;
	JList lista;

	// Construtor da classe
	public ComboList()
	{

		// Declara uma array com o conteudo da lista
		String[] itens = { "Satisfaction" , "Paint it Black" , "Wild Horses", "Brown Sugar",
				           "Sympathy for the Devil", "Start Me Up"} ;

		// Cria componentes
		titulo =  new JLabel("Rolling Stones :");
		tmusica = new JLabel("Musica");
		tcombo = new JLabel("Combobox - Escolha uma Opção");
		tlista = new JLabel("ListBox - Duplo click em uma Opção");

		// Adiciona propriedades ao componentes
		combo = new JComboBox<>(itens);
		combo.setSelectedIndex(0);
		combo.addActionListener(this);

		lista = new JList<>(itens);
		lista.setSelectedIndex(0);

		// Cria um ouvinte do mouse para o componente
		lista.addMouseListener(new MouseAdapter()
		{
			// declara o evento para o click do mouse
			public void mouseClicked(MouseEvent e)
			{
				if (e.getClickCount() == 2)
				{
					int indice = lista.getSelectedIndex();
					combo.setSelectedIndex(indice);
				}
			}
		});

		// declara o layout da tela
		setLayout(new BoxLayout(this , BoxLayout.Y_AXIS));

		// adiciona componentes ao painel
		add(titulo);
		add(tmusica);
		add(Box.createRigidArea(new Dimension(0,10)));
		add(tlista);
		add(Box.createRigidArea(new Dimension(0,5)));
		add(lista);
		add(Box.createRigidArea(new Dimension(0,10)));
		add(tcombo);
		add(Box.createRigidArea(new Dimension(0,5)));
		add(combo);
		setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));

	}

	// Evento do clique do combobox
	public void actionPerformed(ActionEvent e)
	{
		JComboBox escolha = (JComboBox)e.getSource();
		int indice = (int)escolha.getSelectedIndex();
		String texto = (String)escolha.getSelectedItem();
		lista.setSelectedIndex(indice);
		tmusica.setText( texto );
	}

	// Monta a interface grafica
	private static void mostraGui()
	{
		JFrame formulario = new JFrame("Lista de Música");
		formulario.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

		JComponent painel = new ComboList();
		painel.setOpaque(true);

		formulario.setContentPane(painel);
		formulario.pack();
		formulario.setVisible(true);
	}

	public static void main(String[] args)
	{
		//  inicializa a tela
		javax.swing.SwingUtilities.invokeLater(new  Runnable()
		{

			@Override
			public void run()
			{
				mostraGui();

			}
		});
	}
}

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s