<indentifier> expected

15 respostas
jayrmotta

Bom, sou novato também e estava seguindo um manual de SWING que me mandou criar uma classe que fosse subclasse de JDialog e que tivesse como frame pai uma JFrame que eu havia criado.

Eis a primeira frame:

import java.awt.*;
import javax.swing.*;
public class CandidatoEmprego {
	private JPanel painelId;
	private JPanel painelCurri;
	private JPanel painelAreas;
	private JPanel painelBotoes;
	public JFrame Candidato;
	public CandidatoEmprego() {
		painelId = new JPanel();
		painelCurri = new JPanel();
		painelAreas = new JPanel();
		painelBotoes = new JPanel();
		Candidato = new JFrame();
		Candidato.setTitle("Candidato Emprego");
		painelId.setBackground(Color.gray.brighter());
		painelId.setLayout(null);
		painelId.setSize(480,80);
		painelCurri.setBackground(Color.gray.brighter());
		painelCurri.setLayout(null);
		painelCurri.setSize(480,150);
		painelAreas.setBackground(Color.gray.brighter());
		painelAreas.setLayout(null);
		painelAreas.setSize(480,80);
		painelBotoes.setBackground(Color.gray.brighter());
		painelBotoes.setLayout(null);
		painelBotoes.setSize(480,37);
		Candidato.getContentPane().setLayout(null);
		Candidato.setSize(510,480);
		Candidato.getContentPane().add(painelId);
		Candidato.getContentPane().add(painelCurri);
		Candidato.getContentPane().add(painelAreas);
		Candidato.getContentPane().add(painelBotoes);
		painelId.setLocation(10,70);
		painelCurri.setLocation(10,155);
		painelAreas.setLocation(10,310);
		painelBotoes.setLocation(10,395);
		Candidato.setVisible(true);
		}
		public static void main(String args[]) {
			CandidatoEmprego Ce = new CandidatoEmprego();
		}
}

E a segunda que da erro:

import java.awt.*;
import javax.swing.*;
public class DocumentosEntregues extends JDialog {
	public JDialog dcen;
	CandidatoEmprego Ce = new CandidatoEmprego();
    dcen = new JDialog(Ce.Candidato,"Documentos entregues", true);
public DocumentosEntregues() {
	dcen.getContentPane().setSize(300,470);
	dcen.getContentPane().setLocation(200,200);
	dcen.getContentPane().setLayout(null);
}
public static void main(String[] args) {
	DocumentosEntregues De = new DocumentosEntregues();
}
}

[b]C:\DocumentosEntregues.java:6: expected
dcen = new JDialog(Ce.Candidato,“Documentos entregues”, true);
^
1 error

Process completed.[/b]
Elas estão em arquivos diferentes, sou novato … não consigo entender algumas coisas… perdão se falei alguma asneira.

[EDITADO] ME DESCULPEM PELO CÓDIGO, PROMETO NAO COMETER OUTRA GAFE DESSAS!

MAIS UMA VEZ HEHE!

15 Respostas

maiconramones

E ai jayrmotta, embora sejas novato algumas coisas tu deve saber hehehe, primeiro quando for postar o seu código fonte poste entre as tags Code leia mais aqui http://www.guj.com.br/posts/list/50115.java e segundo deves colocar qual a tua dúvida ou se está acontecendo algum erro a mensagem de erro.

Assim fica mais fácil pra gente te ajudar :thumbup:

Abraço

jingle

Quando você vai no médico você não pode simplesmente chegar e falar que esta doente… tem que ao menos dizer os sintomas para que ele possa lhe ajudar…

tente por dentro das tag code e informarmos o erro que vai ser muito mais fácil e rápido o auxilio.

jayrmotta

me perdoem pela gafe, se der pra entender agora beleza, se não eu mudo denovo…

obrigado pela paciencia!

maiconramones

Pois MUDE… edite o post e coloque também qual a sua dúvida ou qual o erro…

[edit]Não tinha atualizado a página aqui pra mim[/edit]

