Erro no meu programa muito estranho, alguém me ajuda!?

Olá pessoal

Eu estou passando por um problema grave aqui!!! Eu fiz uma calculadora em Java (Óbvio :lol: ) e mandei pra uma amiga que também programa em Java, quando ela compilou deu os seguintes erros:

C:\> javac Principal.java Principal.java:18: incompatible types found : boolean required: java.lang.Boolean public Boolean Info = false, Ad = false, Sub = false, Mul = false, Div = false; ^ Principal.java:18: incompatible types found : boolean required: java.lang.Boolean public Boolean Info = false, Ad = false, Sub = false, Mul = false, Div = false; ^ Principal.java:18: incompatible types found : boolean required: java.lang.Boolean public Boolean Info = false, Ad = false, Sub = false, Mul = false, Div = false; ^ Principal.java:18: incompatible types found : boolean required: java.lang.Boolean public Boolean Info = false, Ad = false, Sub = false, Mul = false, Div = false; ^ Principal.java:18: incompatible types found : boolean required: java.lang.Boolean public Boolean Info = false, Ad = false, Sub = false, Mul = false, Div = false; ^ Principal.java:202: operator == cannot be applied to java.lang.Boolean,boolean if (Info == true) { ^ Principal.java:205: incompatible types found : boolean required: java.lang.Boolean Info = false; ^ Principal.java:222: incompatible types found : boolean required: java.lang.Boolean Info = false; ^ Principal.java:223: incompatible types found : boolean required: java.lang.Boolean Ad = false; ^ Principal.java:224: incompatible types found : boolean required: java.lang.Boolean Sub = false; ^ Principal.java:225: incompatible types found : boolean required: java.lang.Boolean Mul = false; ^ Principal.java:226: incompatible types found : boolean required: java.lang.Boolean Div = false; ^ Principal.java:240: incompatible types found : boolean required: java.lang.Boolean Info = true; ^ Principal.java:241: incompatible types found : boolean required: java.lang.Boolean Sub = false; ^ Principal.java:242: incompatible types found : boolean required: java.lang.Boolean Mul = false; ^ Principal.java:243: incompatible types found : boolean required: java.lang.Boolean Div = false; ^ Principal.java:252: incompatible types found : boolean required: java.lang.Boolean Info = true; ^ Principal.java:253: incompatible types found : boolean required: java.lang.Boolean Ad = false; ^ Principal.java:254: incompatible types found : boolean required: java.lang.Boolean Sub = true; ^ Principal.java:255: incompatible types found : boolean required: java.lang.Boolean Mul = false; ^ Principal.java:256: incompatible types found : boolean required: java.lang.Boolean Div = false; ^ Principal.java:261: incompatible types found : boolean required: java.lang.Boolean Info = true; ^ Principal.java:262: incompatible types found : boolean required: java.lang.Boolean Ad = false; ^ Principal.java:263: incompatible types found : boolean required: java.lang.Boolean Sub = true; ^ Principal.java:264: incompatible types found : boolean required: java.lang.Boolean Mul = false; ^ Principal.java:265: incompatible types found : boolean required: java.lang.Boolean Div = false; ^ Principal.java:278: incompatible types found : boolean required: java.lang.Boolean Info = true; ^ Principal.java:279: incompatible types found : boolean required: java.lang.Boolean Ad = false; ^ Principal.java:280: incompatible types found : boolean required: java.lang.Boolean Sub = false; ^ Principal.java:281: incompatible types found : boolean required: java.lang.Boolean Mul = true; ^ Principal.java:282: incompatible types found : boolean required: java.lang.Boolean Div = false; ^ Principal.java:296: incompatible types found : boolean required: java.lang.Boolean Info = true; ^ Principal.java:297: incompatible types found : boolean required: java.lang.Boolean Ad = false; ^ Principal.java:298: incompatible types found : boolean required: java.lang.Boolean Sub = false; ^ Principal.java:299: incompatible types found : boolean required: java.lang.Boolean Mul = false; ^ Principal.java:300: incompatible types found : boolean required: java.lang.Boolean Div = true; ^ Principal.java:305: incompatible types found : boolean required: java.lang.Boolean Info = true; ^ Principal.java:306: incompatible types found : boolean required: java.lang.Boolean Ad = false; ^ Principal.java:307: incompatible types found : boolean required: java.lang.Boolean Sub = false; ^ Principal.java:308: incompatible types found : boolean required: java.lang.Boolean Mul = false; ^ Principal.java:309: incompatible types found : boolean required: java.lang.Boolean Div = true; ^ Principal.java:315: operator == cannot be applied to java.lang.Boolean,boolean if (Ad == true) ^ Principal.java:317: operator == cannot be applied to java.lang.Boolean,boolean else if (Sub == true) ^ Principal.java:319: operator == cannot be applied to java.lang.Boolean,boolean else if (Mul == true) ^ Principal.java:321: operator == cannot be applied to java.lang.Boolean,boolean else if (Div == true) ^ 45 errors

Agora o mais estranho, aqui no meu computador, compila e funciona perfeitamente, e no Windows também, agora é só passar pra outra pessoa que já dá essas coisas!! 3 pessoas reclamaram que não conseguem compilar e nem rodar o programa!! Achei que era problema no charset mas não é, parece que o meu código fica irreconhecivel num SDK de fora sei lá!!! Será que alguém me da uma luz?!?! Eu já não sei mais o que fazer, estou com esse problema a 1 semana e não consegui resolver, a minha ultima corrida vai ser aqui!!!

Quem quiser ver a calculadora clique nos links abaixo:

Calculadora

Isso se não der problema no pc de vocês!!!
Obrigado

Pilantra 8)

