Galera tô apanhando igual uma franga aqui… Hahaha…
Então, tenho uma aplicação desenvolvida em Eclipse que utiliza 1 JDesktopFrame dentro de um JFrame e vários JInternalFrames.
Como minha aplicação tem uma JToolBar e um JPanel (que simula uma StatusBar) eu preciso que a StatusBar fique sempre na parte inferior da janela. Bom, até ai tudo belezinha, utilizei o BorderLayout e minha ToolBar fica no NORTH e minha StatusBar na posição SOUTH.
Poxa, fica lindo… Independentemente do tamanho da janela ou qualquer outra coisa a ToolBar fica sempre no topo e a StatusBar sempre em baixo.
Ai vem o problema que está fritando meus neurônios: quando eu carrego qualquer JInternalFrame, ele abre maximizado.
Há alguma maneira de eu continuar utilizando o BorderLayout na minha aplicação, mas que meus JInternalFrames carreguem no tamanho que eu defino no setSize?
Antes de qualquer coisa: eu já tentei utilizar o .setResizable(false) no JInternalFrame, mas não resolveu.
Obrigado e um forte abraço!
Estranho. Sempre usei JInternalFrame com BorderLayout (igual a você) e eles nunca abriram maximizados. Como você está fazendo para abrir as janelas?
Estou montanto meu JdesktopPane assim:
[code]public class MDI extends Globais {
private static JToolBar toolBar = new JToolBar();
public static JFrame frmMDI = new JFrame(“Escola Simples”);
private static JPanel statusBar = new JPanel();
public static void JanelaMDI() {
Font fontePadrao = new Font("Verdana", 4, 11);
JDesktopPane espacoMDI = new JDesktopPane();
espacoMDI.setLayout(null);
frmMDI.setLayout (new BorderLayout());
// Ícone
Toolkit kit = Toolkit.getDefaultToolkit();
Image icone = kit.getImage(System.getProperty("user.dir")
+ "/Imagens/Ícone/Escola_Simples.png");
frmMDI.setIconImage(icone);
frmMDI.setExtendedState(JFrame.MAXIMIZED_BOTH);
frmMDI.setContentPane(espacoMDI);
//frmMDI.add(espacoMDI, BorderLayout.CENTER);
frmMDI.setSize(800, 600);
frmMDI.setLocationRelativeTo(null);
frmMDI.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// -------------------------------------------------------------------
// Barra de ferramentas
toolBar.setSize(Toolkit.getDefaultToolkit().getScreenSize().width, 40);
toolBar.setFloatable(false);
// -------------------------------------------------------------------
// StatusBar
statusBar.setSize(Toolkit.getDefaultToolkit().getScreenSize().width, 24);
statusBar.setBorder(BorderFactory.createLineBorder(Color.gray));
statusBar.setLayout(null);
// -------------------------------------------------------------------
// Monta janela
frmMDI.setJMenuBar(menuBar);
frmMDI.add(toolBar, BorderLayout.NORTH);
frmMDI.add(statusBar, BorderLayout.SOUTH);
frmMDI.setVisible(true);
}
}[/code]
E estou chamando meus JInternalFrames assim:
try {
JInternalFrame janelaDiretoriaLocal = new DiretoriaLocal().frmDiretoriaLocal;
frmMDI.add(janelaDiretoriaLocal);
janelaDiretoriaLocal.setSelected(true);
janelaDiretoriaLocal = null;
} catch (Exception e1) {
System.out.println(e1.toString());
}
Não estou usando BorderLayout na JInternalFrame e sim no JFrame + JDesktopPane.
Abração!