Pessoal, estou querendo alterar a posição dos compoentes no meu programa, mas não estou conseguindo. Não faço idéia de qual é o erro.
Por favor, ajudem-me.
import java.util.StringTokenizer;
import java.awt.Component;
import javax.swing.*;
import javax.swing.JComponent;
public class Propriedades extends javax.swing.JInternalFrame {
/** Creates new form Propriedades */
public Propriedades(String campos) {
setLayout(null);
int y=5;
StringTokenizer st = new StringTokenizer(campos, ";");
String nome = "";
initComponents();
for(int i = 0; i < this.getContentPane().getComponentCount(); i++) {
this.getContentPane().getComponent(i).setVisible(false);
}
while(st.hasMoreTokens()) {
nome = st.nextToken();
for(int i = 0; i < this.getContentPane().getComponentCount(); i++) {
if(this.getContentPane().getComponent(i).getName() != null && this.getContentPane().getComponent(i).getName().equals(nome)) {
//this.getContentPane().getComponent(i).setBounds(5,y,this.getContentPane().getComponent(i).getWidth(),this.getContentPane().getComponent(i).getHeight());
this.updateUI();
this.getContentPane().getComponent(i).repaint(5,y,this.getContentPane().getComponent(i).getWidth(),this.getContentPane().getComponent(i).getHeight());
this.revalidate();
this.getContentPane().getComponent(i).setVisible(true);
y+=5;
}
}
}
}
Tentei com setBounds(linha comentada) e não deu certo. Tentei com repaint e não deu certo. Adicionei o método updateUI() e o revalidate() , mas também não deu certo.
A string campos contém os nomes dos componentes, os quais eu decido se serão ou não mostrados(setVisible no final do código).
O interessante é que, quando eu dou um getWidth ou getHeight, o valor retornado é zero. Não entendo.
Ajudem!!