我是一个Java初学者,我的第一个项目是建立一个大富翁游戏。我正在使用Graphics方法在SWING中构建GUI。
出现了两个问题,我找不到答案。第一个问题是,似乎我不能将背景颜色设置为我的JPanel,而我之前在同一项目的另一个JPanel中用相同的方式做过。
第二个问题是,当我尝试添加图片时,我收到一个NullPointerException。我用try / catch解决了这个错误,但是似乎Graphics没有绘制。同样,我之前在另一个JPanel中使用相同的方法加载和添加图像,并且它可以工作。
我应该提到,我的JFrame目前包含3个元素,在不同的类中分别添加并通过BorderLayout()进行添加。
这是出问题的类的代码:
出现了两个问题,我找不到答案。第一个问题是,似乎我不能将背景颜色设置为我的JPanel,而我之前在同一项目的另一个JPanel中用相同的方式做过。
第二个问题是,当我尝试添加图片时,我收到一个NullPointerException。我用try / catch解决了这个错误,但是似乎Graphics没有绘制。同样,我之前在另一个JPanel中使用相同的方法加载和添加图像,并且它可以工作。
我应该提到,我的JFrame目前包含3个元素,在不同的类中分别添加并通过BorderLayout()进行添加。
这是出问题的类的代码:
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);
};
}
try/catch
。发布堆栈跟踪。 - Bhesh GurungpaintComponent()
ж–№жі•иҖҢдёҚжҳҜиҰҶзӣ–paint()
ж–№жі•гҖӮвҖ”вҖ”жқҘиҮӘAWTе’ҢSwingдёӯзҡ„з»ҳеҲ¶пјҡз»ҳеҲ¶ж–№жі•гҖӮ - trashgodthis.getClass().getResource("../Card/Atlantic Ave.jpg")
调用会导致错误。您能否使用catch(Exception e)
捕获它,然后执行e.printStackTrace();
并让团队知道吗? - ring bearer