Mal desemepnho apos adicionar uma Font

Boa noite pessoal, logo apos eu adicionar uma fonte em uma borda do painel que está numa pequena janela, ela está demorando para exibir seus dados, o JLabel e um painel com uma pequna imagem de fundo, ela aparece assim primeiro e só depois que aparece as outras coisas.

O meu codigo é esse.

[code]import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

import javax.imageio.ImageIO;
import javax.swing.AbstractAction;
import javax.swing.BorderFactory;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.border.Border;
import javax.swing.border.EtchedBorder;
import javax.swing.border.TitledBorder;

public class Documentacao extends AbstractAction {

public void criarJanela() throws IOException {
	JFrame janDoc = new JFrame();
	janDoc.setTitle("Calculadora-IO");
	janDoc.setSize(320, 180);
	janDoc.setLocation(500, 200);
	janDoc.setVisible(true);
	janDoc.setResizable(false);

	JPanel painelPrincipal = new JPanel();
	painelPrincipal.setLayout(new BorderLayout());
	janDoc.add(painelPrincipal);
	
	Font font = new Font("Negrito", 1, 11); // A demora acontece logo apos eu criar essa fonte e adicionala na borda do painel
	
	JPanel painel = new JPanel();
	painel.setLayout(new GridLayout(2, 1));
	
	painel.setBorder(BorderFactory.createTitledBorder(null, "Documentação", 1, 2, font, Color.RED ));// aki
	painelPrincipal.add(BorderLayout.NORTH, painel);

	BufferedImage imagem = ImageIO.read(new File("C:\\Users\\ronildo\\Desktop\\Imagens C-IO\\chamas1.jpg"));
	JPanel painelImage = new NovoPainel(imagem);
	JPanel secundImage = new JPanel();
	secundImage.setLayout(new GridLayout(1, 3));
	secundImage.add(painelImage);
	painelPrincipal.add(BorderLayout.CENTER, secundImage);[/code]

Alguem por favor pode me ajudar?

Mova a linha do setVisible para o final do método criarJanela.

Evite exibir janelas que não foram completamente construídas. Isso realmente sobrecarrega o ambiente gráfico.

[quote=ViniGodoy]Mova a linha do setVisible para o final do método criarJanela.

Evite exibir janelas que não foram completamente construídas. Isso realmente sobrecarrega o ambiente gráfico.[/quote]

Certo, agora quando a janela aparece já vem com tudo.
Porem quando clico no JMenuItem que cria essa janela está demorando para ela ser exibida. É assim mesmo?
E isso ocorre só na primeira vez que clico no JMenuItem, as proximas a janela já aparece de forma bem rapida.

Talvez possa me judar aki tambem, para deixar minha interface mais amigavel eu precisaria colocar umas iamgens no JCheckBox, mas não tenho a menor ideia de por onde começar, procurei na internete e não encontrei tambem, gostar ade deixar tipo algo assim:

É possível ter um resultado assim? Como fazer? ou o que estudar para conseguir fazer?
Grato pela atenção.

[quote=Ziru]Talvez possa me judar aki tambem, para deixar minha interface mais amigavel eu precisaria colocar umas iamgens no JCheckBox, mas não tenho a menor ideia de por onde começar, procurei na internete e não encontrei tambem, gostar ade deixar tipo algo assim:

É possível ter um resultado assim? Como fazer? ou o que estudar para conseguir fazer?
Grato pela atenção.[/quote]

Minto eu. Tenho por onde começar, só que o resultado não fica o mesmo. Olha!

BufferedImage imagLac = ImageIO.read(new File("C:\\Users\\ronildo\\Desktop\\Imagens C-IO\\lanceiro.jpg"));
		ImageIcon imgLac = new ImageIcon(imagLac);
		JCheckBox lan = new JCheckBox(imgLac);
		lan.setText("Lanceiro");
		painelLeves.add(lan);

A parte onde mostra que está selecionado desaparece.

Olha

[quote=ViniGodoy]Mova a linha do setVisible para o final do método criarJanela.

Evite exibir janelas que não foram completamente construídas. Isso realmente sobrecarrega o ambiente gráfico.[/quote]

O problema ta sendo a fonte mesmo, acabei de remove-la e tudo ficou normal.
:frowning:

Não tem nenhum outro modo de colocar o titulo da borda do painel em negrito? Esse que tô usando deixa aplicação lenta, muito desagradável.

Pessoal eu não sou louco, estou apenas com sono…rsr E Bastante contende com o resultado.
Uma parte está resolvido, usando o mesmo metodo que o viniGodoy me ensinou mais sendo com o html consegui colocar o titulo da borda em negrito sem comprometer a velocidade da aplicação segue o condigo.

	String tituloBord = new String("<html><b>Documentação</b>");
		painel.setBorder(BorderFactory.createTitledBorder(null, tituloBord, 1, 2, null, Color.RED ));v

Agora só falta a questão do JCheckBox, agradeço quem puder me ajudar.