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:
Metodos en cuestion: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(); } ...
agrega las imagenes a un arreglo de imagenes si estan dentro de un margen establecido
Código:
pinta el arreglo de imagenes en pantallapublic 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); }
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.