Rodou sem problemas aqui!!!

Você usa Linux ou Windows?!? Qual versão de Java você tem!?!?

Eu uso Fedora core 3.

Tive que alterar esta linha para funcionar aqui:

//public Boolean Info = false, Ad = false, Sub = false, Mul = false, Div = false;
public boolean Info = false, Ad = false, Sub = false, Mul = false, Div = false;

Meus amigos, eu descobri o problema e fiz uns testes aqui e fiquei com algumas dúvidas!!!

Eu insatalei no Windows o j2sdk 1.4.2_07 e recompilei a minha calculadora, mas quando executei deu erros, os mesmos postados acima!! Dae eu percebi que tinha coisa errada, ele não rodava .class do j2sdk 1.5.0 e também não estava rodando o meu código compilado pro outro sdk!!! Dae tinha uns erros de swing, source unknow!!! Retirei os J dos componetes e transformei tudo em AWT!!! Compilei e rodou perfeitamente!!! Agora as dúvidas:

  1. A escrita do código do j2sdk 1.5.0 mudou em relação ao 1.4?!

  2. Porque o 1.4 não reconhece o swing?!

  3. E o mais importante, o que eu devo fazer pra não acontecer isso!? Eu não devo ficar mandando todo mundo atualiza o Java pro 1.5 somente pra rodar os programas que eu faço!!!

Agradeço qualquer ajuda!!

Muito Obrigado

Pilantra 8)

Seu código compilou e rodou no JDK 1.5 porque a partir desta versão passou a existir um mecanismo chamado auto-boxing.
Quando você faz isso no Java 5.0:

Boolean b = true;

é a mesma coisa se você fizesse:

Boolean b = new Boolean(true);

no Java 1.4.2, por exemplo.

Só que fazer isso

Boolean b = true;

em versões anteriores ao Java 5.0 é errado :wink:

Vale lembrar que Boolean (que é a classe java.lang.Boolean) é diferente de boolean (que é um tipo primitivo de 1 bit).

Só mais uma dica :slight_smile:
É sempre recomendado usar Boolean.valueof(true) ao invés de usar o construtor new Boolean(true), apesar que os ganhos serem minimos :slight_smile:

Maravilha! Ja estamos vendo duvidas com relacao aos recursos novos do Tiger - isso significa que a adocao do 1.5 esta avancando. :smiley:

Marcio Kuchma

Puxa eu não sabia que teve uma mudança assim tão significativa!!!
Muita gente falou que esse novo java tá dando muito pau, e eu achando que era o charset heheh!!!

Mas em relação ao swing, teve muitos erros do swing também, como se ele não conseguisse abrir ou reconhecer os código, teve alguma mudança na criação do Swing?!?! :frowning:

Puxa se mudou, custei tanto pra aprender o bendito do swing e vou ter que começar tudo do zero por causa da p**** do 1.5 :cry:

[quote=Pilantra]Puxa eu não sabia que teve uma mudança assim tão significativa!!!
Muita gente falou que esse novo java tá dando muito pau, e eu achando que era o charset heheh!!!

Mas em relação ao swing, teve muitos erros do swing também, como se ele não conseguisse abrir ou reconhecer os código, teve alguma mudança na criação do Swing?!?! :frowning:

Puxa se mudou, custei tanto pra aprender o bendito do swing e vou ter que começar tudo do zero por causa da p**** do 1.5 :cry: [/quote]

