Me ajudem com este erro

7 respostas
marcelo_mococa

Bom Dia a todos…

Estou aprendendo o Visual Editor do Eclipse. Estou montando algo muito simples e que tá dando uns erros que naum consigo descobrir o q são.
Alguém poderia me ajudar?
Abaixo segue o código, o q está em negrito são onde estao os erros.

import javax.swing.JDesktopPane;

import javax.swing.JTextPane;

import javax.swing.JButton;

public class Teste {
int a=0;

private JDesktopPane jDesktopPane = null;

private JTextPane jTextPane = null;

private JButton jButton = null;
public static void main(String[] args) {

Teste test = new Teste();

test.[b]setVisible<a>/b</a>;

}
public Teste(){

super(“Teste”);

montarLayout();

}
public void montarLayout(){

this.[b]setjDesktopPane<a>/b</a>;

}
private JDesktopPane getJDesktopPane() {

if (jDesktopPane == null) {

jDesktopPane = new JDesktopPane();

jDesktopPane.setSize(504, 163);

jDesktopPane.setBackground(java.awt.Color.lightGray);

jDesktopPane.add(getJTextPane(), null);

jDesktopPane.add(getJButton(), null);

}

return jDesktopPane;

}
private JTextPane getJTextPane() {

if (jTextPane == null) {

jTextPane = new JTextPane();

jTextPane.setBounds(42, 33, 166, 22);

jTextPane.setText("O valor de a é: " +a);

}

return jTextPane;

}
private JButton getJButton() {

if (jButton == null) {

jButton = new JButton();

jButton.setBounds(292, 64, 91, 25);

jButton.setText(Click aqui);

jButton.addMouseListener(new java.awt.event.MouseAdapter() {

public void mouseClicked(java.awt.event.MouseEvent e) {

a +=1;

jTextPane.setText("O novo valor de a é: " + a);

}

});

}

return jButton;

}

}

7 Respostas

P

ei, posso estar enganado em algumas coisas, mas o q vale é a intenção em ajudar…

nos imports acho q vc só precisa fazer um, no caso

import javax.swing.*;

kando eu faço janela eu declaro no nome da classe um extend

no seu caso:

public class Teste extends JFrame implements ActionListener{}

como eu vi q no seu codigo tem botão vc precisa implementar um action listener para q eles funcionem no futuro…

aí na hora de decarar as propiedades do JFrame vc declara os objetos sem j na frente…tipo assim

public Button botao;
public Label titulo;

num vai eskecer d instanciar depois
ali no primeiro erro tenta por assim

test.show();

marcelo_mococa

Olá, consegui consertar dois erros.
Esqueci de extender minha classe texte a classe JFrame

class Texte extends JFrame

mas ainda continua dando um erro, alguem poderia me ajudar?

o erro é o seguinte: The method setjDesktopPane(JDesktopPane) is undefined for the type Teste
Ocorre aonde está em negrito.

public void montarLayout(){

this.[b]setjDesktopPane<a>/b</a>;		

}
private JDesktopPane getJDesktopPane() {
	if (jDesktopPane == null) {
		jDesktopPane = new JDesktopPane();
		jDesktopPane.setSize(504, 163);
		jDesktopPane.setBackground(java.awt.Color.lightGray);
		jDesktopPane.add(getJTextPane(), null);
		jDesktopPane.add(getJButton(), null);
	}
	return jDesktopPane;
oliveirarenan

Caros Amigos,

Primeiro não é uma boa prática de programação estender a classe jFrame.

Vc poderia criar um objeto do tipo JFrame, e instancia-lo…
Quando for setar algum atributo para ele, vc coloca

frame.setSize (Por Exemplo).

Eu acho q naum seria interessante vc usar u JDeskTopPanel…

use somente um panel…

qq coisa é só gritar

:stuck_out_tongue: :stuck_out_tongue: :stuck_out_tongue: :stuck_out_tongue: :stuck_out_tongue: :stuck_out_tongue: :stuck_out_tongue: :stuck_out_tongue: :stuck_out_tongue:

marcelo_mococa

Desculpe a insistencia…
Mas ainda naum consegui entender?

Tenhu um exemplo aqui q ta funcionando, muito parecido com este que eu postei. Ao inves de um JDesktopPane, foi usado um JPane. Será q o problema está aí?

Veja o outro código (q utiliza JPane):

private void initialize() {

this.[b]setContentPane<a>/b</a>;

this.setSize(300, 200);

}
private javax.swing.JPanel getJContentPane() {

if (jContentPane == null) {

jContentPane = new javax.swing.JPanel();

jContentPane.setLayout(null);

jContentPane.add(getJCheckBox(), null);

jContentPane.add(getJLabel(), null);

}

return jContentPane;

Percebeu? Ainda naum consegui entender de onde ele tirou aquele ContentPane, será q é algum métodp da classe JPane?
Se for qual será q é o método equivalente para a classe JDesktopPane?

Espero ter sido mais claro agora…
Mais uma vez desculpe pelas insistentes perguntas…

_fs

oliveirarenam, por que não é uma boa prática estender JFrame?

brlima

Marcelo,
Pra usar o DesktopPane ( que não deixa de ser um Component ) vc deve adiciona-lo ao seu frame, ou seja:

frame.getContentPane().add(jDesktopPane);

Não se mexe no ContentPane:

frame.setContentPane(jDesktopPane);

Sobre extender o frame, se não for boa prática, tô ferrado :smiley:
E se eu quiser colocar caracteristicas proprias no meu frame para gerencia-lo, por exemplo? hmm? :expressionless:

marcelo_mococa

Meus Agradecimentos a todos…

Consegui fazer meu programinha rodar !!!
Fiz estas mudanças no código.

private void montarLayout(){

this.[b]setContentPane<a>/b</a>;		

this.setSize(600, 200);

}

Abraços a todos…
Fui…

Criado 3 de março de 2005
Ultima resposta 3 de mar. de 2005
Respostas 7
Participantes 5