求问这个图形界面加一个背景图片,最好能随着界面大小的变化而变化,小弟初学,看到书上的这个例子,但不知道怎么换一个漂亮点的图片,没有背景太单调了,求各位大神帮忙看看吧,上次提问就没有收到很好的答案
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.tree.*;
import java.net.*;/**
 * 人事管理系统主界面
 */
public class HrMain extends JFrame implements ActionListener,TreeSelectionListener{
    //框架的大小
    Dimension faceSize = new Dimension(650, 450);
    //程序图标
    Image buaa;    //建立Jtree菜单
    JTree tree;
    DefaultMutableTreeNode root;  //人事管理系统
    DefaultMutableTreeNode node1; //人员基本信息维护
    DefaultMutableTreeNode node2; //部门信息管理
    DefaultMutableTreeNode node3; //人员调动管理
    DefaultMutableTreeNode node4; //人员考核管理
    DefaultMutableTreeNode node5; //劳资管理
    DefaultMutableTreeNode leafnode;
    TreePath treePath;    //主界面面板
    public static JSplitPane splitPane;
    JPanel panel1;
    JPanel panel2;
    JPanel panel3;
    JLabel welcome = new JLabel();
    JScrollPane scrollPane;    /**
     * 程序初始化函数
     */
     public HrMain() {
        enableEvents(AWTEvent.WINDOW_EVENT_MASK);        //添加框架的关闭事件处理
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.pack();
        //设置框架的大小
        this.setSize(faceSize);
        //设置标题
        this.setTitle("人事管理系统");
        //程序图标
        buaa = getImage("buaa.jpg");
        this.setIconImage(buaa); //设置程序图标
        //设置自定义大小
        this.setResizable(false);        try {    
            Init();
        }
        catch(Exception e) {
            e.printStackTrace();
        }
    }
    /**
     * 程序初始化函数
     */
    private void Init() throws Exception {
        //Container contentPane = this.getContentPane();
        //contentPane.setLayout(new BorderLayout());        //添加Jtree菜单
        root = new DefaultMutableTreeNode("人事管理系统");
        node1 = new DefaultMutableTreeNode("基本信息管理");
        node2 = new DefaultMutableTreeNode("人员调动管理");
        node3 = new DefaultMutableTreeNode("人员考核管理");
        node4 = new DefaultMutableTreeNode("劳资管理");
        //人员基本信息
        root.add(node1);
        leafnode = new DefaultMutableTreeNode("添加人员信息");
        node1.add(leafnode);
        leafnode = new DefaultMutableTreeNode("修改人员信息");
        node1.add(leafnode);
        leafnode = new DefaultMutableTreeNode("删除人员信息");
        node1.add(leafnode);
        leafnode = new DefaultMutableTreeNode("查询人员信息");
        node1.add(leafnode);
        leafnode = new DefaultMutableTreeNode("部门管理");
        node1.add(leafnode);
        //人员调动管理
        root.add(node2);
        leafnode = new DefaultMutableTreeNode("人员调动");
        node2.add(leafnode);
        leafnode = new DefaultMutableTreeNode("调动历史查询");
        node2.add(leafnode);
        //人员考核管理
        root.add(node3);
        leafnode = new DefaultMutableTreeNode("人员考核");
        node3.add(leafnode);
        leafnode = new DefaultMutableTreeNode("考核历史查询");
        node3.add(leafnode);
        //劳资管理
        root.add(node4);
        leafnode = new DefaultMutableTreeNode("劳资分配管理");
        node4.add(leafnode);
        leafnode = new DefaultMutableTreeNode("劳资历史查询");
        node4.add(leafnode);
        //生成左侧的JTree
        tree = new JTree(root);
        scrollPane = new JScrollPane(tree);
        scrollPane.setPreferredSize(new Dimension(150,400));
        tree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);
        //生成JPanel
        panel1 = new JPanel();
        panel2 = new JPanel();
        panel3 = new JPanel();
        panel1.add(scrollPane);
        welcome.setText("欢迎使用人事管理系统");
        welcome.setFont(new Font("Dialog",0,16));
        panel3.add(welcome);
        
