[Resolvido]Criando muitos botões

Eu tipo experimentei criar um array de botões.

Fiz este programa:

[code]import java.awt.FlowLayout;

import javax.swing.JButton;
import javax.swing.JFrame;

public class Buttoni extends JFrame {

JButton[] butts = new JButton[145];

public Buttoni(){
super(“Buttons”);
this.setLayout(new FlowLayout());
this.setVisible(true);
this.setSize(400,666);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

for (int i = 0; i<butts.length; i++)
	
{
	
	
	butts[i] = new JButton(String.format("%d", i));  
	
	
}


for (int i = 0; i<butts.length; i++)

{
	
	
	this.add(butts[i]);
	
	
}

}

public static void main(String[] args)
{

new Buttoni();

}

}[/code]

O problema é que ao executar o programa é falha muitas vezes…
Ou não aparecem os botões, ou só aparecem metade deles…não percebo…

alguém me explica porquê??

Copiei e colei o codigo aqui, e executou normalmente. O unico problema e que faltou um repaint, pois ele só aparece o botao quando maximiza ou mexe no size dele

especifique melhor o problema

Cara, eu testei aqui e o problema que vejo é o tamanho do Vetor é muito grande, então ele demora pra carregar os botões … mas carrega …
Teste com um vetor menor para vc ver …

Abraços …

Mas o meu problema é que ele ás vezes executa muito rápido.
Outras só aparecem um x botões em vez do número desejado, ou é lento a aparecer…

[quote]
Copiei e colei o codigo aqui, e executou normalmente. O unico problema e que faltou um repaint, pois ele só aparece o botao quando maximiza ou mexe no size dele[/quote]

Igor por acaso, eu testei e quando mexo no size dele aparece logo.
Mas como faço isso do repaint?

adiciona o repaint() e validate() ficando assim:

public Buttoni() {
		super("Buttons");
		this.setLayout(new FlowLayout());
		this.setVisible(true);
		this.setSize(400, 666);
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

		for (int i = 0; i < butts.length; i++) {
			butts[i] = new JButton(String.format("%d", i));
		}

		for (int i = 0; i < butts.length; i++){
			this.add(butts[i]);
		}
		
		this.repaint();
		this.validate();	

		
		 
	}

[quote=igor_ks]adiciona o repaint() e validate() ficando assim:

[code]
public Buttoni() {
super(“Buttons”);
this.setLayout(new FlowLayout());
this.setVisible(true);
this.setSize(400, 666);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

	for (int i = 0; i < butts.length; i++) {
		butts[i] = new JButton(String.format("%d", i));
	}

	for (int i = 0; i < butts.length; i++){
		this.add(butts[i]);
	}
	
	this.repaint();
	this.validate();	

	
	 
}

[/code][/quote]

ok obrigado!

Interessante o nome do array hehehe

por acaso não foi com intenção :smiley:

por acaso não foi com intenção :smiley: [/quote]

Sem falar no height do frame xD

Seu código tá cheio de mensagens subliminares kkk