我为Java Applet添加了背景,我需要一些帮助来理解为什么Applet无法正确显示.为了显示此背景图像,我使用了下面的代码:
BufferedImage img = null;
try {
URL url = new URL(getCodeBase(), "Backgrounds/Background.png");
img = ImageIO.read(url);
}
catch (Exception e) {
}
然后也将它放在绘画方法中…
public void paint(Graphics g) {
g.drawImage(img, 0, 0, null);
}
问题是,即使在将其他GUI组件添加到内容窗格之前先绘制背景,也不会在绘制背景时看到GUI组件,例如按钮和标签.可以显示这些组件,但是您必须突出显示它们或先单击它们.
此图显示了加载applet时的applet:
这是我在屏幕上的几个位置单击后的小程序:
解决方法:
public void paint(Graphics g) {
g.drawImage(img, 0, 0, null);
}
首先,该方法调用应为:
public void paint(Graphics g) {
g.drawImage(img, 0, 0, this); // Every Component is an image observer
}
然后,修复损坏的油漆链:
public void paint(Graphics g) {
super.paint(g); // Draw the rest of the components!
g.drawImage(img, 0, 0, this); // Every Component is an image observer
}
标签:bluej,swing,java 来源: https://codeday.me/bug/20191120/2044296.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。