Barra de Rolagem nao funciona

1 resposta
M

Boa noite. Estou quebrando a cabeça um tempão ja. Possuo um SplitPane adiciono nele umJScrollPane, que contem um JPanel. So que esse JPanel esta setado com layaut null. Pesquisei e vi que isso impede que a barra de rolagem do JScrollPane funcione. Olhei em alguns foruns e recomendam setar o preferredSize do panel, mas mesmo assim nao da certo. Alguem tem alguma solucao para este problema?

1 Resposta

R

Não consegui reproduzir o comportamento que você relatou. Segue meu programa de teste:

import java.awt.Color;
import java.awt.Dimension;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JSplitPane;
import javax.swing.SwingUtilities;

public class Main {
  public static void main(String[] args) {
    SwingUtilities.invokeLater(new Runnable() {
      public void run() {
        executaFormulario();
      }});
  }

  public static void executaFormulario() {
    // Cria e dimensiona o frame
    JFrame frame = new JFrame("Frame de Teste");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setBounds(10, 10, 300, 300);

    // Cria o painel esquerdo, com layout nulo e um label
    JPanel painelEsquerdo = new JPanel();
    painelEsquerdo.setLayout(null);
    painelEsquerdo.setBackground(Color.RED);
    painelEsquerdo.setPreferredSize(new Dimension(1000, 1000));

    JLabel label = new JLabel("Label de Teste");
    painelEsquerdo.add(label);
    label.setBounds(10, 10, 100, 100);
    label.setOpaque(true);

    // Cria o scrollpane
    JScrollPane scrollPane = new JScrollPane(painelEsquerdo);

    // Cria o painel direito
    JPanel painelDireito = new JPanel();
    painelDireito.setBackground(Color.BLUE);

    // Cria o splitpane e instala-o no formulário
    JSplitPane splitPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT,
      scrollPane, painelDireito);
    frame.setContentPane(splitPane);

    // Exibe o formulário
    frame.setVisible(true);
  }
}
Criado 25 de maio de 2010
Ultima resposta 27 de mai. de 2010
Respostas 1
Participantes 2