java - 添加paintComponents()后不出现背景
问题描述
我添加paintComponent(g)
到此screenDraw()
代码中。但是从那以后,按钮已经很好地出来了,但只有背景没有出来。问题是什么?没有任何东西,尤其是在使用之前paintComponents()
,壁纸效果很好。
package main;
public class DynamicBeat extends JFrame {
private Image background = new ImageIcon(Objects.requireNonNull(Main.class.getResource("../images/wallpaper.jpg"))).getImage();
private final JButton exitButton = new JButton(exitButtonBasic);
private final JButton startButton = new JButton(startButtonBasic);
private final JButton quitButton = new JButton(quitButtonBasic);
JLabel menuBar = new JLabel(new ImageIcon(Objects.requireNonNull(Main.class.getResource("../images/menubar.png"))));
private int mouseX, mouseY;
public DynamicBeat() {
setUndecorated(true);
setTitle("Dynamic Beat");
setSize(Main.SCREEN_WIDTH, Main.SCREEN_HEIGHT);
setResizable(false);
setLocationRelativeTo(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
setBackground(new Color(0, 0, 0, 0));
setLayout(null);
// some JButton components...
Music introMusic = new Music("bgm.mp3", true);
introMusic.start();
}
public void paint(Graphics g) {
Image screenImage = createImage(Main.SCREEN_WIDTH, Main.SCREEN_HEIGHT);
Graphics screenGraphic = screenImage.getGraphics();
screenDraw(screenGraphic);
g.drawImage(screenImage, 0, 0, null);
}
public void screenDraw(Graphics g) {
g.drawImage(background, 0, 0, getWidth(), getHeight(), this);
super.paintComponents(g);
this.repaint();
}
}
解决方案
推荐阅读
- java - 使用 char 数组而不是 String
- r - 如何加快在 for 循环中添加许多 ggplot 图层/几何图形?
- java - 如何在没有if的情况下修复java错误
- html - 如何在 html img 元素中显示超过 260 个文件路径的图像
- android - 在 google playstore 中上传 Apk 获取警告相关位置
- yocto - 如何为 512 Mb Ram 配置 u-boot
- mysql - 如何获取存储过程结果以用于另一个存储过程或查询语句
- python - 无法使用 pip 下载 mod_wsgi
- javascript - JavaScript atob 与 Notepad++ Base64 解码不同
- python - Django - 无法启动服务器