Olha só, eu estou usando netbeans e fiz o seguinte…
Crei uma classe chamada Pai extends JFrame… depois fui la denovo e dei um novo Formulário JFrame chamado Filho… ai onde estava extends JFrame mudei para Pai…
Só que quando vou editar visualmente o Filho eu não consigo visualizar os componentes do Pai.
O que estou fazendo de errado? ou tem algum segredo para funcionar isso no netbeans?
Se os componentes que vc quer acessar do pai forem forem atributos e vc tiver colocado eles como private, nao vai conseguir acessá-los fora da classe Pai. Se for esse o caso, mude-os para protected. Se não for esse o caso, poste o código, se não só sendo vidente pra descobriri o erro,
Olha só, estou usando o netbeans, criei o jFrame com o nome “Pai” onde tem um apenas um menu.
Depois criei um JFrame com o nome de “Filho” ai extendi da classe “Pai” ao invés de extender da classe JFrame… só que gostaria de que aparecesse o que tem na Pai, mas o ““aparecer”” que eu digo, é mostrar no modo de edição visual, pois na linha de código consigo acessar, pois está como protected como você disse…
Queria que fosse como se fosse no Delphi, eu criava um form e quando eu extendia ele eu conseguia visualizar o filho + o que tinha no pai.
Minha vontade é fazer um formPrincipal, onde depois eu sempre chamo esse cara para todas as telas, dessa forma já funciona, mas não consigo visualizar, e trabalhar com ele independentemente como no Delphi iria fazer, é possivel isso usando o Netbeans?
Está bem, ai está o fonte:
[code]package br.com.thiagofesta.form;
/**
*
@author Thiago Felipe Festa
*/
public class Pai extends javax.swing.JFrame {
public Pai() {
initComponents();
}
/** This method is called from within the constructor to
initialize the form.
WARNING: Do NOT modify this code. The content of this method is
always regenerated by the Form Editor.
*/ @SuppressWarnings(“unchecked”)
//
private void initComponents() {
jMenuBar1 = new javax.swing.JMenuBar();
jMenu1 = new javax.swing.JMenu();
jMenuItem1 = new javax.swing.JMenuItem();
jMenu2 = new javax.swing.JMenu();
jMenuItem2 = new javax.swing.JMenuItem();
@param args the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Pai().setVisible(true);
}
});
}
// Variables declaration - do not modify
protected javax.swing.JMenu jMenu1;
protected javax.swing.JMenu jMenu2;
protected javax.swing.JMenuBar jMenuBar1;
protected javax.swing.JMenuItem jMenuItem1;
protected javax.swing.JMenuItem jMenuItem2;
// End of variables declaration
}
[/code]
[code]package br.com.thiagofesta.form;
/**
*
@author Thiago Felipe Festa
*/
public class Filho extends Pai {
public Filho() {
initComponents();
}
/** This method is called from within the constructor to
initialize the form.
WARNING: Do NOT modify this code. The content of this method is
always regenerated by the Form Editor.
*/ @SuppressWarnings(“unchecked”)
//
private void initComponents() {
@param args the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Filho().setVisible(true);
}
});
}
// Variables declaration - do not modify
// End of variables declaration
Cara, mexi pouco com Netbeans, mexo mais no Eclipse. Sempre procuro fazer minhas interface de forma programática, pq esses editores visuais de Java não funcionam muito bem (pelo menos os que vi até hj). Sei que a galera reclama bastante disso, sempre comparando tb com edição de interfaces do Delphi. Enfim, não vou ter como te ajudar, a não ser que seja dizendo para vc fazer suas interfaces de forma programática.
Mas da um tempo que sempre aparece um guru aki pra resolver os problemas .
Usei o NB a algum tempo e agora também estou com o Eclipse.
Não porque prefira este ao outro, mas só porque é a ferramenta que é utilizada na pós que estou fazendo…
Mas se eu não estiver enganado, passei por esse mesmo problema e se me lembro bem, se você criou a classe pai utilizando o matisse do NB (não tenho certeza se o nome é este, mas quando você cria um Form e usa as facilidades de arrastar componentes), bom quando você faz isso pode ver que o NB cria um arquivo auxiliar .form, com o mesmo nome da sua classe.
Quando vc cria uma classe normal que extend uma classe deste tipo não existe o arquivo .Form dessa nova classe, logo você não vai conseguir edita-la utilizando o matisse do NB.
Bom… acho que é isso.
De qualquer forma, o que eu fiz foi editar os componentes na classe Pai, quando executo a classe filha, as alterações aparecem normalmente.
renzonuccitelli
É verdade, não usei muito o Delphi, usei ele uns 2 meses e meio só, mas ninguém pode reclamar da parte visual dele, achei boa.
Zeed01
Pois bem, notei isso já também, e como você disse, se eu rodo ele, eu consigo ver… isso é verdade, mas como eu disse acima, minha intenção era de poder editar eles visualmente como se fosse no Delphi… Mas não tem problema algum isso hehe, era só pra facilitar minha vida…
Vai na mão mesmo…
Obrigado a todos…
Mas se alguem souber de algo do genero, por favor me avise!
thiagofesta, você conseguiu resolver este problema?
Estou precisando criar um tela padrão de cadastro fazendo da mesma forma que você fez mas não estou conseguindo.