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?
Barra de Rolagem nao funciona
M
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