Foros del Web » Programación para mayores de 30 ;) » Java »

como pintar colores en java

Estas en el tema de como pintar colores en java en el foro de Java en Foros del Web. tengo este programa que lo unico que hace es pintar donde hago click, para asignar el color uso setColor(Color.blue) por ejemplo, pero cuando quiero que ...
  #1 (permalink)  
Antiguo 15/07/2011, 13:51
 
Fecha de Ingreso: julio-2011
Ubicación: mexico
Mensajes: 1
Antigüedad: 12 años, 9 meses
Puntos: 0
Pregunta como pintar colores en java

tengo este programa que lo unico que hace es pintar donde hago click, para asignar el color uso setColor(Color.blue) por ejemplo, pero cuando quiero que pinte de otro color no puedo.
tengo un jframe, un jpanel y una clase main

en el jframe tengo los botones de colores y los metodos estan el jpanel.

JFRAME:


public class Ventana extends javax.swing.JFrame {
graficos gr = new graficos();
/** Creates new form Ventana */
public Ventana() {
super("Graficos");
setLayout(null);
initComponents();
this.setSize(400,400);
this.setLocationRelativeTo(null);


graficos gf =new graficos();
add(gf);
this.setVisible(true);
}
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:

gr.amarillo(getGraphics());

}

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:

repaint();
}

private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
gr.verde(getGraphics());
}

private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
gr.rojo(getGraphics());
}

private void jButton6ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
gr.blanco(getGraphics());
}

private void jButton5ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
gr.negro(getGraphics());
}

private void jButton7ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
gr.fondoamarillo(getGraphics());
}

JPANEL

public class graficos extends javax.swing.JPanel {
private int x,y;
/** Creates new form graficos */
public graficos() {
initComponents();
this.setSize(400,400);


}

@Override
public void paintComponent(Graphics g){
super.paintComponent(g);

// g.fillRect(y, x, 1, 1);


}
public void pintar(Graphics g){
g.getColor();
g.fillRect(x, y, 1, 1);
}
private void formMouseClicked(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
y= evt.getY();
x=evt.getX();
System.out.println(x);
System.out.println(y);
pintar(getGraphics());

}



public void blanco(Graphics g){

g.setColor(Color.WHITE);

System.out.println("blanco");
}
public void amarillo(Graphics g){
g.setColor(Color.yellow);
System.out.println("amarillo");
}
public void rojo(Graphics g){
g.setColor(Color.red);
System.out.println("rojo");
}
public void verde(Graphics g){
g.setColor(Color.green);
System.out.println("verde");
}
public void negro(Graphics g){
g.setColor(Color.black);
System.out.println("negro");
}
public void fondoamarillo(Graphics g){
// g.setColor(Color.BLACK);
g.fillRect(0, 0, getSize().width - 30, getSize().height - 30);
}
}
  #2 (permalink)  
Antiguo 15/07/2011, 14:12
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Respuesta: como pintar colores en java

Hola:

el Graphics del componente no lo usas solo tú, lo usa también java para pintar el componente y cambia colores, fuentes, etc, etc. No tienes ninguna garantía de que lo que le hagas a Graphics va a permanecer hecho cuando java llame a paint().

En tus métodos blanco(), amarillo(), etc guarda el color en un atributo de la clase. En el método paint haz el graphics.setColor() pasando el valor de ese atributo de la clase.

Se bueno.
__________________
Apuntes Java
Wiki de Programación

Etiquetas: colores, jframe, pintar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:02.