Não exagere! Você não irá ter que aprender tudo denovo… apenas será obrigado a usar OO.

Como vc quer atribuir um valor a um objeto do tipo Boolean sem instancia-lo?

Ora mas variavel boolean tem que instaciar?!?! String e as outras não precisam né!?

Eu acho que vou continuar com o 1.5 mesmo, dae eu pratico nele mesmo!!!

Valeu

Aí Pilantra, conhece a Jaca?

http://geocities.yahoo.com.br/renato3110/download/jaca.zip

Como a sua calculadora é a melhor do mundo, tenho que colocar a minha em algum universo paralelo para evitar conflitos!!! :smiley: :smiley: :smiley:

Vamos unir essas duas poderosíssimas aplicações e formar um Super Sayadin!!! :smiley: :smiley: :smiley:

[quote=Pilantra]Ora mas variavel boolean tem que instaciar?!?! String e as outras não precisam né!?

Eu acho que vou continuar com o 1.5 mesmo, dae eu pratico nele mesmo!!!

Valeu[/quote]

Na verdade estas mudanças de outboxing são apenas conveniencias para a codificação, o trabalho foi jogado para o compilador, assim como o “for” para coleções e a quantidade variavel de parametros “…” que na verdade é um array.

Existem sim outras mudanças mais sgnificativas, principalmente em Java2D o que afeta diretamente o Swing. Mas nada drástico na API do Swing.

Uma grande mudanças mesmo são os “Generics”:
http://java.sun.com/j2se/1.5.0/docs/guide/language/generics.html

[]'s Igor

Pilantra se vc compilar mesmo usando o 5.0 com a opção

javac -source 1.4 NomeDaClasse.java

e mandar pros seus amigos e amigas não funciona ? Ja tento :?:
Abraço!

Se ocorreram erros de compilação com o SWING, então o problema é com a codificação, não com a versão do Java! Eu desenvolvo um programa que usa e abusa de SWING, uso a versão 1.4, e só por curiosidade compilei com a 1.5 pra ver o que acontecia. Compilou sem problema algum, e rodou também sem nenhum problema mais crítico (fora algumas questões visuais).

Reveja seu código… :wink:

Uma cosia é uma cosia, outra coisa é outra coisa :slight_smile:

Ele nãoe stá deixando de isntaciar nada, apenas está usando um açúcar sintático da linguagem, e isso não faz menos OO.

[]s

[quote=renato3110]Aí Pilantra, conhece a Jaca?

http://geocities.yahoo.com.br/renato3110/download/jaca.zip

Como a sua calculadora é a melhor do mundo, tenho que colocar a minha em algum universo paralelo para evitar conflitos!!! :smiley: :smiley: :smiley:

Vamos unir essas duas poderosíssimas aplicações e formar um Super Sayadin!!! :smiley: :smiley: :smiley: [/quote]

hauehuaheuhuaheuhaue!!! cara, vamos fazer a fusão então para transformar na jacalator 1.0 :lol: :lol: :lol:

Eu tenho muitas inovações pra fazer nessa calculadora, inclusive está no papel, o que me travou foi esse problema das versões do Java e tals, mas eu vou tentar esse método que o Java Vinicius Machine me explicou, realmente eu tenho que dar uma estudada no compilador e suas opções :smiley:

Bom eu vou continuar mesmo com o 1.5 e se der problema no pc de alguém, esse alguém que se vira hehehehe!! Ele que isntale o run time 5.0!!!

Valeu galera pela ajuda e por tirar as minhas dúvidas!!!
Flw

Pilantra 8)

Só incrementando o assunto!!! O problema é no main, alguém poderia colar aqui algum método main usando Swing só pra mim comparar!?

Eu uso sempre assim:

public static void main(String[] args) { NomeClasse f = new NomeClasse(); f.setVisible(true) }

Esse é meu método main, só isso :frowning: mas dá certo no Java 1.5 hehe!!

Flw

Pilantra 8)

Boas novas, fiz uns testes e descobri o erro!!! Não tem nada a ver com diferença no Swing ou coisa parecida!! É que tinha uma linha errada!!!

Ao invés de:

add(painel);

Usa-se:

getContentPane().add(painel);

Eis ae o problema!!! Descobri sem querer!!!

Bom sem mais, falei d+ aqui já hehe!!!

Obrigado pela atenção de todos!!

Pilantra 8)

Nada como uma boa risada numa sabado de manha. :smiley:

Marcio Kuchma