JButton e JPanel

5 respostas
tflm

Estou meio enrolado.
Quero criar uma botao de navegação com uma lista de botoes. Adicionar esse botao na paleta e poder utiliza-lo posteriormente.
A parte de inserir na paleta já está resolvida, mas estou com problemas na criação do botao.

O funcionamento deve ser simples: cada botao da lista de botoes desse novo componente, quando ele estiver sendo utilizado num outro panel, deve ser possivel capturar o evento do clique, e eu manipular o panel que contem o meu novo componente.

Eu já havia criado esse novo componente, porém estava com dificuldade em quando os botoes recebesse um clique, eu chamasse algum método dentro do Panel Contenedor.

Acho que um esboço me ajudaria…

Tks.

5 Respostas

tflm

Olhe, o novo componente está contido num panel X.
Dentro do novo componente há o botao 1 e botao 2.

Como o botao 1 e o botao 2 enxergarao o panel X ?

Acho que essa é a pergunta!

tflm

Estou eskecendo de alguma coisa, pq os botoes n estao aparecendo!
Alguem confere p mim, por favor.

import javax.swing.JButton; import javax.swing.JPanel; public class Botao extends JButton{ private JPanel painelPai; public Botao(){ this.setVisible(true); painelPai = new JPanel(); } public Botao(String nome){ this(); this.setText(nome); } public void setPanelPai(JPanel painelPai){ this.painelPai = painelPai; } public JPanel getPainelPai(){ return painelPai; } }

import java.util.*;
public class Navegador extends javax.swing.JPanel {
    private List <Botao> botoes;
    private int status;
    
    /** Creates new form Navegador */
    public Navegador() {
        initComponents();
        botoes = new ArrayList();
        //adiciona os 3 botoes basicos
     
    }
    
    /**
     * 1-ADD; 2-Excluir; 3-  ; 4-  
     * @param status
     */
    public void setStatus(int status){
        this.status = status;
    }
    
    public void montaBarra(){
        switch(status){
            case 1:
                botoes.add(new Botao("Novo"));
                botoes.add(new Botao("Altera"));
                botoes.add(new Botao("Teste"));
                break;
            case 2:
                break;
            case 3:
                break;
            case 4:
                break;
            default:
                break;
        }
    }
.
.
.
public class NewJFrame extends javax.swing.JFrame {
    private Navegador navegador;
    /** Creates new form NewJFrame */
    public NewJFrame() {
        initComponents();
        navegador = new Navegador();
    }    
    public void setStatus(int i){
        navegador.setStatus(i);
    }
    public void monta(){        
        navegador.montaBarra();
    }
.
.
.
public class NewMain {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        NewJFrame jf = new NewJFrame();
        jf.setStatus(1);
        jf.monta();
        jf.setVisible(true);
        jf.setSize(800, 600);
        
    }

}
tflm

Eskeci de dizer que debuguei e ele executa passo-a-passo o pretendido. Só que os botoes nao aparecem na tela!

tks :slight_smile:

tflm

Ja achei a solucao.
Vacilo meu msm.
Depois eu posto.
Abraços.

gertmuller

vc eskeceu de adicionar os botões ao painel… :S

Criado 11 de julho de 2008
Ultima resposta 12 de jul. de 2008
Respostas 5
Participantes 2