Visual – JSplitPane – Java

Publicado: 25 de abril de 2014 em Java

Painel deslizante é um componente da interface gráfica que permite que o usuário redimensione componentes contidos normalmente dentro de duas células que podem ser posicionadas na horizontal ou vertical.

JSplitPane é usada para dividir dois (e somente dois) componentes. Os dois componentes são graficamente divididos de acordo com o look and feel de implementação, e os dois componentes podem ser interativamente redimensionados pelo usuário.

JSplitPane

JSplitPane

Exemplo:

Neste exemplo criamos um painel de rolagem divido na horizontal que contem dois componentes que podem ser redimensionados pelo usuário, respeitando o tamanho mínimo de cada componente.

Java

import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.net.URL;

import javax.imageio.ImageIO;
import javax.swing.BorderFactory;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JSplitPane;
import javax.swing.JTextArea;

public class Spliter {

	// Declara componentes 
	URL url;
	BufferedImage imagem;
	
	// Declara variaveis
	String txt = "O balonismo é um esporte aeronáutico praticado com um balão de ar quente.\n"+
		         "Possui adeptos em todo o mundo. No Brasil, o esporte começou a se popularizar\n" +
			     "a partir dos anos 90.\n"+
			     "O balão é considerado uma aeronave assim como avião, helicópteros e outros.\n" +
			     "Por esta razão o balão deve ter uma matricula (prefixo) registrado junto\n" +
			     "à ANAC, seu piloto deve possuir uma licença (brevê) específico para a pratica\n" +
			     "do balonismo também emitido pela ANAC.";
	
	public Container criaPainel()
	{
		// Cria painel principal
		JPanel painel = new JPanel();
		
		// Define layout
		painel.setLayout(new BorderLayout());
		painel.setBorder(BorderFactory.createEmptyBorder(20, 20, 20, 20));
		
		// Cria area de texto
		JTextArea area = new JTextArea(txt);
		
		// Cria painel para area
		JScrollPane areap = new JScrollPane(area);
		
		// Cria componente para imagem
		JLabel figura = new JLabel();
		
		// Tenta ler a imagem da internet
		try
	    {
			// Carrega imagem
			url = new URL("https://desenvolvimentoaberto.files.wordpress.com/2014/04/balonismo.jpg?");
	        imagem = ImageIO.read(url);	        
	    }	     
		catch ( IOException e)	
		{           
			e.printStackTrace();		
		}
		
		// Mostra imagem
		ImageIcon fig = new ImageIcon(imagem);
	    figura = new JLabel(fig);
	     
	    // Cria painel da imagem
	    JScrollPane imagemp = new JScrollPane(figura);
	     
	    // Cria painel de rolagem
	    JSplitPane painels = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, imagemp, areap);
	     	          
	    // Define tamanho minimo para os componentes
	    Dimension tamanhom = new Dimension(200,100);
	     
	    // Seta tamanho minimo
	    area.setMinimumSize(tamanhom);
	    figura.setMinimumSize(tamanhom);
	     
	    // Define painel como opaco
	    painel.setOpaque(true);
	    
	    // Adiciona paineis
	    painel.add(painels);

		return painel;
	}
	
	public static void criaGui()
	{
		// Cria formulario
		JFrame formulario = new JFrame("DA - Painel Deslizante");
		formulario.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
		// Cria nova instancia e da classe
		Spliter spliter = new Spliter();
		
		// Adiciona painel ao formulario
		formulario.setContentPane(spliter.criaPainel() );
		
		// Define propriedades do formulario
		formulario.pack();
		formulario.setVisible(true);
		
	}

	public static void main(String[] args) {

		javax.swing.SwingUtilities.invokeLater(new Runnable() {
			
			@Override
			public void run() {
				// Exibe GUI na thread do swing
				criaGui();
				
			}
		});
	}
}
Publicidade

Deixe um comentário

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

Logo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. 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