Cara, seguinte.
Sou usuário novo no Guj e no Swing (to mexendo com java há uma semana apenas), mas tive o mesmo problema que vc (só que no meu problema às vezes também tinha que tentar abrir varias vezes no windows para que exibisse os botões e todos os outros componentes corretamente).
No meu caso, eu estava colocando o frame.setVisible(true) e o panel.setVisible(true) junto com as outras características do frame e do panel respectivamente. Então resolvi o problema apenas setando o o JPanel como visível somente após todas as linhas que adicionavam os componentes ao JPanel, e setando o JFrame como visível somente após setar o JPanel como visível.
Tipo:
import javax.swing.*;
public class Teste {
JFrame frame;
JPanel panel;
JButton botao;
Teste(){
frame = new JFrame();
panel = new JPanel();
botao = new JButton("teste");
frame.setSize(300,300);
frame.setLayout(null);
panel.setSize(30,300);
panel.setLayout(null);
panel.setBounds(0, 0, 300, 300);
botao.setBounds(100, 90, 100, 27);
panel.add(botao);
panel.setVisible(true);
frame.add(panel);
frame.setVisible(true);
}
public static void main(String args[]){
Teste teste = new Teste();
}
}
Como sou novo em java e swing, posso ter falado alguma caca e, se realmente falei, por favor me corrijam.
Tenta isso aí e posta pra gente se deu certo.
Se não der, tenta postar o trecho do código que cria a janela e os botões, campos etc…
Fallow