【求助】如何在java窗体中添加背景图片
这是我的代码,想在这个窗体中插入同文件夹下的ABC.jpg图片座位背景~~希望各位高手帮帮忙import java.awt.*;
import java.awt.event.*;
public class ct extends Frame implements ActionListener
{
static ct frm=new ct();
static MenuBar mb=new MenuBar();
static Menu menu0=new Menu("文件");
static Menu menu1=new Menu("编辑");
static Menu menu2=new Menu("查看");
static Menu menu3=new Menu("工具");
static Menu menu4=new Menu("帮助");
static MenuItem mi0_1=new Menu("新建");
static MenuItem mi0_2=new Menu("删除");
static MenuItem mi0_3=new Menu("重命名");
static MenuItem mi0_4=new Menu("属性");
static MenuItem mi0_5=new MenuItem("关闭");
static MenuItem mi1_1=new Menu("撤销");
static MenuItem mi1_2=new Menu("剪切");
static MenuItem mi1_3=new Menu("复制");
static MenuItem mi1_4=new Menu("粘贴");
static MenuItem mi1_5=new Menu("全选");
static MenuItem mi2_1=new Menu("刷新");
static MenuItem mi3_1=new Menu("设置");
static MenuItem mi3_2=new Menu("选项");
static MenuItem mi4_1=new Menu("帮助主题");
static MenuItem mi4_2=new Menu("关于");
static Button btn1=new Button("连 连 看");
static Button btn2=new Button("俄罗斯方块");
static Button btn3=new Button("猜 拳");
static Button btn4=new Button("猜 数");
public static void initGUI(){
frm.setTitle("管理员界面");
btn1.setBounds(400,100,100,30);
btn2.setBounds(550,100,100,30);
btn3.setBounds(700,100,100,30);
btn4.setBounds(850,100,100,30);
frm.add(btn1);
frm.add(btn2);
frm.add(btn3);
frm.add(btn4);
mb.add(menu0);
mb.add(menu1);
mb.add(menu2);
mb.add(menu3);
mb.add(menu4);
menu0.add(mi0_1);
menu0.add(mi0_2);
menu0.add(mi0_3);
menu0.add(mi0_4);
menu0.add(mi0_5);
menu1.add(mi1_1);
menu1.add(mi1_2);
menu1.add(mi1_3);
menu1.add(mi1_4);
menu1.add(mi1_5);
menu2.add(mi2_1);
menu3.add(mi3_1);
menu3.add(mi3_2);
menu4.add(mi4_1);
menu4.add(mi4_2);
mi0_5.addActionListener(frm);
mi1_1.addActionListener(frm);
mi1_2.addActionListener(frm);
mi1_3.addActionListener(frm);
mi1_4.addActionListener(frm);
mi1_5.addActionListener(frm);
mi2_1.addActionListener(frm);
mi3_1.addActionListener(frm);
mi3_2.addActionListener(frm);
mi4_1.addActionListener(frm);
mi4_2.addActionListener(frm);
frm.setSize(1366,740);
frm.setBackground(Color.yellow);
frm.setMenuBar(mb);
frm.setVisible(true);
frm.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}}) ;
}
public static void main(String args[])
{
initGUI();
}
public void actionPerformed(ActionEvent e)
{
MenuItem mi=(MenuItem)e.getSource();
if(mi==mi0_5)
System.exit(0);
else if(mi==mi2_1)
frm.setBackground(Color.pink);
}
public void windowClosing(WindowEvent e)
{
frm.dispose();
System.exit(0);
}
}
----------------解决方案--------------------------------------------------------
AWT要重写paint, 用Swing方便些, 同意3L版主
[ 本帖最后由 lampeter123 于 2010-6-22 10:38 编辑 ]
----------------解决方案--------------------------------------------------------
设置背景图片要重绘组件。我把你的组件全部换成swing的,代码如下:
程序代码:
package lin;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
public class ct extends JFrame implements ActionListener {
static ct frm = new ct();
static JPanel panel = new JPanel(){
public void paintComponent(Graphics g) {
ImageIcon icon = new ImageIcon("src/lin/1.jpg");
g.drawImage(icon.getImage(), 0, 0, this.getWidth(), this.getHeight(), this);
}
};
static JMenuBar mb = new JMenuBar();
static JMenu menu0 = new JMenu("文件");
static JMenu menu1 = new JMenu("编辑");
static JMenu menu2 = new JMenu("查看");
static JMenu menu3 = new JMenu("工具");
static JMenu menu4 = new JMenu("帮助");
static JMenuItem mi0_1 = new JMenu("新建");
static JMenuItem mi0_2 = new JMenu("删除");
static JMenuItem mi0_3 = new JMenu("重命名");
static JMenuItem mi0_4 = new JMenu("属性");
static JMenuItem mi0_5 = new JMenuItem("关闭");
static JMenuItem mi1_1 = new JMenu("撤销");
static JMenuItem mi1_2 = new JMenu("剪切");
static JMenuItem mi1_3 = new JMenu("复制");
static JMenuItem mi1_4 = new JMenu("粘贴");
static JMenuItem mi1_5 = new JMenu("全选");
static JMenuItem mi2_1 = new JMenuItem("变色");
static JMenuItem mi3_1 = new JMenu("设置");
static JMenuItem mi3_2 = new JMenu("选项");
static JMenuItem mi4_1 = new JMenu("帮助主题");
static JMenuItem mi4_2 = new JMenu("关于");
static JLabel lab = new JLabel("我的窗体", JLabel.CENTER);
static JButton btn1 = new JButton("连 连 看");
static JButton btn2 = new JButton("俄罗斯方块");
static JButton btn3 = new JButton("猜 拳");
static JButton btn4 = new JButton("猜 数");
public static void initGUI() {
frm.setTitle("管理员界面");
btn1.setBounds(400, 100, 100, 30);
btn2.setBounds(550, 100, 100, 30);
btn3.setBounds(700, 100, 100, 30);
btn4.setBounds(850, 100, 100, 30);
frm.add(btn1);
frm.add(btn2);
frm.add(btn3);
frm.add(btn4);
mb.add(menu0);
mb.add(menu1);
mb.add(menu2);
mb.add(menu3);
mb.add(menu4);
menu0.add(mi0_1);
menu0.add(mi0_2);
menu0.add(mi0_3);
menu0.add(mi0_4);
menu0.add(mi0_5);
menu1.add(mi1_1);
menu1.add(mi1_2);
menu1.add(mi1_3);
menu1.add(mi1_4);
menu1.add(mi1_5);
menu2.add(mi2_1);
menu3.add(mi3_1);
menu3.add(mi3_2);
menu4.add(mi4_1);
menu4.add(mi4_2);
mi0_5.addActionListener(frm);
mi1_1.addActionListener(frm);
mi1_2.addActionListener(frm);
mi1_3.addActionListener(frm);
mi1_4.addActionListener(frm);
mi1_5.addActionListener(frm);
mi2_1.addActionListener(frm);
mi3_1.addActionListener(frm);
mi3_2.addActionListener(frm);
mi4_1.addActionListener(frm);
mi4_2.addActionListener(frm);
panel.add(lab);
// panel.setBackground(Color.yellow);
frm.getContentPane().add(panel);
frm.setSize(1366, 740);
frm.setJMenuBar(mb);
frm.setVisible(true);
frm.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
public static void main(String args[]) {
initGUI();
frm.setVisible(false);
frm.setBackground(Color.yellow);
frm.setVisible(true);
}
public void actionPerformed(ActionEvent e) {
JMenuItem mi = (JMenuItem) e.getSource();
if (mi == mi0_5)
System.exit(0);
else if (mi == mi2_1) {
panel.setBackground(Color.pink);// 使窗体改变背景颜色
}
}
public void windowClosing(WindowEvent e) {
frm.dispose();
System.exit(0);
}
}
import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
public class ct extends JFrame implements ActionListener {
static ct frm = new ct();
static JPanel panel = new JPanel(){
public void paintComponent(Graphics g) {
ImageIcon icon = new ImageIcon("src/lin/1.jpg");
g.drawImage(icon.getImage(), 0, 0, this.getWidth(), this.getHeight(), this);
}
};
static JMenuBar mb = new JMenuBar();
static JMenu menu0 = new JMenu("文件");
static JMenu menu1 = new JMenu("编辑");
static JMenu menu2 = new JMenu("查看");
static JMenu menu3 = new JMenu("工具");
static JMenu menu4 = new JMenu("帮助");
static JMenuItem mi0_1 = new JMenu("新建");
static JMenuItem mi0_2 = new JMenu("删除");
static JMenuItem mi0_3 = new JMenu("重命名");
static JMenuItem mi0_4 = new JMenu("属性");
static JMenuItem mi0_5 = new JMenuItem("关闭");
static JMenuItem mi1_1 = new JMenu("撤销");
static JMenuItem mi1_2 = new JMenu("剪切");
static JMenuItem mi1_3 = new JMenu("复制");
static JMenuItem mi1_4 = new JMenu("粘贴");
static JMenuItem mi1_5 = new JMenu("全选");
static JMenuItem mi2_1 = new JMenuItem("变色");
static JMenuItem mi3_1 = new JMenu("设置");
static JMenuItem mi3_2 = new JMenu("选项");
static JMenuItem mi4_1 = new JMenu("帮助主题");
static JMenuItem mi4_2 = new JMenu("关于");
static JLabel lab = new JLabel("我的窗体", JLabel.CENTER);
static JButton btn1 = new JButton("连 连 看");
static JButton btn2 = new JButton("俄罗斯方块");
static JButton btn3 = new JButton("猜 拳");
static JButton btn4 = new JButton("猜 数");
public static void initGUI() {
frm.setTitle("管理员界面");
btn1.setBounds(400, 100, 100, 30);
btn2.setBounds(550, 100, 100, 30);
btn3.setBounds(700, 100, 100, 30);
btn4.setBounds(850, 100, 100, 30);
frm.add(btn1);
frm.add(btn2);
frm.add(btn3);
frm.add(btn4);
mb.add(menu0);
mb.add(menu1);
mb.add(menu2);
mb.add(menu3);
mb.add(menu4);
menu0.add(mi0_1);
menu0.add(mi0_2);
menu0.add(mi0_3);
menu0.add(mi0_4);
menu0.add(mi0_5);
menu1.add(mi1_1);
menu1.add(mi1_2);
menu1.add(mi1_3);
menu1.add(mi1_4);
menu1.add(mi1_5);
menu2.add(mi2_1);
menu3.add(mi3_1);
menu3.add(mi3_2);
menu4.add(mi4_1);
menu4.add(mi4_2);
mi0_5.addActionListener(frm);
mi1_1.addActionListener(frm);
mi1_2.addActionListener(frm);
mi1_3.addActionListener(frm);
mi1_4.addActionListener(frm);
mi1_5.addActionListener(frm);
mi2_1.addActionListener(frm);
mi3_1.addActionListener(frm);
mi3_2.addActionListener(frm);
mi4_1.addActionListener(frm);
mi4_2.addActionListener(frm);
panel.add(lab);
// panel.setBackground(Color.yellow);
frm.getContentPane().add(panel);
frm.setSize(1366, 740);
frm.setJMenuBar(mb);
frm.setVisible(true);
frm.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
public static void main(String args[]) {
initGUI();
frm.setVisible(false);
frm.setBackground(Color.yellow);
frm.setVisible(true);
}
public void actionPerformed(ActionEvent e) {
JMenuItem mi = (JMenuItem) e.getSource();
if (mi == mi0_5)
System.exit(0);
else if (mi == mi2_1) {
panel.setBackground(Color.pink);// 使窗体改变背景颜色
}
}
public void windowClosing(WindowEvent e) {
frm.dispose();
System.exit(0);
}
}
----------------解决方案--------------------------------------------------------
回复 3楼 linjx0123
~~非常感谢~~ ----------------解决方案--------------------------------------------------------
求助 在这个代码中怎么添加背景图片
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class MainMenu implements ActionListener
{
JFrame frame;
JMenuItem add,update,select,delete,exit;
JMenu option,cancel;
JMenuBar bar;
MainMenu()
{
frame=new JFrame("欢迎登录学生信息系统 ");
frame.setVisible(true);
frame.setLocation(300,200);
frame.setSize(400,300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
add=new JMenuItem("录入学生基本信息");
update=new JMenuItem("修改学生基本信息");
select=new JMenuItem("查询学生基本信息");
delete=new JMenuItem("删除学生基本信息");
exit=new JMenuItem("退出系统");
add.addActionListener(this);
update.addActionListener(this);
select.addActionListener(this);
delete.addActionListener(this);
exit.addActionListener(this);
JMenu option=new JMenu("选择");
JMenu cancel=new JMenu("退出");
option.add(add);
option.add(update);
option.add(select);
option.add(delete);
cancel.add(exit);
JMenuBar bar=new JMenuBar();
bar.add(option);
bar.add(cancel);
frame.setJMenuBar(bar);
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==add)
{
new AddWindow();
frame.setVisible(false);
}
if(e.getSource()==delete)
{
new DeleteWindow();
frame.setVisible(false);
}
if(e.getSource()==exit)
{
System.exit(0);
}
}
public static void main(String args[])
{
new MainMenu();
}
}
----------------解决方案--------------------------------------------------------