Soy un principiante de Java y para mi primer proyecto comencé a construir un juego Monopoly.Java Problemas de gráficos
Estoy construyendo la GUI en SWING utilizando el método de Gráficos.
Aparecieron dos problemas que no puedo encontrar una respuesta.
La primera es que parece que no puedo establecer el color de fondo en mi JPanel que anteriormente había hecho de la misma manera en otro JPanel en el mismo proyecto.
El segundo es que recibo un NullPointerException
al intentar agregar una imagen. Pude corregir este error con un try/catch
pero parece que los gráficos no se pintarán. Otra vez he usado el mismo método para cargar y agrega imágenes en un JPanel anterior y funcionó.
Debo mencionar que mi JFrame por el momento contiene 3 elementos cada uno en clases separadas y se agregan a través de BorderLayout().
Este es el código de la clase que está creando problemas:
public class MonopolyBoard extends JPanel{
Image atlantic;
MonopolyBoard() {
this.setBorder(new EtchedBorder());
this.setBackground(new Color((80), (180), (210))); //this code dosent work
//this throws exception without try catch
try{
ImageIcon a = new ImageIcon(this.getClass().getResource("../Card/Atlantic Ave.jpg"));
atlantic = a.getImage();
}
catch(NullPointerException e){}
}
public void paint(Graphics g){
}
Graphics2D g2 = (Graphics2D) g;
//this code should draw the image but it dosent
g2.drawImage(atlantic, 100, 100, null);
g.drawImage(atlantic, 100, 100, this);
};
}
No utilice el 'try/catch' allí. Publica la stacktrace. –
"Los programas Swing deben anular' paintComponent() 'en lugar de anular' paint() '." - [Pintar en AWT y Swing: The Paint Methods] (http://java.sun.com/products/jfc/tsc/ artículos/pintura/index.html # devoluciones de llamada). – trashgod
"esto arroja una excepción sin intentar atrapar" - esto es incorrecto. Si el bloque lanza una excepción, lo hace independientemente del try/catch. Lo que tu bloque try/catch hace es _hide_ esa excepción. Lo cual, a su vez, hace que sea difícil o imposible de depurar. Necesita comprender por qué se lanza esa excepción, no esconderla debajo de la alfombra. – Mat