Olá pessoal, me ajudem a resolver esse problema.
O programa a seguir cria um efeito de alterar as cores dos pixel do fundo gradiente do aplicativo
eu sei que os valores dos pixels é de 0 a 255, ai como o aplicativo possui a variavel d
que recebe a especificação do pixel azul, assim o calculo realizado está passando o 255.
Até ai tudo bem, isso gera um erro IllegalArgumentException, porém quando eu trato esse
erro com o try, o programa não reconhece, não consigo tratar esse erro, me ajudem.
OBS: estou tratando o erro dentro do evento do mouseListener;
import java.awt.event.MouseEvent;
import javax.swing.*;
import java.awt.*;
import java.io.*;
import java.awt.event.MouseMotionListener;
public class graphic2d extends JPanel{
private int r = 40,b = 40,d = 40;
public static void main(String[] args) {
new graphic2d();
}
public graphic2d()
{
JFrame jan = new JFrame();
graphic2db pan = new graphic2db();
jan.add(pan);
jan.setSize(190,210);
jan.setLocation(100,100);
jan.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jan.setVisible(true);
pan.addMouseMotionListener(new MouseMotionListener(){
@Override
public void mouseDragged(MouseEvent e) {
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public void mouseMoved(MouseEvent e)
{
try{
r = e.getX();
b = e.getY();
if(e.getX()-e.getY()>0 && e.getX()-e.getY()<=255)
d = e.getX()-e.getY()+160;
// if(d>255) esse teste é o que estou usando para impedir esse erro sem o tratamento da excessão
// d = 255;
}
catch(IllegalArgumentException obj)
{
System.err.println("ERRO!!!");
}
// verificar o porque que não consegui capturar a exceção de argumento.
}
});
}
public class graphic2db extends JPanel{
public void paintComponent(Graphics g)
{
super.paintComponent(g);
Graphics2D g2d = (Graphics2D) g;
g2d.setPaint(new GradientPaint(10,10,Color.black,80,100,
new Color(r,b,d),true));
g2d.fillRect(0,0,180,180);
g2d.setPaint(Color.white);
repaint();
}
}
}
saida:
assim que o ponteiro do mouse chega na parte superior direita da tela do aplicativo o erro é gerado devido ter ultrapassado
o valor de 255 do pixel azul;
Exception in thread “AWT-EventQueue-0” java.lang.IllegalArgumentException: Color parameter outside of expected range: Blue