Projecto e Packages em Netbeans

Boa tarde,

Quando crio um projecto , automáticamente o Netbeans cria-me um Package com o mesmo nome e com a class main.

Quando eu crio um novo package, e crio uma classe dentro dele por exemplo a típica Hello World introduzo o código com saída no Output (System.out.println("…"); gravo e faço correr não me aparece nada… :?: :cry:

Mas também não dá erro.

Retirando o pacote que foi criado automáticamente quando criei o Projecto , dá a informação que lhe falta o método main. Não seria de esperar outra coisa.

Como posso resolver esta situação. :?:

Pretendo adicionar mais pacotes e classes, mas estou vendo que vou propagar o erro e vou ficar ainda mais baralhado…

Agradeço o vosso apoio,

Atentamente
José Santos

Quando você cria um projeto Java no netbeans, o projeto possui uma propriedade que define qual a classe que será executada quando você clicar o botão ‘Run’. (Por padrao é aquela classe que você descreveu).
Caso você queira alterar, execute os sequintes passos:

  • Crie a sua classe (contendo o método public static void main(String args[]));
  • Clique com o botão direito no seu projeto;
  • Propriedades
  • Selecione no bloco esquedo: Executar
  • Do lado direito em Classe principal, clique no botão Procurar…
  • Selecione a sua nova classe (observe que a classe deve possuir o método main);

[quote=wagner_a_lima]Quando você cria um projeto Java no netbeans, o projeto possui uma propriedade que define qual a classe que será executada quando você clicar o botão ‘Run’. (Por padrao é aquela classe que você descreveu).
Caso você queira alterar, execute os sequintes passos:

  • Crie a sua classe (contendo o método public static void main(String args[]));
  • Clique com o botão direito no seu projeto;
  • Propriedades
  • Selecione no bloco esquedo: Executar
  • Do lado direito em Classe principal, clique no botão Procurar…
  • Selecione a sua nova classe (observe que a classe deve possuir o método main);

[/quote]

Muito obrigado pela ajuda…

Terrível…

Um abraço
José Santos

Boa tarde Amigo Wagner…

Isso me leva a outra questão…

Se eu quiser fazer um projecto com vários packages com várias classes, devo fazer sempre isso se quiser ver o que a classe faz, certo?

Contudo, e de acordo com seu raciocínio, uma delas será a principal e como faço então? Ou todas elas irão precisar do método main? Podem não precisar desde que o processo esteja encapsulado noutra classe, certo??

Um exemplo:

Suponha um menú que ao clicar num botão (b1) abre um ecran (Form1) para eu preencher dados.

A classe do menú seria a principal e as as outras teriam métodos encapsulados que seriam activados pelo botão b1.
Está correcto este meu raciocínio??

Mais uma vez muito obrigado pela sua ajuda.

Estou rodando o Netbeans 6.9.1 em um Mac…

Atentamente
José Santos

Isso mesmo:
A classe que possui o menu poderá ser a classe principal, e ai você poderá ter quantas classes necessitar com os seus métodos de negócio.
A partir das suas classes de tela (view’s), você criará instâncias das suas classes de negócio para que possa chamar seus métodos.
Vai um exemplo meio inútil, mas que acho que dá pra entender a ideia.

public class MeuPrograma {
     public static void main(String args[]) {
          ClasseNegocio negocio = new ClasseNegocio("Wagner");
          negocio.meuMetodo();
     }
}


public class ClasseNegocio {
     private String nomeChamador;

     public ClasseNegocio(String nome) {
          this.nomeChamador = nome;
     }

     public void meuMetodo() {
          System.out.println("O cliente " + nomeChamador + " chamou o metodo da classe de negocio.");
     }
}

[quote=wagner_a_lima]Isso mesmo:
A classe que possui o menu poderá ser a classe principal, e ai você poderá ter quantas classes necessitar com os seus métodos de negócio.
A partir das suas classes de tela (view’s), você criará instâncias das suas classes de negócio para que possa chamar seus métodos.
Vai um exemplo meio inútil, mas que acho que dá pra entender a ideia.

[code]
public class MeuPrograma {
public static void main(String args[]) {
ClasseNegocio negocio = new ClasseNegocio(“Wagner”);
negocio.meuMetodo();
}
}

public class ClasseNegocio {
private String nomeChamador;

 public ClasseNegocio(String nome) {
      this.nomeChamador = nome;
 }

 public void meuMetodo() {
      System.out.println("O cliente " + nomeChamador + " chamou o metodo da classe de negocio.");
 }

}
[/code][/quote]

Significa então que o método main já ficou lá atrás.

Por outro lado, desculpe mas não consegui entender o código que teve a amabilidade de me enviar. Não é a questão de ser “inútil” como lhe chama, mas não consegui acompanhar o seu raciocínio…

Me desculpe mas estou mesmo começando embora algumas noções e termos já estejam na cabeça…

Provavelmente estou avançado rápido demais para o que eu sei e para o meu ritmo.

Me dê umas dicas de como seria inteligente “começar e continuar” o meu aprendizado do Java.

Não gostaria de desistir agora …

Um abraço

Cara, já é até repetido aqui, mas baixe a Apostila FJ-11 da Caelum… Depois estude o “Use a Cabeça, Java!” Lvro que aborda muito bem todas essas questões iniciais…

Só pra você entender o que ocorre… Na verdade o método main() fica ativo enquanto o seu programa estiver executando, porém ele é o método mais abaixo da pilha de chamada, a menos que você encontre um System.exit(0); o seu programa só fecha quando sai do método main()…

Só vais precisar de 1 e somente 1 método main() esse teu main() vai criar um Objeto, ou chamar uma Tela, iniciar uma Thread, etc… e a partir daí teu Sistema vai seguindo um fluxo de Tarefas, até tudo ser concluído e a execução voltar ao main(). Em meus projetos Swing eu sempre mantenho a Classe Main que a IDE cria e a partir dela eu chamo minha tela inicial…

Fica + ou - assim

public class Main {
    public static void main(String []args){
        new TelaMenu();
    }
}

Lá no meu Frame TelaMenu.java tenho a montagem da minha tela, o setVisible do Frame e começo minha execução de acordo com o menu que o usuário clicar… Claro que começo no Login e não no menu, mas já deu pra exemplificar…

Lembrando que isso é uma escolha minha… Há outras formas de fazer…

Abs []

Caro amigo, sinta-se a vontade para perguntar, afinal estamos aqui para isso, :wink:

Neste endereço, http://www.guj.com.br/posts/list/186448.java, existe uma discursão sobre o método main que acho que pode lhe ajudar, mas a ideia que quis passar foi a seguinte:

Normalmente em seu projeto Java, você terá uma única classe que possuirá o método public static void main(String args[]), pois esse método é chamado pela JVM para iniciar a aplicação.
Dependendo da estrutura do seu sistema, você pode colocar dentro do seu método main chamada(s) a método(s) que criem uma tela específica para o seu sistema, com menus, botões etc.
A partir dessa classe principal, você pode fazer chamadas para vários outros objetos (instâncias de outras classes) de acordo com suas necessiades.
Observe que no exemplo anterior tenho uma classe chamada MeuPrograma que possui o método main. Essa classe será carregada e automaticamente o método main será chamado pela JVM.
Neste caso, o dentro do método main é criada uma instância da classe ClasseNegocio para o objeto negocio com a passagem do parâmetro “Wagner” através do seu construtor que recebe uma String como parametro.
Logo em seguida, é feita a chamada ao método meuMetodo() através do objeto negocio que é uma instância da classe ClasseNegocio.
O método meuMetodo(), simplesmente, escreve no console um texto concatenando com o parametro enviado, porém poderia ser qualque outra coisa, como por exemplo uma validação de cpf, de data, de comprimento do atributo nomeChamador, etc.

Acho que sua dificuldade está em entender como fazer os “relacionamentos” entre suas classes. Se for isso, não existe uma regra de como fazer isso, mas normalmente você deve tentar dividir as responsabilidades de cada classe.
Crie classes responsávels por renderizar as telas (forms, botões, menus etc), classes responsáveis por realizar as validações , as regras de negócio de maneira geral, e crie classes para realizar a persitências de objetos persistentes (normalmente valores repassados através de formulários).

Mas lembre, isso não é uma regra de como trabalhar com java. Caso alguém queira, pode fazer tudo em uma só classe com vários métodos estáticos, mas isso vira uma verdadeira quebra de vários princípios de OO.

** A apostila da Caelum citada pelo colega realmente é muito boa. Sugiro que dê uma olhada nela e em vários artigos da Caelum que possuem muito conteúdo explicativo.

[quote=adriano_si]Cara, já é até repetido aqui, mas baixe a Apostila FJ-11 da Caelum… Depois estude o “Use a Cabeça, Java!” Lvro que aborda muito bem todas essas questões iniciais…

Só pra você entender o que ocorre… Na verdade o método main() fica ativo enquanto o seu programa estiver executando, porém ele é o método mais abaixo da pilha de chamada, a menos que você encontre um System.exit(0); o seu programa só fecha quando sai do método main()…

Só vais precisar de 1 e somente 1 método main() esse teu main() vai criar um Objeto, ou chamar uma Tela, iniciar uma Thread, etc… e a partir daí teu Sistema vai seguindo um fluxo de Tarefas, até tudo ser concluído e a execução voltar ao main(). Em meus projetos Swing eu sempre mantenho a Classe Main que a IDE cria e a partir dela eu chamo minha tela inicial…

Fica + ou - assim

public class Main {
    public static void main(String []args){
        new TelaMenu();
    }
}

Lá no meu Frame TelaMenu.java tenho a montagem da minha tela, o setVisible do Frame e começo minha execução de acordo com o menu que o usuário clicar… Claro que começo no Login e não no menu, mas já deu pra exemplificar…

Lembrando que isso é uma escolha minha… Há outras formas de fazer…

Abs [][/quote]

Obrigado pela sua ajuda e compreensão e acima de tudo paciência.

Só uma dica …
De onde posso baixar o livro “Use a cabeça, Java”. Ele é gratuito ou pode ser enviado á cobrança?

Mais uma vez muito obrigado pela Vossa paciência para me aturarem.

Gostei da forma objectiva como abordou a questão.

Por favor, não se zanguem nem aborreçam por minha causa

Abraços a todos

Só um porém… A apostila da Caelum, você pode baixar… O livro, de acordo com as regras do fórum e os meus valores pessoais. lhe aconselho a comprar, pois nem o fórum nem minha pessoa é a favor de pirataria… Já fui, hoje não mais…

O livro é um investimento cara… Vale a pena de verdade…

Abraços :wink:

[EDIT] - Link da Apostila: http://www.caelum.com.br/curso/fj-11-java-orientacao-objetos/

[quote=adriano_si]Só um porém… A apostila da Caelum, você pode baixar… O livro, de acordo com as regras do fórum e os meus valores pessoais. lhe aconselho a comprar, pois nem o fórum nem minha pessoa é a favor de pirataria… Já fui, hoje não mais…

O livro é um investimento cara… Vale a pena de verdade…

Abraços :wink:

[EDIT] - Link da Apostila: http://www.caelum.com.br/curso/fj-11-java-orientacao-objetos/[/quote]

Penso como você em relação aos direitos autorias. Quem matou a cabeça a fazer o livro, tem de ser recompensado pelo valor e esforço

Pode-me dar as coordenadas do livro…

Autor, Editora, ISBN… , para o comprar.

Muito agradecido…

A apostila já baixei.

Abraços

http://www.google.com.br/search?q=Use+a+Cabeça%2C+Java!&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:pt-BR:official&client=firefox-a

http://www.submarino.com.br/produto/1/1074847/use+a+cabeca!+java

[quote=adriano_si]http://www.google.com.br/search?q=Use+a+Cabeça%2C+Java!&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:pt-BR:official&client=firefox-a

http://www.submarino.com.br/produto/1/1074847/use+a+cabeca!+java[/quote]

Mais uma vez obrigado pela atenção.

Abraços