Não estou entendendo.
Preciso fazer um array, cada posição do array vai conter os limites de um retangulo (um jLabel).
Alguns itens serao aleatórios, por isso o laço ‘for’, mas segue um resumo do erro num código mais simples:
public class Main {
public static void main(String[] args) {
int n = 0;
Rectangle arr[] = new Rectangle[n];
for (int i=0;i<5;i++) {
JLabel novoLabel = new JLabel();
novoLabel.setIcon(new ImageIcon("images/myPic.gif"));
arr[n+1] = novoLabel.getBounds();
}
}
}
mas tenho a mensagem de erro ArrayIndexOutOfBounds, porque?
Obrigado.
Opa! acredito que seja no momento que vc instancia o Rectangle
int n = 0;
Rectangle arr[] = new Rectangle[n];
o n tá valendo 0, logo o rectangle está com “largura” 0.
acho que é isso!
Aparentemente não, o “n” em questão teria que ser o tamanho do array, o problema é na linha?
arr[n+1] = novoLabel.getBounds();
mas não sei pq, já que o getBounds funcionaria como um Rectangle.
Obrigado anyway.
[quote=Lenhador de Yggdrasil]Não estou entendendo.
Preciso fazer um array, cada posição do array vai conter os limites de um retangulo (um jLabel).
Alguns itens serao aleatórios, por isso o laço ‘for’, mas segue um resumo do erro num código mais simples:
//...
int n = 0;
Rectangle arr[] = new Rectangle[n];
//...
mas tenho a mensagem de erro ArrayIndexOutOfBounds, porque?
Obrigado.[/quote]
Com isso voce esta criando um array de Rectangle com tamanho 0, ou seja é a mesma coisa que voce fazer isso
String array[] = {};
Voce poderia mudar isso:
//...
int n = 0;
Rectangle arr[] = new Rectangle[n];
for(int i = 0; i < 5; i++){
//...
Para
//...
int n = 5;
Rectangle arr[] = new Rectangle[n];
for(int i = 0; i < n; i++){
//...
Agora o array teria 5 posições e não lançaria mais essa exception.
Solved!
Thanks Ameba!
Também descobri que precisava mudar a linha para
arr[i] = novoLabel.getBounds();
Tudo funcionando perfeitamente!