setBounds/repaint() JLabel

0 respostas
F

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!!

Criado 10 de outubro de 2006
Respostas 0
Participantes 1