tem como tu postar o todo o stacktrace, ou seja toda a mensagem de erro?

thegoergen

Parece que ele não acha o seu Ce.

Tenta assim:

public class DocumentosEntregues extends JDialog {
      public JDialog dcen;
      CandidatoEmprego Ce;
      public DocumentosEntregues() {
	    Ce = new CandidatoEmprego();
	    dcen = new JDialog(Ce.Candidato,"Documentos entregues", true);
	    dcen.getContentPane().setSize(300,470);
	    dcen.getContentPane().setLocation(200,200);
	    dcen.getContentPane().setLayout(null);
      }
      public static void main(String[] args) {
	    DocumentosEntregues De = new DocumentosEntregues();
      }
}
jingle

Edit não tinha visto uma parte.

jayrmotta

Obrigado thegoergen, funcionou. Ao menos compilou, mais nao atendeu ao que eu queria.

Estou seguindo um manual e ele pediu isso olha:
Complementando o exercício CandidatoEmprego, crie uma
classe em java (DocumentosEntregues.Java) que seja subclasse
de JDialog. Todas as características devem ser definidas no
construtor da classe atual:
Frame pai: janela (da classe CandidatoEmprego)
Titulo: Documentos Entregues
Modal: true
Cor de fundo: (73,165,227)
Dimensoes: largura = 300 e altura = 470
Location: x = 200 e y = 200
Layout: nulo

ou seja… ksaokasokassa … o meu tem muito haver nao eu acho

thegoergen

Uma dica, você não precisar criar um new JDialog().

Crie um new CandidatoEmprego() e no construtor dele você coloca uma chamada ao super(). fica mais legível, rápido e simples…

jayrmotta

Como eu não preciso de uma nova JDialog?

A intenção é criar uma janela que sera chamada através de um botão, e exibir quais documentos o candidato ja entregou assim como setar.

Desculpe minha ignorancia :shock: rs

thegoergen

jayrmotta:
Como eu não preciso de uma nova JDialog?

A intenção é criar uma janela que sera chamada através de um botão, e exibir quais documentos o candidato ja entregou assim como setar.

Desculpe minha ignorancia :shock: rs

É que a sua classe herda de um JDialog, ou seja: A classe DocumentosEntregues É um JDialog … Olha um exemplinho que eu fiz, não testei, tá? :wink:

import java.awt.*;
import javax.swing.*;
public class DocumentosEntregues extends JDialog {
      
      public DocumentosEntregues( Frame pai ) {
	    super(pai, "Documentos entregues", true); // como se eu chamasse um novo JDialog
	    
	    this.getContentPane().setSize(300,470); // o this é a instância atual. E perceba, ele É um JDialog...
	    this.getContentPane().setLocation(200,200);
	    this.getContentPane().setLayout(null);
      }
      
      public static void main(String[] args) {
	    DocumentosEntregues De = new DocumentosEntregues( new CandidatoEmprego().Candidato ); // Não entendi muito bem essa sua outra classe, mas você usava assim, então para o exemplo eu deixo assim também, mas acho que pode ser melhorado...
      }
}

QUalquer dúvida…

[EDIT]

Outra coisa: A sua outra classe, que eu não entendi muito bem… Porque ela não é subclasse de JFrame??? Você não precisa daquela propriedade Candidato que é um JFrame, e você pode sempre chamar o this ao invés dela… tente ler um pouco sobre orientação a objetos e heranças…

danielbussade
import java.awt.*;
import javax.swing.*;

public class DocumentosEntregues extends JDialog {

	CandidatoEmprego Ce = new CandidatoEmprego();

	public JDialog dcen = new JDialog(Ce.Candidato, "Documentos entregues",
			true);

	public DocumentosEntregues() {
		dcen.getContentPane().setSize(300, 470);
		dcen.getContentPane().setLocation(200, 200);
		dcen.getContentPane().setLayout(null);
	}

	public static void main(String[] args) {
		DocumentosEntregues De = new DocumentosEntregues();
	}
}

