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.
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.org/wp-content/uploads/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();
}
});
}
}












