Olá pessoal,
Estou tentando fazer um JPanel parecer uma folha A4, só que o problema é que quando eu adiciono este JPanel em um JScrollPane, que por sua vez é adicionado em um JFrame, eu gostaria que meu JPanel matem-se seu setPreferredSize() como 595, 824 (que é o tamanho de uma folha A4 na vertical) porém ele se estende em todo o espaço do JFrame (devido o seu setLayout() está definido como BorderLayout.Center), já tentei outros gerenciadores de layout e estudei na documentação da Sun os métodos setColumnHeaderView(columnView), setRowHeaderView(rowView) e setCorner(), tentei colocar JPanels ao redor do pnlA4 para diminuir seu tamanho até ficar A4, porém nada deu certo ainda.
package view;
import java.awt.BorderLayout;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTabbedPane;
public class JPanelA4 extends javax.swing.JFrame {
private JTabbedPane tbcMenu;
private JTabbedPane tbcStatus;
private JPanel pnlA4;
private JScrollPane sclRolagem;
public JPanelA4() {
construtor();
super.setExtendedState(MAXIMIZED_BOTH);
super.setDefaultCloseOperation(EXIT_ON_CLOSE);
super.add(tbcMenu, BorderLayout.NORTH);
super.add(tbcStatus, BorderLayout.SOUTH);
/*Aqui está o problema*/
super.add(sclRolagem, BorderLayout.CENTER);/*Comente está linha*/
//super.add(pnlA4, BorderLayout.CENTER);/*Descomente está linha*/
}
private void construtor() {
this.tbcMenu = new JTabbedPane();
this.tbcMenu.addTab("Arquivo", new JPanel());
this.tbcMenu.addTab("Editar", new JPanel());
this.tbcMenu.addTab("Configurações", new JPanel());
this.pnlA4 = new JPanel();
this.pnlA4.setPreferredSize(new java.awt.Dimension(595, 824));
this.pnlA4.setBorder(javax.swing.BorderFactory.createEtchedBorder());
this.pnlA4.setBackground(java.awt.Color.white);
this.sclRolagem = new javax.swing.JScrollPane(pnlA4);
this.tbcStatus = new JTabbedPane();
this.tbcStatus.addTab("Propriedades", new JPanel());
this.tbcStatus.addTab("Saida", new JPanel());
this.tbcStatus.addTab("Dicas", new JPanel());
}
public static void main(String[] args) {
javax.swing.SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
new JPanelA4().setVisible(true);
}
});
}
}