O erro está aqui:

public JDialog dcen;   
    CandidatoEmprego Ce = new CandidatoEmprego();   
    dcen = new JDialog(Ce.Candidato,"Documentos entregues", true);

Você não usar a referencia a uma classe para instanciar um objeto sem estar dentro de um método.

Att

jingle

faça com o CandidatoEmprego extender um frame seguindo o exemplo que o thegoergen fez pro jDialog vai facilitar sua vida

jayrmotta

Hehe, to tão emocionado com esse fórum.

Pela primeira vez tenho ajuda de alguem que realmente sabe o que fala.

Entao thegoergen, beleza… facilitou demais mesmo… mais continua invocando a janela do JFrame CandidatoEmprego, o que eu quero é que esta seja uma janela distinta onde eu clicarei num botão na CandidatoEmprego e a invocarei.

Vocês são todos muito competentes nisso, e a razão por eu continuar perguntando é poder fazer isso por alguem um dia.

thegoergen

Você precisa colocar o botão na tela CandidatoEmprego. Por isso é melhor ela herdar da JFrame, facilita muito!

E nele (o botão) você coloca a ação de chamar o teu DocumentosEntregues. Veja aqui no fórum na parte de Interface Gráfica, sobre eventos e botões.

Tenta trocar a tua classe principal:

import java.awt.*;
import javax.swing.*;
public class CandidatoEmprego extends JFrame {
      private JPanel painelId;
      private JPanel painelCurri;
      private JPanel painelAreas;
      private JPanel painelBotoes;
      
      public CandidatoEmprego() {
	    super("Candidato Emprego");
	    initPaineis();
	    
	    this.getContentPane().setLayout(null);
	    this.setSize(510,480);
	    this.getContentPane().add(painelId);
	    this.getContentPane().add(painelCurri);
	    this.getContentPane().add(painelAreas);
	    this.getContentPane().add(painelBotoes);
	    
	    painelId.setLocation(10,70);
	    painelCurri.setLocation(10,155);
	    painelAreas.setLocation(10,310);
	    painelBotoes.setLocation(10,395);
      }
      
      private void initPaineis() {
	    
	    painelId = new JPanel(null); // Layout null
	    painelCurri = new JPanel(null);
	    painelAreas = new JPanel(null);
	    painelBotoes = new JPanel(null);
	    painelId.setBackground(Color.gray.brighter());
	    painelId.setSize(480,80);
	    painelCurri.setBackground(Color.gray.brighter());
	    painelCurri.setSize(480,150);
	    painelAreas.setBackground(Color.gray.brighter());
	    painelAreas.setSize(480,80);
	    painelBotoes.setBackground(Color.gray.brighter());
	    painelBotoes.setSize(480,37);
      }
      public static void main(String args[]) {
	    CandidatoEmprego Ce = new CandidatoEmprego();
	    
	    Ce.setVisible(true);
      }
}
jayrmotta

E:\meus .java\DocumentosEntregues.java:14: cannot find symbol
symbol : constructor DocumentosEntregues()
location: class DocumentosEntregues
DocumentosEntregues De = new DocumentosEntregues( );
^
1 error

import java.awt.*;   
import javax.swing.*;   
public class DocumentosEntregues extends JDialog {   
         
      public DocumentosEntregues(Frame pai) {   
        super(pai, "Documentos entregues", true); // como se eu chamasse um novo JDialog   
           
        this.getContentPane().setSize(300,470); // o this é a instância atual. E perceba, ele É um JDialog...   
        this.getContentPane().setLocation(200,200);   
        this.getContentPane().setLayout(null);   
      }   
         
      public static void main(String[] args) {   
        DocumentosEntregues De = new DocumentosEntregues();
        }
        }

Hehehe, um noob pedindo socorro!?

Ajudem ae se possivel ;D

Criado 4 de abril de 2008
Ultima resposta 5 de abr. de 2008
Respostas 15
Participantes 5