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

19 respostas
Pilantra

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)

19 Respostas

I

Rodou sem problemas aqui!!!

Pilantra

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

rigolin

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;

Pilantra

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)

Daniel_Quirino_Olive

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).

igor_ti

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:

kuchma

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

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:

rigolin

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:

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?

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

renatosilva

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:

igor_ti

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

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

Java_Vinicius_Machin

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!

fenrir

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:

pcalcado

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

Pilantra

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:

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)

Pilantra

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)

Pilantra

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)

kuchma

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

Marcio Kuchma

Criado 28 de janeiro de 2005
Ultima resposta 29 de jan. de 2005
Respostas 19
Participantes 10