        //生成JSplitPane并设置参数
        splitPane = new JSplitPane();
        splitPane.setOneTouchExpandable(false);
        splitPane.setContinuousLayout(true);
        splitPane.setPreferredSize(new Dimension(150, 400));
        splitPane.setOrientation(JSplitPane.HORIZONTAL_SPLIT);
        splitPane.setLeftComponent(panel1);
        splitPane.setRightComponent(panel3);
        splitPane.setDividerSize(2);
        splitPane.setDividerLocation(161);
        //生成主界面
        this.setContentPane(splitPane);
        this.setVisible(true);        //添加事件侦听
        tree.addTreeSelectionListener(this);        //关闭程序时的操作
        this.addWindowListener(
            new WindowAdapter(){
                public void windowClosing(WindowEvent e){
                    System.exit(0);
                }
            }
        );
    }    /**
     * 事件处理
     */
    public void actionPerformed(ActionEvent e) {    }    /**
     * JTree事件处理
     */
    public void valueChanged(TreeSelectionEvent tse) {
        DefaultMutableTreeNode dnode = 
            (DefaultMutableTreeNode)tse.getPath().getLastPathComponent();
        System.out.println("dnode="+dnode);
        String node_str = dnode.toString();
        if (node_str == "人事管理系统") { 
            splitPane.setRightComponent(panel3);
        }
        //人员基本信息管理树
        else if (node_str == "基本信息管理") { 
            //当选中后展开或关闭叶子节点
            treePath = new TreePath(node1.getPath());
            if(tree.isExpanded(treePath))
                tree.collapsePath(treePath);
            else
                tree.expandPath(treePath);
        }
        else if (node_str == "添加人员信息") { 
            Node11Panel node11Panel = new Node11Panel();
            splitPane.setRightComponent(node11Panel);
        }
        else if (node_str == "修改人员信息") { 
            Node12Panel node12Panel = new Node12Panel();
            splitPane.setRightComponent(node12Panel);
        }
        else if (node_str == "删除人员信息") { 
            Node13Panel node13Panel = new Node13Panel();
            splitPane.setRightComponent(node13Panel);
        }
        else if (node_str == "查询人员信息") { 
            Node14Panel node14Panel = new Node14Panel();
            splitPane.setRightComponent(node14Panel);
        }
        else if (node_str == "部门管理") { 
            Node15Panel node15Panel = new Node15Panel();
            splitPane.setRightComponent(node15Panel);
        }
        //人员调动管理树
        else if (node_str == "人员调动管理") { 
            //当选中后展开或关闭叶子节点
            treePath = new TreePath(node2.getPath());
            if(tree.isExpanded(treePath))
                tree.collapsePath(treePath);
            else
                tree.expandPath(treePath);
        }
        else if (node_str == "人员调动") { 
            Node21Panel node21Panel = new Node21Panel();
            splitPane.setRightComponent(node21Panel);
        }
        else if (node_str == "调动历史查询") { 
            Node22Panel node22Panel = new Node22Panel();
            splitPane.setRightComponent(node22Panel);
        }
        //人员考核管理树
        else if (node_str == "人员考核管理") {
            //当选中后展开或关闭叶子节点
            treePath = new TreePath(node3.getPath());
            if(tree.isExpanded(treePath))
                tree.collapsePath(treePath);
            else
                tree.expandPath(treePath);
        }
        else if (node_str == "人员考核") { 
            Node31Panel node31Panel = new Node31Panel();
            splitPane.setRightComponent(node31Panel);
        }
        else if (node_str == "考核历史查询") { 
            Node32Panel node32Panel = new Node32Panel();
            splitPane.setRightComponent(node32Panel);
        }
        //劳资管理树
        else if (node_str == "劳资管理") {
            //当选中后展开或关闭叶子节点
            treePath = new TreePath(node4.getPath());
            if(tree.isExpanded(treePath))
                tree.collapsePath(treePath);
            else
                tree.expandPath(treePath);
        }
        else if (node_str == "劳资分配管理") { 
            Node41Panel node41Panel = new Node41Panel();
            splitPane.setRightComponent(node41Panel);
        }
        else if (node_str == "劳资历史查询") { 
            Node42Panel nod42Panel = new Node42Panel();
            splitPane.setRightComponent(nod42Panel);
        }
    }    /**
     * 通过给定的文件名获得图像
     */
    Image getImage(String filename) {
        URLClassLoader urlLoader = (URLClassLoader)this.getClass().
            getClassLoader();
        URL url = null;
        Image image = null;
        url = urlLoader.findResource(filename);
        image = Toolkit.getDefaultToolkit().getImage(url);
        MediaTracker mediatracker = new MediaTracker(this);
        try {
            mediatracker.addImage(image, 0);
            mediatracker.waitForID(0);
        }
        catch (InterruptedException _ex) {
            image = null;
        }
        if (mediatracker.isErrorID(0)) {
            image = null;
        }        return image;
    }
}