#java #swing #jframe
Вопрос:
Я добавил 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();
}
}
Комментарии:
1. Здесь есть ряд ошибок. Видишь docs.oracle.com/javase/tutorial/uiswing/painting .