java swing里如何设置背景图片
我改了之后窗口最大化可以显示图片但是那样遮盖了我所有的按钮文本框之类的,再点回原来的尺寸要随便点才会出现我本来的按钮文本框。。。。好乱,而且背景也没有按照我规定的框架的大...
我改了之后窗口最大化可以显示图片但是那样遮盖了我所有的按钮文本框之类的,再点回原来的尺寸要随便点才会出现我本来的按钮文本框。。。。好乱,而且背景也没有按照我规定的框架的大小出现,很乱,怎么改
public void paint(Graphics g)
{
loadRecources();
if(backgroundImage != null)
{
g.drawImage(backgroundImage, 10, 10, this);
}
}
public void loadRecources()
{
//载入背景图片
if(backgroundImage == null)
{
try
{
backgroundImage = ImageIO.read(new File("E:/fyp/2.jpg"));
} catch (IOException e)
{
System.out.println("缺少背景图片");
JOptionPane.showMessageDialog(this, "找不到背景图片!", "文件缺失", JOptionPane.ERROR_MESSAGE);
}
}
} 展开
public void paint(Graphics g)
{
loadRecources();
if(backgroundImage != null)
{
g.drawImage(backgroundImage, 10, 10, this);
}
}
public void loadRecources()
{
//载入背景图片
if(backgroundImage == null)
{
try
{
backgroundImage = ImageIO.read(new File("E:/fyp/2.jpg"));
} catch (IOException e)
{
System.out.println("缺少背景图片");
JOptionPane.showMessageDialog(this, "找不到背景图片!", "文件缺失", JOptionPane.ERROR_MESSAGE);
}
}
} 展开
2个回答
展开全部
设置背景图片,可以重写paint()方法。
具体步骤如下:
import java.awt.*;
import javax.swing.*;
public class bkground {
public static void main(String args[]){
BjFramef=newBjFrame();
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setVisible(true);
}
}
class BjFrame extends JFrame {
public static final int WTH=300;
public static final int HHT=200;
public BjFrame() {
setSize(WTH,HHT);
BjPanel pl=new BjPanel();
Container contentPane=getContentPane();
contentPane.add(pl);
pl. setOpaque(true);
}
}
class BjPanel extends JPanel {
Image im;
public BjPanel()
{
im=Toolkit.getDefaultToolkit().getImage("背景.jpg");//需要注意的是如果用相对路径载入图片,则图片文件必须放在类文件所在文件夹或项目的根文件夹中,否则必须用绝对路径。
}
public void paintComponent(Graphics g) {
super.paintComponent(g);
int imWidth=image.getWidth(this);
Int imHeight=image.getHeight(this); //定义图片的宽度、高度
int FWidth=getWidth();
int FHeight=getHeight();//定义窗口的宽度、高度
int x=(FWidth-imWidth)/2;
int y=(FHeight-imHeight)/2;//计算图片的坐标,使图片显示在窗口正中间
g.drawImage(image,x,y,null);//绘制图片
}
}
具体步骤如下:
import java.awt.*;
import javax.swing.*;
public class bkground {
public static void main(String args[]){
BjFramef=newBjFrame();
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setVisible(true);
}
}
class BjFrame extends JFrame {
public static final int WTH=300;
public static final int HHT=200;
public BjFrame() {
setSize(WTH,HHT);
BjPanel pl=new BjPanel();
Container contentPane=getContentPane();
contentPane.add(pl);
pl. setOpaque(true);
}
}
class BjPanel extends JPanel {
Image im;
public BjPanel()
{
im=Toolkit.getDefaultToolkit().getImage("背景.jpg");//需要注意的是如果用相对路径载入图片,则图片文件必须放在类文件所在文件夹或项目的根文件夹中,否则必须用绝对路径。
}
public void paintComponent(Graphics g) {
super.paintComponent(g);
int imWidth=image.getWidth(this);
Int imHeight=image.getHeight(this); //定义图片的宽度、高度
int FWidth=getWidth();
int FHeight=getHeight();//定义窗口的宽度、高度
int x=(FWidth-imWidth)/2;
int y=(FHeight-imHeight)/2;//计算图片的坐标,使图片显示在窗口正中间
g.drawImage(image,x,y,null);//绘制图片
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询