Posible problema de parpadeo de imagen
Publicado por manuel (13 intervenciones) el 24/06/2018 03:51:07
Hola , hace mucho no participo en el foro y soy relativamente nuevo en esto
La idea de mi programa es que el usuario vea el Jframe vacio(por defecto) de un clic en un lugar cualquiera, en este instante se va a hacer visible una imagen de un mapa, se capture el color del pixel donde se dio clic y luego la imagen del mapa otra vez sea invisible.
La idea del cometido es que el usuario no alcance a percibir que existe un mapa, sin embargo por cuestiones del tiempo de ejecución si se alcanza a ver en el proceso Invisible->visible->Invisible, creo que este problema es de parpadeo, es una suposicion y no estoy seguro de que sea esto.
El comando que estoy usando para actualizar el panel llamado milamina es milamina.paintAll(milamina.getGraphics());
El Codigo es:
La idea de mi programa es que el usuario vea el Jframe vacio(por defecto) de un clic en un lugar cualquiera, en este instante se va a hacer visible una imagen de un mapa, se capture el color del pixel donde se dio clic y luego la imagen del mapa otra vez sea invisible.
La idea del cometido es que el usuario no alcance a percibir que existe un mapa, sin embargo por cuestiones del tiempo de ejecución si se alcanza a ver en el proceso Invisible->visible->Invisible, creo que este problema es de parpadeo, es una suposicion y no estoy seguro de que sea esto.
El comando que estoy usando para actualizar el panel llamado milamina es milamina.paintAll(milamina.getGraphics());
El Codigo es:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
public class lamina extends JPanel {
public JButton mapa = new JButton();
marco mimarco;
public lamina(marco mimarco)
{
this.mimarco=mimarco;
// Referencia
JButton referencia = new JButton("");
referencia.setBounds(0, 0, 800, 600);
referencia.setBorderPainted(false);
referencia.setContentAreaFilled(false);
add(referencia);
referencia.addMouseListener(new eventosderaton(mapa,this));
//Mapa
mapa.setBounds(0, 0, 530, 700);
mapa.setContentAreaFilled(false);
mapa.setBorderPainted(false);
mapa.setVisible(false);
mapa.setIcon(new ImageIcon("Imagen.png"));
add(mapa);
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
public class eventosderaton extends MouseAdapter{
Color coloract;
JButton mapa;
lamina milamina;
eventosderaton(JButton mapa,lamina milamina)
{
this.mapa=mapa;
this.milamina=milamina;
}
public void mousePressed(MouseEvent e)
{
mapa.setVisible(true);
milamina.paintAll(milamina.getGraphics());
try {
coloract= new Robot().getPixelColor(e.getXOnScreen(), e.getYOnScreen());
mapa.setVisible(false);
milamina.paintAll(milamina.getGraphics());
System.out.println("X: "+e.getXOnScreen()+" Y: "+e.getYOnScreen());
System.out.println(coloract.getRed()+" "+coloract.getGreen()+" "+coloract.getBlue());
if(coloract.getRed()==255 && coloract.getGreen()==0 && coloract.getBlue()==0)
{
System.out.println("Esto es guajira");
}
} catch (AWTException c) {
c.printStackTrace();
}
}
}
Valora esta pregunta


0