2015-03-21 2 views
1

По какой-то причине этот код ничего не отображает. Может кто-нибудь объяснить мне, почему это ничего не делает?Applet ничего не показывает

import java.awt.*; 
import java.applet.*; 

public class TEST extends Applet { 
    public void paint(Graphics g) { 
     int xSize = 255; 
     int ySize = 255; 
     byte R, G, B; 

     for(int x = 0; x < xSize; x++) { 
      for(int y = 0; y < ySize; y++) { 
       R = (byte) (x % y); 
       G = (byte) (y % x); 
       B = (byte) (y); 
       Color pixel = new Color(R, G, B); 
       g.setColor(pixel); 
       g.fillRect(x, y, 1, 1); 
      } 
     } 
    } 
} 
+0

сделать код более удобным для чтения – tbodt

+0

Не так ли трудно читать? –

ответ

1

Невозможно получить модуль числа относительно 0, например. здесь

R = (byte)(x%y); 

на первой итерации. Вероятно, вы видите ArithmeticException. Вы могли бы просто начать с 1:

red = (byte) (x % (y + 1)); 
green = (byte) (y % (x + 1)); 
+0

Хорошо, он делает что-то сейчас ... но только левый самый колум (толщиной в 1 пиксель). –

+0

Да, это потому, что происходит другое исключение. Прочитайте сообщение об исключении, которое сообщит вам, в чем проблема. – Reimeus

+0

Моя IDE решает не выводить исключения с помощью апплетов. –

0

Я понял это, он пытается положить R G и значения B выше 255. Я просто добавил% 255 в конце каждого из них, чтобы исправить это. Спасибо за помощь.

Смежные вопросы