Boa tarde, galera…
Tenho uma classe que cria um JInternalFrame dentro de um JDesktopPane. Dentro desta classe, ela cria um novo JPanel, o pinta como branco e mostra na tela. Porém, quando ela aparece não é mostrada corretamente…
Primeiro vou mostrar os códigos e por último colocarei algumas screenshots, para facilitar o entendimento.
// método main
public static void main(String[] args) {
try { // configura a UI Nimbus
for ( LookAndFeelInfo info : UIManager.getInstalledLookAndFeels() )
if ( "Nimbus".equals( info.getName() ) ) {
UIManager.setLookAndFeel( info.getClassName() );
break;
} // fim do if
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (UnsupportedLookAndFeelException e) {
e.printStackTrace();
}
MyDesktop telaPrincipal = new MyDesktop();
telaPrincipal.setDefaultCloseOperation( JFrame.DISPOSE_ON_CLOSE );
telaPrincipal.setSize( 600, 480 );
telaPrincipal.setExtendedState( JFrame.MAXIMIZED_BOTH );
telaPrincipal.setVisible( true );
} // fim do método main
// construtor da classe MyDesktop que estende JFrame
public MyDesktop()
{
super( "Leitor de Texto" );
desktop = new JDesktopPane();
add( desktop );
} // fim do construtor
// trata o evento do JMenuItem newFrame
// este código está dentro de MyDesktop
newFrame.addActionListener(
new ActionListener()
{
@Override
public void actionPerformed( ActionEvent e ) {
JInternalFrame internalFrame = new MyInternalFrame();
add( internalFrame );
} // fim do método actionPerfomed
}
);
// construtor da classe MyInternalFrame
public MyInternalFrame()
{
super( "Tela Interna", true, true, true, true );
add( new MyPanel(), BorderLayout.CENTER );
pack(); // configura o quadro interno de acordo com o tamanho do conteúdo
setVisible( true );
} // fim da classe TelaInterna
// método paintcomponent da classe MyPanel que estende JPanel
@Override
protected void paintComponent( Graphics g ) {
super.paintComponent(g);
setBackground( Color.WHITE );
}
Agora as imagens…
A primeira imagem é o que aparece qnd abro o programa…

A segunda imagem mostra como a tela fica quando escolho a opção de JMenuitem newFrame. Ele cria o painel em branco, mas sem nenhuma opção de minimizar etc.

Se eu passo a seta sobre o canto superior direito, as opções aparecessem… mas não consigo redimensionar, nem nada.

Quando clico em minimizar ele não aparece no inferior esquerdo, como é comum. Este tipo de comportamento acredito que eu tenha que programar, mas por quê não aparece a barra do topo do JInternalFrame, com o título do frame interno e as opções da janela?
Obrigado!