studio programacion para móviles libro edición desarrollo desarrollar curso aprende aplicaciones java swing jframe graphics2d

java - programacion - No se puede dibujar más de una instancia



manual de programacion android pdf (2)

Estoy tratando de configurar un sistema de menú con botones; sin embargo, solo se muestra un botón a la derecha.

Bueno, encontré el problema, no puedo crear varias instancias de la clase Button de una clase o sus subclases. Si lo hago, no crea el derecho de la segunda instancia y entonces tendrá una imagen de fondo faltante. ¿Podría tener eso que ver con el hecho de que hice de la clase Button una clase estándar?

Aquí está la parte principal de la clase Button, todo lo que saqué donde obtuve métodos que devuelven los valores de las cosas en esta clase.

public class Button { private int x, y; private int width, height; private Image sprite; private data.ImageControl Image = new data.ImageControl(); private String text = ""; public Button() { sprite = Image.getImage("game/menu/btn.png"); } public void setImage(String file) { sprite = Image.getImage(file); } public void draw(Graphics2D g) { g.drawImage(sprite, x, y, null); Font_LARGE font = new Font_LARGE(); //Find text pos int stringX, stringY; int textWidth; textWidth = text.length() * 14; stringX = x + ((width / 2) - (textWidth / 2)); stringY = y + ((height / 2) - 8); font.drawString(g, text, stringX, stringY); }

Y aquí está el código de donde obtengo la imagen:

public Image getImage(String filename) { Image img; try { ImageIcon i = new ImageIcon(getClass().getResource("sprite/" + filename)); img = i.getImage(); } catch(Exception e) { e.printStackTrace(); System.err.println("ERROR - Unable to load image at " + filename + " loading empty image."); ImageIcon i = new ImageIcon(getClass().getResource("sprite/Physix/noImage.png")); img = i.getImage(); } return img; }


¿Cuáles son las posiciones xey?

Me parece que dibujas un botón encima del otro.


He solucionado el problema ahora simplemente dibujando el fondo del botón fuera de la clase de botón. Todavía no tengo idea de por qué no funciona, pero de esta manera funciona.