[Resolvido] Inserir componentes em tempo de execução

4 respostas
L

Olá galera, desenvolvi um programa onde o usuário insere os componentes (JButton, JTextField, …) que deseja e pode move-los pela tela.

Porém quando o usuário insere um novo componente os componentes antigos inseridos e movidos pela tela, voltam para suas posições iniciais.

Gostaria de saber como faço para poder inserir um novo componente sem que os outros componentes voltem para suas posições iniciais?

4 Respostas

U

lynux100 se possível coloca o código para darmos uma analisada.

L

Tem sim, segue.

private void addButtonJButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_addButtonJButtonActionPerformed
        String name = JOptionPane.showInputDialog(null, "Entre com o nome do botão");
        
        JButton button = new JButton(name);
        tela.setActionsAndAttributes(name);
        //Aqui eu movo o botão pela tela
        button.addMouseMotionListener(new MouseEventPrototipo(button));
        button.addMouseListener(new MouseEventListenerPrototipo(button, painelJPanel, tela, name, ra));
        
        painelJPanel.setLayout(new FlowLayout());
        painelJPanel.add(button);
        
        painelJPanel.revalidate();
        //painelJPanel.repaint();
        
        //ra.register("button", "", name, 3);
        //painelJPanel.p
    }//GEN-LAST:event_addButtonJButtonActionPerformed

Toda vez que insiro novamente um JButton, os componentes voltam para suas posições iniciais.

U

lynux100 isto está acontecendo pois seu o layout do Jpanel é do tipo FlowLayout(), e todas as vezes que vc add um Jbutton ele recarrega este layout.
Para isso utiliza null como layout e utiliza o método

botao.setBounds(X, Y, Width, Height);

para setá-lo inicialmente.

L

Valeu urbgames. Resolvido

Criado 2 de maio de 2013
Ultima resposta 6 de mai. de 2013
Respostas 4
Participantes 2