|
Divisao de tipos inteiros - resultado inteiro com valor
truncado (Ex.: 9 / 5 = 1 - e nao 2 !!!)
Divisao de tipos "fracionados" (float e double), resultado fracionado
- 9.0 / 5.0 = 1.8
Os
mensagens fillOval( ) e drawOval( ) recebem como parametros um inteiro, ja' que
lidam com pixeis na tela - e nao existe 1/2 pixel.
Bom,
ja' que teu programa exige o uso de double, o ideal e' voce converter os tipos,
para que fiquem compativeis. Uma das maneiras de fazer isso
seria:
/** *
Converte um tipo double para um tipo int
* @param x tipo
double a ser convertido * @return tipo int apos
conversao */
private int d2i(double
x) { return
(new java.lang.Double(x).intValue( ));
}
Definida esta funcao, chame-a onde for
necessario transformar um tipo double para um tipo int :
screen.fillOval(d2i(E - 5), d2i(A -
18), d2i(B), d2i(B));
Nil
-----Mensagem original----- De:
Polato <[EMAIL PROTECTED]> Para:
Lista de Discussão JAVA <[EMAIL PROTECTED]> Data:
Quarta-feira, 2 de Fevereiro de 2000 12:23 Assunto:
Variavel
Agradeço a todos que me ajudaram, mas
agora tem outro poblema.
quando fui compilar, deu erro no método
paint().
Ali eu to desenhando um polígono e uma
circulo, e os errros são:
H:\GuiaVotuporanga\mapa\Mapa.java:98:
Incompatible type for array. Explicit cast needed to convert double to
int. int x[] = {E - 3, E-6, E + 5, E -
3};
^ H:\GuiaVotuporanga\mapa\Mapa.java:99: Incompatible type for array.
Explicit cast needed to convert double to int. int y[] = {A - 15,
A, A - 15, A -
15};
^ H:\GuiaVotuporanga\mapa\Mapa.java:108: Incompatible type for method.
Explicit cast needed to convert double to int. screen.fillOval(E -
5, A - 18, B,
B);
^ H:\GuiaVotuporanga\mapa\Mapa.java:108: Incompatible type for method.
Explicit cast needed to convert double to int. screen.fillOval(E -
5, A - 18, B,
B);
^ H:\GuiaVotuporanga\mapa\Mapa.java:110: Incompatible type for method.
Explicit cast needed to convert double to int. screen.drawOval(E -
5, A - 18, B,
B);
^ H:\GuiaVotuporanga\mapa\Mapa.java:110: Incompatible type for method.
Explicit cast needed to convert double to int. screen.drawOval(E -
5, A - 18, B,
B);
^
O problema é que eu tenho que
acrescentar números fracionados para desenhar esse polígono no
lugar certo com precisão.
|