Botão aparece na interface quando lhe dá na telha

2 respostas
jsopra

Nesse código abaixo eu estou criando jButtons e inserindo em um jFrame. O problema que ao executar ou depurar, às vezes os botões aparecem normalmente e às vezes eles só aparecem ao passar o mouse em cima da área que ele encontra-se.

import java.awt.Dimension;
import java.util.ArrayList;
import javax.swing.JFrame;
import java.util.Random;

/**
 *
 * @author Victor
 */
public class Main {
    
        /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        ArrayList<Componente> comp = new ArrayList<Componente>();
        Random rand = new Random();
        //JFrame fundo
        JFrame fundo = new JFrame("Teste");
        fundo.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        fundo.setSize(new Dimension(600, 600));
        fundo.setLayout(null);
        fundo.setVisible(true);
        //fim jFrame fundo
        
        //componente botão A
        Componente a = new Componente();
        a.setBotao("Victor");
        a.setDado1("Victor");
        a.setDado4(3);
        fundo.add(a.getBotao());
        comp.add(a);
        
        //componente botão B
        Componente b = new Componente();
        b.setBotao("Juliano");
        b.setDado1("Juliano");
        b.setDado4(4);
        fundo.add(b.getBotao());
        comp.add(b);
        
        //componente botão C
        Componente c = new Componente();
        c.setBotao("Emanu");
        c.setDado1("Emanu");
        c.setDado4(4);
        fundo.add(c.getBotao());
        comp.add(c);
        
        //testes
        System.out.println(comp.size());
        System.out.println(comp.get(1).getDado1());
    }
}

Na classe Componente, os métodos que envolvem o jButton são

public void setBotao (String nome) {
      Random rand = new Random();
      this.botao.setName(nome);
      this.botao.setText(nome);
      // x,y, width, height
      Integer x = rand.nextInt(500);
      Integer y = rand.nextInt(500);
      this.botao.setBounds(x,y,140,20);
  }
public JButton getBotao() {
      return this.botao;
  }

Procurei pelo problema este mas só encontrei material específico ao código de quem postara a dúvida, mas como sou inexperiente não consegui ver o problema no meu contexto.

Se algúem puder me ajudar ou indicar algum material para leitura, ficarei muito grato.

2 Respostas

Marck

Olá

Cara, testei aqui é funcionou corretamente. Mas, coloca o metodo fundo.setVisible(true); depois que voce adiciona os botões no formulario.

valeu

jsopra

bah, coloquei o setVisible no final do código e funcionou perfeito

muito grato

Criado 7 de setembro de 2008
Ultima resposta 7 de set. de 2008
Respostas 2
Participantes 2