Tema: 3 dudas
Ver Mensaje Individual
  #1 (permalink)  
Antiguo 27/02/2013, 14:57
Cidragon
 
Fecha de Ingreso: febrero-2013
Ubicación: Santiago
Mensajes: 10
Antigüedad: 11 años, 11 meses
Puntos: 0
3 dudas

Saludos, soy nuevo en esto de la programacion asi que tengo bastantes dudas claramente basicas xD.

1.- Cree un juego del buscaminas (bastante mas feito) en donde hice un tablero de 9x9 con botones, el problema es cuando le adjunto imagenes los botones quedan con marcos sin colorear y por muy grande que sea la imagen ese marco sigue alli. ¿existe alguna forma de eliminar ese marco o hacer que el boton sea igual de grande que la imagen?.

2.- Tambien tengo un juego del gato (o 3 en raya) en donde guardo 9 imagenes en un arreglo y luego pinto cruz o circulo si es que el usuario hizo click sobre un area vacia del tablero. El problema es que tengo que guardar las 9 areas posibles a seleccionar son sus respectivas coordenadas x,y y me preguntaba si habia una forma mas eficiente de hacerlo ya que imaginemos si tuviera que guardar 81 imagenes (la cantidad exacta es debido al siguiente proyecto que tengo en mente) tendria que crear una brutalidad enorme.

Adjunto codigo del gato(o 3 en raya)

Atributos,constructor y el metodo paintComponent:
Código:
public class panel extends JPanel implements MouseListener{

	ImageIcon gato,cruz,circulo;
	ImageIcon imagenes[];
	Point punto;
	int jugada=0;
	
	public panel(){
		gato=new ImageIcon("gato.png");
		cruz=new ImageIcon("cruz.png");
		circulo=new ImageIcon("circulo.png");
		punto= new Point(0,0);
		imagenes=new ImageIcon[9];
		this.addMouseListener(this);
		this.setVisible(true);
		this.setSize(400,400);
	}
	
	public void paintComponent(Graphics g){
		super.paintComponents(g);
		gato.paintIcon(this, g, 0, 0);
		agregarImagenes(g);
	}

	public void mouseClicked(MouseEvent e) {
		punto= e.getPoint();
		repaint();
	}
...
Metodos en cuestion:
agrega las imagenes a un arreglo de imagenes si estan dentro de un margen establecido
Código:
	public void agregarImagenes(Graphics g){
		if(punto.x>5 && punto.x<95 && punto.y>5 && punto.y<95 && imagenes[0]==null){
			if(jugada==0){
				imagenes[0]=cruz;
				jugada++;
			}else{
				imagenes[0]=circulo;
				jugada=0;
			}
		}else if(punto.x>105 && punto.x<195 && punto.y>5 && punto.y<95 && imagenes[1]==null){
			if(jugada==0){
				imagenes[1]=cruz;
				jugada++;
			}else{
				imagenes[1]=circulo;
				jugada=0;
			}
		}else if(punto.x>205 && punto.x<295 && punto.y>5 && punto.y<95 && imagenes[2]==null){
			if(jugada==0){
				imagenes[2]=cruz;
				jugada++;
			}else{
				imagenes[2]=circulo;
				jugada=0;
			}
		}else if(punto.x>5 && punto.x<95 && punto.y>105 && punto.y<195 && imagenes[3]==null){
			if(jugada==0){
				imagenes[3]=cruz;
				jugada++;
			}else{
				imagenes[3]=circulo;
				jugada=0;
			}
		}else if(punto.x>105 && punto.x<195 && punto.y>105 && punto.y<195 && imagenes[4]==null){
			if(jugada==0){
				imagenes[4]=cruz;
				jugada++;
			}else{
				imagenes[4]=circulo;
				jugada=0;
			}
		}else if(punto.x>205 && punto.x<295 && punto.y>105 && punto.y<195 && imagenes[5]==null){
			if(jugada==0){
				imagenes[5]=cruz;
				jugada++;
			}else{
				imagenes[5]=circulo;
				jugada=0;
			}
		}else if(punto.x>5 && punto.x<95 && punto.y>205 && punto.y<295 && imagenes[6]==null){
			if(jugada==0){
				imagenes[6]=cruz;
				jugada++;
			}else{
				imagenes[6]=circulo;
				jugada=0;
			}
		}else if(punto.x>105 && punto.x<195 && punto.y>205 && punto.y<295 && imagenes[7]==null){
			if(jugada==0){
				imagenes[7]=cruz;
				jugada++;
			}else{
				imagenes[7]=circulo;
				jugada=0;
			}
		}else if(punto.x>205 && punto.x<295 && punto.y>205 && punto.y<295 && imagenes[8]==null){
			if(jugada==0){
				imagenes[8]=cruz;
				jugada++;
			}else{
				imagenes[8]=circulo;
				jugada=0;
			}
		}
		pintarImagenes(g);
	}
pinta el arreglo de imagenes en pantalla
Código:
	public void pintarImagenes(Graphics g){
		if(imagenes[0]!=null){
			imagenes[0].paintIcon(this, g, 10, 10);
		}if(imagenes[1]!=null){
			imagenes[1].paintIcon(this, g, 110, 10);
		}if(imagenes[2]!=null){
			imagenes[2].paintIcon(this, g, 210, 10);
		}if(imagenes[3]!=null){
			imagenes[3].paintIcon(this, g, 10, 110);
		}if(imagenes[4]!=null){
			imagenes[4].paintIcon(this, g, 110, 110);
		}if(imagenes[5]!=null){
			imagenes[5].paintIcon(this, g, 210, 110);
		}if(imagenes[6]!=null){
			imagenes[6].paintIcon(this, g, 10, 210);
		}if(imagenes[7]!=null){
			imagenes[7].paintIcon(this, g, 110, 210);
		}if(imagenes[8]!=null){
			imagenes[8].paintIcon(this, g, 210, 210);
		}
	}

3.-¿que libro es bueno para aprender java?. Lo dijo xq encuentro insolito y ridiculo que todo libro que e encontrado asume que se como 3 tipos diferentes de lenguajes para aprender. Curioso fue encontrar libros para aprender C++ que pedian aprender C y libros de C que pedian C++ como requisitos.


De antemano, gracias.