classFrm001extendsTestTabledPane{Frm001(){setTitle("Cadastro de Clientes");}publicstaticvoidmain(Stringargs[]){TestTabledPaneobj=newFrm001();obj.setVisible(true);}}}
Pergunta: Nesta herança, como faço para alterar o nome das Abas para por exemplo “Dados Pessoais” e “Crédito” ou ainda acrescer mais uma aba, e colocar o textfield NOME na aba “Dados Pessoais”??
Obrigado.
Bom, o que vc está querendo é ter acesso ao JTabbedPane do pai da sua classe, correto?!
Para tal, vc pode marcar a visibilidade dessa sua propriedade como “protected” e não como “private”.
Protected dá proteção de pacote e herança, ou seja, todo mundo dentro do pacote da sua classe, ou que são filhas dela, vão enxergar tua propriedade normalmente, como se fosse delas.
Mas isso não é legal. Nada garante que uma outra classe fora a TestTabledPane avacalhe suas abas.
Vc pode fazer então métodos, públicos ou protegidos, que expõe a funcionalidade desejada.
Como assim?!
Por exemplo, um método que adiciona mais uma panel nas suas abas.
publicclassFrm00extendsTestTabledPane{publicFrm00(){setTitle("Cadastro de Clientes");addNovaAba("Dados Pessoais",newJPanel());}}
Deu pra sacar?!
Espero ter ajudado…
[]s
rafaelglauber
Protected só é acessível nas própria classe ou em suas especializações, em outras classes do mesmo pacote que não são filhas dessa classe um metodo ou atributo protected não é acessível.
U
uchoaaa
Protected só é acessível nas própria classe ou em suas especializações, em outras classes do mesmo pacote que não são filhas dessa classe um metodo ou atributo protected não é acessível.
hhmm… ué, como assim?!
Num teste rápido aqui no eclipse, tudo funcionou… :shock:
tinha essa mesma visão, ainda mais que programo muito em Delphi e lá é como falei acima…mas estou certo que sua afirmação é verdadeira.
U
uchoaaa
Sergio Figueras:
Métodos private não são herdados.
Nao seria melhor usar composição ao invés de herança, nesse caso?
Opa, peraê, peraê, deves estar confundindo…
Eu justamente falei que os membros da classe com visibilidade protected são herdados e visíveis também por qualquer outra classe dentro do mesmo pacote.
Equanto com private, não.
O rafaelglauber comentou que outras classes no mesmo pacote não tinha acesso…
E não meu exemplo, foi apenas um exemplo! rs
Não é pra existir relacionamentos, apenas quis falar de acesso por pacotes…
Vou até trocar o nome das classes para não dar mais confusão… hehe
tinha essa mesma visão, ainda mais que programo muito em Delphi e lá é como falei acima…mas estou certo que sua afirmação é verdadeira.
Pois é… por um momento, me deixastes na dúvida. rs
Falando sobre, nunca soube ao certo o que o acesso “default” fazia, mas o link ajudou…
kina:
Sim, é exatamente isso.
private = somente a classe
default = mesmo pacote
protected = default + subclasses
public = qualquer classe em qualquer pacote
[]s
G
ggero
obrigado amigos pela atenção, Sérgio vc acha que seria mais indicado a composiçao? procurei material na internet sobre o assunto mas não consegui entender como aplicá-la neste caso… poderia dar um pequeno exemplo ?? obrigado.
ggero, Sempre é mais interessante utilizar composição ao invés de herança. Herança limita muito as coisas e voce perde caso tenha que fazer alguma alteração que não é pra todo mundo.
Dá uma lida na apostila Fj21 da caelum, no forum tem o Link. É muito boa.