Sono un principiante di java e per il mio primo progetto ho iniziato a costruire un gioco di Monopoli.Problemi di grafica Java
Sto costruendo la GUI in SWING usando il metodo Graphics.
Sono apparsi due problemi a cui non riesco a trovare risposta.
Il primo è che sembra che non sia possibile impostare il colore di sfondo sul mio JPanel che avevo già fatto nello stesso modo in un altro JPanel nello stesso progetto.
La seconda è che ho un NullPointerException
durante il tentativo di aggiungere un image.I è riuscito a correggere questo errore con un try/catch
ma sembra che la grafica non sarà paint.Again ho usato lo stesso metodo per caricare e aggiungere le immagini in un JPanel precedente e ha funzionato.
Devo dire che il mio JFrame al momento contiene 3 elementi ognuno in classi separate e sono aggiunti tramite BorderLayout().
Questo è il codice per la classe che sta creando problemi:
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);
};
}
Non usare il try/catch' 'lì. Pubblica lo stacktrace. –
"I programmi Swing dovrebbero sovrascrivere' paintComponent() 'invece di sovrascrivere' paint() '." - [Painting in AWT and Swing: The Paint Methods] (http://java.sun.com/products/jfc/tsc/ articoli/pittura/index.html # callback). – trashgod
"questo genera un'eccezione senza try catch" - questo non è corretto. Se il blocco lancia un'eccezione, lo fa indipendentemente dal try/catch. Quello che fa il blocco try/catch è _hide_ quell'eccezione. Il che, a sua volta, rende difficile il debugging. Devi capire perché questa eccezione viene lanciata, non nasconderla sotto il tappeto. – Mat