estou montado uma aplicacao usando como o layout de um jpanel o gridbaglayout,
até ai tudo bem!
será que alguém conhece um metodo que mapeie esses componentes,
eu queria algo que pudesse passar como parametros o gridx e o gridy
e me retornar o componente!
Por que vc não utiliza o posicionamento do layout em si, cria uma classe que reavalia o posicionamento do componemte filho no posicionamento do componente “mãe”, tipo …
mãe tem origem na 50 e filho na 30, então da mãe pra filha tem 20 …
falando em layout vc sabe me dizer como trabalho direito com layout null, tem algum tuto ou algo do genero ?
até mais
argentinaluiz
o null layout é o usado em aplicacoes em que a janela nao e dimensionavel, voce tem que usar o setbounds para posicionamento dos componentes
G
guilherme_marques
Você conseguiu fazer o que queria ?
bem eu tentei colokar o set bounds mas mesmo assim não esta funcionando corretamente, os componentes adicionados nem chegam a aparecer na tela mesmo com Set visible() e tudo … Esta se tornando um problema minha ideia de criar o codigo na mão estou quase fazendo por aquela barrinha feliz do netbeans
mas valew assim mesmo
argentinaluiz
o problema que eu ate poderia fazer isto que voce disse, só que nao posso porque as vezes tenho 1000 componente em um panel ou mais e se eu fizer um for para verificar os componentes ficara extremamente pesado pois as vezes posso ter que percorre-lo mais de 10000 vezes, ou seja 10000x1000 nao da!
argentinaluiz
voce esta usando um jframe?
se sim, antes de adicionar os componentes adicione esta linha: seuframe.setLayout(null);
estou montado uma aplicacao usando como o layout de um jpanel o gridbaglayout,
até ai tudo bem!
será que alguém conhece um metodo que mapeie esses componentes,
eu queria algo que pudesse passar como parametros o gridx e o gridy
e me retornar o componente!
G
guilherme_marques
Bem eu intendi o que você disse que poder faltar memoria pela uso ecessivo da classe, porém a do java terá o mesmo problema, será que é tão relevante assim a diferença, já que eu falei pora você fazer uma classe que pessa como parametros get X e Y assim você não vai fazer nada muito diferente do que a api faria ...
velho ... não top enxergando o que vc disse olha meu codigo por favor e ve se tem algo errado, já revisei mas sei lah
packageadsrbeta02;importjava.awt.Color;importjavax.swing.JFrame;importjavax.swing.JLabel;importjavax.swing.JPanel;publicclassPainelextendsJFrame{publicPainel(){JPanelprincipal=newJPanel();JLabelp1=newJLabel("Ambiente de Desenvolvimento de Software para Robótica (ADS-R)");JLabelp2=newJLabel("teste principal, versão 1");// GridBagLayout gm=new GridBagLayout();this.setBounds(100,100,800,600);this.setLayout(null);this.setTitle("Painel principal");this.add(principal);principal.setBounds(100,100,800,600);principal.setBackground(Color.orange);p2.setBounds(120,120,100,50);principal.add(p1);principal.add(p2);p1.setLocation(100,100);this.setVisible(true);p1.setVisible(true);principal.setVisible(true);
G
guilherme_marques
quando tento setar a posição ele não me obedece
fabiofalci
Cada componente tem a posição X, Y e o tamanho…
Dado dois x e y tu pode ir um por um pra ver se está na área do componente.
Mas por curiosidade, pq tu precisa disso?
argentinaluiz
o cara seu codigo nao tem erro, mas roda o que eu to te passando!
publicPainel(){JPanelprincipal=newJPanel();JLabelp1=newJLabel("Ambiente de Desenvolvimento de Software para Robótica (ADS-R)");JLabelp2=newJLabel("teste principal, versão 1");// GridBagLayout gm=new GridBagLayout(); this.setBounds(100,100,800,600);this.setLayout(null);this.setTitle("Painel principal");this.add(principal);principal.setBounds(100,100,800,600);principal.setBackground(Color.orange);p2.setBounds(120,120,100,50);principal.add(p1);principal.add(p2);p1.setLocation(100,100);this.setVisible(true);p1.setVisible(true);principal.setVisible(true);}publicstaticvoidmain(Stringargs[]){newPainel();}
}
argentinaluiz
eu leu um arquivo e atraves deste monto em um painel um certo numero de label que pode ser muito grande,
posicionar os label na tela nao e problema, o problema é na hora de pega-los de volta, o getcomponet nao serve pq so se passa um parametro para ele e eu queria passa dois parametros para me retornar o componente o gridx e o gridy!