JAVA gui编程中。如何导入一张图片作为整个窗体的背景图片
2个回答
展开全部
使用 标签就可以导入了,如果想旁边有字可以使用分隔符
代码:
/*
* 功能:显示海贼王图片,以及分割字符
* 分割涉及到swing的一个新组件 JSplitPane
* 该组件属于容器组件
*/
package cn.GUI;
import java.awt.*;
import javax.swing.*;
public class GUI_9 extends JFrame
{
//定义需要的组件
//定义分割组件
JSplitPane jsp;
//定义一个标签组件,标签组件就是用来放海贼王图片的
JLabel jl1;
//列表组件
JList js;
public static void main(String[] args)
{
GUI_9 gui_9=new GUI_9();
}
//构造函数
public GUI_9()
{
//初始化
//初始化标签组件
jl1=new JLabel(new ImageIcon("img//hzw.jpg"));
//初始化列表组件
//String [] s={"索隆","路飞","乔巴","娜美"};
//js=new JList(s);
//初始化分割组件
/*分割组件把需要分割的参数加入到方法中,我么这里把标签和列表加入到分割里面去了
* 但是如果在new出对象后的括号里直接写入参数是绝对不可以的,JAVA提供了方法
* new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,js,jl1);
* 就是在new出对象后,调用方法,将需要分割的空间加入到参数中
*/
//jsp=new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,js,jl1);
// jsp.setOneTouchExpandable(true);;//设置splitPane是否可以展开或收起
//设置布局管理器,我么使用默认的BorderLayout所以不用定义
this.add(jl1);
/*
* 我在47行下面加上了这几行代码,导致效果出错
* this.add(jl1); //这句话是把图片放在最中间
this.add(js,BorderLayout.SOUTH); //这个是把列表组件放在南边
导致我把列表放在下方,而伸缩的列表框在上方,位置不一,所以我注释这几条语句
*/
//设置图框大小
this.setSize(600, 500);
//设置标题
this.setTitle("海贼王");
//退出系统
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//显示图框
this.setVisible(true);
}
}
代码:
/*
* 功能:显示海贼王图片,以及分割字符
* 分割涉及到swing的一个新组件 JSplitPane
* 该组件属于容器组件
*/
package cn.GUI;
import java.awt.*;
import javax.swing.*;
public class GUI_9 extends JFrame
{
//定义需要的组件
//定义分割组件
JSplitPane jsp;
//定义一个标签组件,标签组件就是用来放海贼王图片的
JLabel jl1;
//列表组件
JList js;
public static void main(String[] args)
{
GUI_9 gui_9=new GUI_9();
}
//构造函数
public GUI_9()
{
//初始化
//初始化标签组件
jl1=new JLabel(new ImageIcon("img//hzw.jpg"));
//初始化列表组件
//String [] s={"索隆","路飞","乔巴","娜美"};
//js=new JList(s);
//初始化分割组件
/*分割组件把需要分割的参数加入到方法中,我么这里把标签和列表加入到分割里面去了
* 但是如果在new出对象后的括号里直接写入参数是绝对不可以的,JAVA提供了方法
* new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,js,jl1);
* 就是在new出对象后,调用方法,将需要分割的空间加入到参数中
*/
//jsp=new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,js,jl1);
// jsp.setOneTouchExpandable(true);;//设置splitPane是否可以展开或收起
//设置布局管理器,我么使用默认的BorderLayout所以不用定义
this.add(jl1);
/*
* 我在47行下面加上了这几行代码,导致效果出错
* this.add(jl1); //这句话是把图片放在最中间
this.add(js,BorderLayout.SOUTH); //这个是把列表组件放在南边
导致我把列表放在下方,而伸缩的列表框在上方,位置不一,所以我注释这几条语句
*/
//设置图框大小
this.setSize(600, 500);
//设置标题
this.setTitle("海贼王");
//退出系统
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//显示图框
this.setVisible(true);
}
}
2013-04-21
展开全部
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Image;import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JPanel;public class ImageTest { public static void main(String[] args) {
ImagePanel panel = new ImagePanel(new ImageIcon("images/background.png").getImage()); JFrame frame = new JFrame();
frame.getContentPane().add(panel);
frame.pack();
frame.setVisible(true);
}
}class ImagePanel extends JPanel { private Image img; public ImagePanel(String img) {
this(new ImageIcon(img).getImage());
} public ImagePanel(Image img) {
this.img = img;
Dimension size = new Dimension(img.getWidth(null), img.getHeight(null));
setPreferredSize(size);
setMinimumSize(size);
setMaximumSize(size);
setSize(size);
setLayout(null);
} public void paintComponent(Graphics g) {
g.drawImage(img, 0, 0, null);
}}
import java.awt.Graphics;
import java.awt.Image;import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JPanel;public class ImageTest { public static void main(String[] args) {
ImagePanel panel = new ImagePanel(new ImageIcon("images/background.png").getImage()); JFrame frame = new JFrame();
frame.getContentPane().add(panel);
frame.pack();
frame.setVisible(true);
}
}class ImagePanel extends JPanel { private Image img; public ImagePanel(String img) {
this(new ImageIcon(img).getImage());
} public ImagePanel(Image img) {
this.img = img;
Dimension size = new Dimension(img.getWidth(null), img.getHeight(null));
setPreferredSize(size);
setMinimumSize(size);
setMaximumSize(size);
setSize(size);
setLayout(null);
} public void paintComponent(Graphics g) {
g.drawImage(img, 0, 0, null);
}}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询