java窗体如何加入背景
我使用加一个Label的方法加背景,但是背景上不能再加图片了。请问有什么别的方法加入背景(画的出来么?)。例如:我要加入一张名为background.jpg的图片在容器C...
我使用加一个Label的方法加背景,但是背景上不能再加图片了。请问有什么别的方法加入背景(画的出来么?)。
例如:我要加入一张名为background.jpg的图片在容器Container里。这个Container的布局是null,要能加入按钮和其他图片。
1楼,加Label这个方法我会,但是Label上不能再嵌套其他Label了啊。
2楼,好像没这么复杂吧,怎么画出来的问题是。
是在原有的窗体上加入背景图片,不是新建一个窗体。 展开
例如:我要加入一张名为background.jpg的图片在容器Container里。这个Container的布局是null,要能加入按钮和其他图片。
1楼,加Label这个方法我会,但是Label上不能再嵌套其他Label了啊。
2楼,好像没这么复杂吧,怎么画出来的问题是。
是在原有的窗体上加入背景图片,不是新建一个窗体。 展开
2个回答
展开全部
这个问题,最好给你个例子,正好是通过paint(Graphics g)方法画出来的。
import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.*;
public class Images extends JFrame {
Image img;
Toolkit tk=Toolkit.getDefaultToolkit();
//这是个特殊方法,不需要自己调用,由系统调用
public void paint(Graphics g) {
g.drawImage(img,0,0,800,600,null);
}
//自定义窗体相关设置方法
public void setFrame() {
setLocation(300,150);
setSize(800,600);
setTitle("图片");
//反射机制,保证你的程序打包jar后能正常运行
img=tk.getImage(Images.class.getClassLoader().getResource("images/background.jpg"));
setResizable(false);
setVisible(true);
//用匿名类处理窗口关闭
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
//重画线程启动
new Thread(new PaintThread()).start();
}
//内部类线程
private class PaintThread implements Runnable {
public void run() {
while(true) {
//该方法会调用paint()
repaint();
try {
Thread.sleep(50);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
public static void main(String[] args) {
Images tc=new Images();
tc.setFrame();
}
}
注:图片文件夹images位于放class文件的bin目录下。
import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.*;
public class Images extends JFrame {
Image img;
Toolkit tk=Toolkit.getDefaultToolkit();
//这是个特殊方法,不需要自己调用,由系统调用
public void paint(Graphics g) {
g.drawImage(img,0,0,800,600,null);
}
//自定义窗体相关设置方法
public void setFrame() {
setLocation(300,150);
setSize(800,600);
setTitle("图片");
//反射机制,保证你的程序打包jar后能正常运行
img=tk.getImage(Images.class.getClassLoader().getResource("images/background.jpg"));
setResizable(false);
setVisible(true);
//用匿名类处理窗口关闭
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
//重画线程启动
new Thread(new PaintThread()).start();
}
//内部类线程
private class PaintThread implements Runnable {
public void run() {
while(true) {
//该方法会调用paint()
repaint();
try {
Thread.sleep(50);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
public static void main(String[] args) {
Images tc=new Images();
tc.setFrame();
}
}
注:图片文件夹images位于放class文件的bin目录下。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询