Problemas com herança

Ola, peesoal.
seguinte, eu tenho dois JFrame, uma chamado ClassePai e outro ClasseFilho
a Classe filho extends da Classe pai, ou seja, os botões que tenho na ClassePai aparecem na ClasseFilho quando o programa é execeutado. até ae tudo bem, todos de acordo neh?
Mas eu preciso que os botões da ClassePai apareçam para mim na ClasseFilho quando estiver contruindo o projeto, não só quando executado.
Estou utilizando o netbeans, e preciso que o botão da ClassePai aparecerá na ClasseFilho, para caso eu queria modificar seu tamanho por exemplo, alguem ae sabe como me ajudar???
Grato e espero ter me explicado bem hehehehe

para isso vc deve usar composição ao inves de herença, coloque as configurações necessárias no contrutor da classe pai assim vc passa elas quando o objeto for contruido.

ou modo “elegante” de fazer botoes, seria vc criar uma classe que represente a barra de botoes e adicionar ela no frame que achar necessario.

Não sou tão expert nisso, mas não era melhor usar Polimorfismo?

Eu acho que resolverá seu problema, de qualquer forma creio que surgirão outras sugestões.

Abraço!

[code]// classe que cria a barra de botoes
public class BarraBotoes extends JToolBar implements ActionListener {
private JButton btnSalvar;
private JButton btnExcluir;
private JButton btnConsultar;
private JButton btnFechar;
private IBarraBotoes iBarraBotoes;

public BarraBotoes(IBarraBotoes iBarraBotoes) {
  this.iBarraBotoes = iBarraBotoes;
  btnSalvar = new JButton ("Salvar");
  btnExcluir = new JButton ("Excluir");
  btnConsultar = new JButton ("Consultar");
  btnFechar = new JButton ("Fechar");

  add (btnSalvar);
  add (btnExcluir);
  add (btnConsultar);
  add (btnFechar);

}

@Override
public void actionPerformed(ActionEvent evt) {
	if(evt.getSource() == btnConsultar){
		iBarraBotoes.consultar();
	} else if(evt.getSource() == btnFechar){
		iBarraBotoes.fechar();
	}
	// implementar os outros botoes
}

}[/code]

[code]
// interface para acessar os botoes
public interface IBarraBotoes {
public void salvar();

public void fechar();

public void excluir();

public void consultar();

}[/code]

[code]
// exemplo de uso
public class Teste extends JFrame implements IBarraBotoes {

public Teste() {
	setLayout(new BorderLayout());
	setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
	add (new BarraBotoes(this), BorderLayout.NORTH);
	setSize(800, 600);
}

public static void main(String[] args) {
	new Teste().setVisible(true);
}

@Override
public void salvar() {}
public void fechar() {}
public void excluir() {}
public void consultar() {}

}[/code]

mauricioadl:
Não entendi o que voce queis dizer. Eu utilizo o netbeans, entao criei duas classes PAI e FILHO.
na classe PAI criei os botões pela IDE, clicando e arrastando. e na classe FILHO cloquei ao invez de extends extends javax.swing.JFrame, eu coloquei extends PAI.
porem, soh mostra os botões na classe filho, quando o programa é executado, e não na IDE netbeans, entendeu?

limaaq:
usar polimorfismo?? o que eu quero é herdar um botão e visualiza-lo, não somente ao executar, e sim no netbeans.

Grato pelas respostas

[quote=augusto340]mauricioadl:
Não entendi o que voce queis dizer. Eu utilizo o netbeans, entao criei duas classes PAI e FILHO.
na classe PAI criei os botões pela IDE, clicando e arrastando. e na classe FILHO cloquei ao invez de extends extends javax.swing.JFrame, eu coloquei extends PAI.
porem, soh mostra os botões na classe filho, quando o programa é executado, e não na IDE netbeans, entendeu?

limaaq:
usar polimorfismo?? o que eu quero é herdar um botão e visualiza-lo, não somente ao executar, e sim no netbeans.

Grato pelas respostas [/quote]

eu te mostrei um modo melhor de implementar botoes, ja que vc pode querer usar seus botoes em outros tipos de janela que nao seja um JFrame, um jdialog, um jwindow talvez. No seu caso vc vai ter que escrever uma classe pai para cada tipo de janela.

oq vc quer nao existe, herança pertence a linguagem de programação java e nao a interface de desenvolvimento netbeans ele nao vai adicionar os botoes na janela filho, eles serao criados na compilação.

[]'s

mauricioadl:
entendi, como isso eh do java e não do netbeans, o netbeans não consegueve visualizar. Beleza entendi, desculpe é que estou começan do java agora.

E por exemplo, eu crio uma classe pai com um botão, e na classe FILHO quero alterar o tamanho do botão. Vou ter que alterar por codigo, e executar para verificar como ficou, é isso??

o que eu pretendo é cria uma classe abstrata q vai te alguns botões e fazer outras classes filhas dessa, porem o botão te´ra que mudar de tamanho.
Grato.

[quote=augusto340]mauricioadl:
entendi, como isso eh do java e não do netbeans, o netbeans não consegueve visualizar. Beleza entendi, desculpe é que estou começan do java agora.

E por exemplo, eu crio uma classe pai com um botão, e na classe FILHO quero alterar o tamanho do botão. Vou ter que alterar por codigo, e executar para verificar como ficou, é isso??

o que eu pretendo é cria uma classe abstrata q vai te alguns botões e fazer outras classes filhas dessa, porem o botão te´ra que mudar de tamanho.
Grato.[/quote]

O mauricioadl já te indicou o caminho. O recurso apropriado para fazer isso é a composição, e não a herança. Ao invés de um JFrame pai o que você pode fazer é criar um JPanel e colocar o botão nele. Você pode configurar o JPanel para usar BorderLayout e colocar o botão no centro do layout. Assim o botão ocupa todo o espaço disponível. Existe uma seção na paleta de componentes do NetBeans para componentes personalizados. Se você adicionar esse Painel como um componente, você pode arrastá-lo para o seu JFrame e ajustar o tamanho com drag’n’drop, do jeito que você quer.

rmendes08 muito obrigado, mas você falou grago para mim! kkkkk
vou dar uma estudada, valeu…

1 curtida