Java JLabel作为背景图像

Java JLabel作为背景图像,java,swing,background,jframe,jlabel,Java,Swing,Background,Jframe,Jlabel,我似乎无法理解这一点。 请帮助我解决此问题以继续我的项目。 Awww我必须添加这个,以允许我发布 import javax.swing.*; 导入java.awt.*; @抑制警告(“串行”) 公共类大型机扩展JFrame{ 公共静态无效抽取(){ 牵引架(); } 公共静态无效绘图框(){ int h=600; int w=340; JFrame=新JFrame(); JLabel background1=新的JLabel(新的图像图标(“/res/mariocraft_main.png”);

我似乎无法理解这一点。
请帮助我解决此问题以继续我的项目。
Awww我必须添加这个,以允许我发布

import javax.swing.*;
导入java.awt.*;
@抑制警告(“串行”)
公共类大型机扩展JFrame{
公共静态无效抽取(){
牵引架();
}
公共静态无效绘图框(){
int h=600;
int w=340;
JFrame=新JFrame();
JLabel background1=新的JLabel(新的图像图标(“/res/mariocraft_main.png”);
frame.setresizeable(false);
框架设置尺寸(高、宽);
帧。设置标题(“MarioCraft”);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
框架。添加(背景1);
背景1.设置可见(真实);
背景1.设置图标(新的图像图标(“/res/mariocraft_main.png”);
background1.setText(“后台加载失败”);
}
}

您需要将
JLabel
实例添加到
JFrame
中,然后才能实现它(即使其可见)。此外,请删除以下三个呼叫:

background1.setVisible(true);
background1.setIcon(new ImageIcon("/res/mariocraft_main.png"));
background1.setText("Background failed to load");

它们完全没有必要。另外,为组件设置背景图像的另一种方法是覆盖它的
paintComponent
方法,并将图像直接绘制到它的
Graphics
对象。

在实现它之前(即,使它可见),需要将
JLabel
实例添加到
JFrame
。此外,请删除以下三个呼叫:

background1.setVisible(true);
background1.setIcon(new ImageIcon("/res/mariocraft_main.png"));
background1.setText("Background failed to load");

它们完全没有必要。另外,为组件设置背景图像的另一种方法是覆盖组件的
paintComponent
方法,并将图像直接绘制到组件的
Graphics
对象。

JLabel始终以其实际大小显示图像,因此您不应手动设置帧的大小

相反,代码应该类似于:

JLabel background1 = new JLabel(new ImageIcon("/res/mariocraft_main.png"));

JFrame frame = new JFrame();     
frame.add(background1); 
frame.pack();
frame.setResizable(false);     
frame.setVisible(true);     

JLabel始终以其实际大小显示图像,因此不应手动设置帧的大小

相反,代码应该类似于:

JLabel background1 = new JLabel(new ImageIcon("/res/mariocraft_main.png"));

JFrame frame = new JFrame();     
frame.add(background1); 
frame.pack();
frame.setResizable(false);     
frame.setVisible(true);     

是否要将
JLabel
设置为
JFrame
的背景图像。那么

frame.setContentPane(new JLabel(new ImageIcon("someimage.jpg"));
请参阅为其获取的示例代码段


是否要将
JLabel
设置为
JFrame
的背景图像。那么

frame.setContentPane(new JLabel(new ImageIcon("someimage.jpg"));
请参阅为其获取的示例代码段


-你的问题是什么?与其添加无意义的文本,也许您应该尝试更彻底地解释您想要做什么我的意思是我尝试使用JLabel作为背景。问题就在标题里你在问什么?你的代码有什么问题?请不要只是将代码转储到一个问题中,然后说:“修复它”,解释你想说什么。-1你的问题是什么?与其添加无意义的文本,也许您应该尝试更彻底地解释您想要做什么我的意思是我尝试使用JLabel作为背景。问题就在标题里你在问什么?你的代码有什么问题?请不要只是将代码转储到一个问题中,然后说:“修复它”,解释你想说的话。你能制作一个paintComponent exampel吗?你能制作一个paintComponent exampel吗?这里图像将被放置在中间。我如何将图像设置为整个帧这里图像将被放置在中间。我如何将图像设置为整个帧