我构建了一个游戏,我想在现有的背景图像图标上添加一个缓冲图像,我的代码是这个游戏是:
public class Hunter extends JFrame {
JPanel panel = new JPanel();
JLabel label = new JLabel(new ImageIcon("F:\workspace\HunterGame\src\huntergame\background.jpg"));
BufferedImage image;
Graphics g;
Hunter(){
setSize(961, 694);
setResizable(false);
setTitle("Hunter");
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
this.setLocation(dim.width/2-this.getSize().width/2, dim.height/2-this.getSize().height/2);
panel.add(label);
add(panel);
addMouseListener(new MouseListener() {
@Override
public void mouseClicked(MouseEvent me) {
}
@Override
public void mousePressed(MouseEvent me) {
int x = me.getX();
int y = me.getY();
if((x>11&&x<69)&&(y>26&&y<69)){
dispose();
new menu();
}
}
@Override
public void mouseReleased(MouseEvent me) {
}
@Override
public void mouseEntered(MouseEvent me) {
}
@Override
public void mouseExited(MouseEvent me) {
}
});
try {
image = ImageIO.read(new File("F:\workspace\HunterGame\src\huntergame\hunter.png"));
} catch (IOException ex) {
System.out.println("Exception Occurs");
}
JLabel label1 = new JLabel(new ImageIcon(image));
label.add(label1);
revalidate();
}
}
我也尝试了Graphics.drawImage()
方法,但这不起作用。我的背景图像在 JLabel 上,标签在框架上,第二个图像 label1 在标签上,但我也在 JPanel 上尝试过这个,但没有显示结果。输出屏幕仅显示背景图像。请帮帮我解决这个问题。问候。
如果要向背景标签添加第二个标签,则需要设置标签的布局管理器。
基本代码如下所示:
JLabel background = new JLabel(....);
background.setLayout( new FlowLayout() );
JLabel foreground = new JLabel(...);
background.add( foreground );
frame.add(background, BorderLayout.CENTER);
frame.pack();
frame.setVisible( true );