当前位置: 代码迷 >> Java相关 >> 【求助】如何在java窗体中添加背景图片
  详细解决方案

【求助】如何在java窗体中添加背景图片

热度:523   发布时间:2010-06-22 02:19:27.0
【求助】如何在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);
    }

  
}
搜索更多相关的解决方案: java  窗体  

----------------解决方案--------------------------------------------------------
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);
    }
}

----------------解决方案--------------------------------------------------------
回复 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();
        }
}
   


----------------解决方案--------------------------------------------------------
  相关解决方案