我的界面是用SWING做的,布局是BorderLayout,有一个jPanel1放在当中的位置.并且把jPanel1改了Color在这个jPanel1中有7个JButton6个JLable.现在出现一个问题,我点击其中的一个JButton会产生一个窗口,这个窗口是继承自JInternalFrame,当我关闭这个窗口时之前的jPanel1不会刷新了,我打开之后是用remove把jPanel1删除的.关闭的时候我又重新add了!说不清楚,我放代码上来吧.刚学java帮帮忙!谢谢!
下面是主程序文件MainFrame.java

解决方案 »

  1.   


    package view;import java.awt.BorderLayout;
    import java.awt.GridLayout;
    import javax.swing.JFrame;
    import javax.swing.JMenuBar;
    import javax.swing.JToolBar;
    import javax.swing.JMenu;
    import javax.swing.JMenuItem;
    import javax.swing.JButton;
    import javax.swing.ImageIcon;
    import javax.swing.JPanel;
    import java.awt.Color;
    import javax.swing.SwingConstants;
    import java.awt.Rectangle;
    import javax.swing.JLabel;
    import java.awt.SystemColor;
    import javax.swing.BorderFactory;
    import javax.swing.border.TitledBorder;
    import java.util.Timer;
    import java.util.TimerTask;
    import java.text.DateFormat;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import javax.swing.JDesktopPane;public class MainFrame extends JFrame {
        private static final int TOOLBAR_BTN_COUNT = 7;
        BorderLayout borderLayout1 = new BorderLayout();
        JMenuBar jMenuBar1 = new JMenuBar();
        JToolBar jToolBar1 = new JToolBar();
        JMenu jMenu1 = new JMenu();
        JMenuItem jMenuItem1 = new JMenuItem();
        ImageIcon arraw1 = new ImageIcon(".\\icon\\arrow1.gif");
        ImageIcon arraw2 = new ImageIcon(".\\icon\\arrow2.gif");
        ImageIcon arraw3 = new ImageIcon(".\\icon\\arrow3.gif");
        ImageIcon arraw4 = new ImageIcon(".\\icon\\arrow4.gif");
        ImageIcon arraw5 = new ImageIcon(".\\icon\\arrow5.gif");
        ImageIcon arraw6 = new ImageIcon(".\\icon\\arrow6.gif");    ImageIcon bt0Icon = new ImageIcon(".\\icon\\center0.gif");
        ImageIcon bt1Icon = new ImageIcon(".\\icon\\center1.gif");
        ImageIcon bt2Icon = new ImageIcon(".\\icon\\center2.gif");
        ImageIcon bt3Icon = new ImageIcon(".\\icon\\center3.gif");
        ImageIcon bt4Icon = new ImageIcon(".\\icon\\center4.gif");
        ImageIcon bt5Icon = new ImageIcon(".\\icon\\center5.gif");
        ImageIcon bt6Icon = new ImageIcon(".\\icon\\center6.gif");
        ImageIcon[] tbIcon = new ImageIcon[TOOLBAR_BTN_COUNT];
        JButton toobarBtn[] = new JButton[TOOLBAR_BTN_COUNT];
        JPanel jPanel1 = new JPanel();
        private String tbText[] = {" 药品零售 ", " 药品入库 ", "药品字典维护",
                                  " 基本信息 ", " 用户管理 ", " 关于程序 ",
                                  " 退出程序 "};
        JDesktopPane desktopPane = new JDesktopPane();
        JButton jButton1 = new JButton(bt0Icon);
        JLabel jLabel1 = new JLabel();
        JButton jButton2 = new JButton(bt1Icon);
        JLabel jLabel2 = new JLabel();
        JButton jButton3 = new JButton(bt1Icon);
        JLabel jLabel3 = new JLabel();
        JLabel jLabel4 = new JLabel();
        JLabel jLabel5 = new JLabel();
        JLabel jLabel6 = new JLabel();
        JButton jButton4 = new JButton(bt1Icon);
        JButton jButton5 = new JButton(bt1Icon);
        JButton jButton6 = new JButton(bt1Icon);
        JButton jButton7 = new JButton(bt1Icon);
        JPanel jPanel2 = new JPanel();
        JLabel jLabel7 = new JLabel();
        TitledBorder titledBorder1 = new TitledBorder("");
        JLabel jLabel8 = new JLabel();
        JLabel jLabel9 = new JLabel();
        GridLayout gridLayout1 = new GridLayout();
        Timer timer = new Timer();
        TimerTask tt = new TimerTask() {
            public void run() {
                jLabel7.setText("当前时间:" +
                                new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new
                        Date()));
            }
        };    public MainFrame() {
            try {
                jbInit();
            } catch (Exception exception) {
                exception.printStackTrace();
            }
        }    private void jbInit() throws Exception {
            //初始化TOOBAR上的BUTTON
            for (int i = 0; i < TOOLBAR_BTN_COUNT; i++) {
                tbIcon[i] = new ImageIcon(".\\icon\\tb" + (i + 1) + ".gif");
                toobarBtn[i] = new JButton(tbText[i], tbIcon[i]);
                toobarBtn[i].setVerticalTextPosition(SwingConstants.BOTTOM);
                toobarBtn[i].setHorizontalTextPosition(SwingConstants.CENTER);
                jToolBar1.add(toobarBtn[i]);
                //jToolBar1.add(new JSeparator());
            }        getContentPane().setLayout(borderLayout1);
            this.getContentPane().setBackground(SystemColor.control);
            this.setJMenuBar(jMenuBar1);
            jMenu1.setText("药品销售");
            jMenuItem1.setText("药品零售");        jPanel1.setBackground(new Color(192, 220, 192));
            jPanel1.setLayout(null);
            jButton1.setBounds(new Rectangle(352, 126, 150, 85));
            jButton1.setToolTipText("");
            jButton1.setText("药品库存");
            jLabel1.setIcon(arraw1);
            jLabel1.setBounds(new Rectangle(172, 48, 179, 112));
            jButton2.setBounds(new Rectangle(23, 25, 150, 85));
            jButton2.setToolTipText("");
            jButton2.setText("药品零售");
            jLabel2.setIcon(arraw2);
            jLabel2.setBounds(new Rectangle(183, 189, 162, 112));
            jButton3.setBounds(new Rectangle(24, 246, 150, 85));
            jButton3.setToolTipText("");
            jButton3.setIcon(bt2Icon);
            jButton3.setText("药品批发");
            jLabel3.setIcon(arraw3);
            jLabel3.setBounds(new Rectangle(336, 223, 68, 145));
            jLabel4.setIcon(arraw4);
            jLabel4.setText("");
            jLabel4.setBounds(new Rectangle(489, 227, 68, 145));
            jLabel5.setIcon(arraw5);
            jLabel5.setBounds(new Rectangle(517, 178, 149, 100));
            jLabel6.setIcon(arraw6);
            jLabel6.setText("");
            jLabel6.setBounds(new Rectangle(517, 56, 152, 94));
            jButton4.setBounds(new Rectangle(258, 371, 150, 85));
            jButton4.setToolTipText("");
            jButton4.setIcon(bt3Icon);
            jButton4.setText("商家退货");
            jButton5.setBounds(new Rectangle(485, 371, 150, 85));
            jButton5.setToolTipText("");
            jButton5.setIcon(bt4Icon);
            jButton5.setText("顾客退货");
            jButton6.setBounds(new Rectangle(666, 215, 150, 85));
            jButton6.setToolTipText("");
            jButton6.setIcon(bt5Icon);
            jButton6.setText("药品字典");
            jButton6.addActionListener(new MainFrame_jButton6_actionAdapter(this));
            jButton7.setBounds(new Rectangle(666, 13, 150, 85));
            jButton7.setToolTipText("");
            jButton7.setIcon(bt6Icon);
            jButton7.setText("药品入库");
            jLabel7.setBorder(BorderFactory.createLoweredBevelBorder());
            jLabel7.setText("当前时间:2008-2-12 21:42:59");
            jPanel2.setLayout(gridLayout1);
            jLabel8.setBorder(BorderFactory.createLoweredBevelBorder());
            jLabel8.setText("操作员:超级用户");
            jLabel9.setBorder(BorderFactory.createLoweredBevelBorder());
            jLabel9.setToolTipText("");
            jLabel9.setText("北大青鸟T78班");
            this.getContentPane().add(jPanel1, java.awt.BorderLayout.CENTER);
            jPanel1.add(jButton1);
            jPanel1.add(jButton2);
            jPanel1.add(jLabel1);
            jPanel1.add(jLabel2);
            jPanel1.add(jLabel3);
            jPanel1.add(jLabel6);
            jPanel1.add(jLabel5);
            jPanel1.add(jLabel4);
            jPanel1.add(jButton3);
            jPanel1.add(jButton4);
            jPanel1.add(jButton5);
            jPanel1.add(jButton6);
            jPanel1.add(jButton7);
            this.getContentPane().add(jPanel2, java.awt.BorderLayout.NORTH);
            jMenuBar1.add(jMenu1);
            jMenu1.add(jMenuItem1);
            this.getContentPane().add(jToolBar1, java.awt.BorderLayout.NORTH);
            this.getContentPane().add(jPanel2, java.awt.BorderLayout.SOUTH);        jPanel2.add(jLabel7, null);
            jPanel2.add(jLabel8, null);
            jPanel2.add(jLabel9, null);
            timer.schedule(tt, 0, 1000);    }
      

  2.   


    [code=Java]
    package view;import java.awt.BorderLayout;
    import java.awt.GridLayout;
    import javax.swing.JFrame;
    import javax.swing.JMenuBar;
    import javax.swing.JToolBar;
    import javax.swing.JMenu;
    import javax.swing.JMenuItem;
    import javax.swing.JButton;
    import javax.swing.ImageIcon;
    import javax.swing.JPanel;
    import java.awt.Color;
    import javax.swing.SwingConstants;
    import java.awt.Rectangle;
    import javax.swing.JLabel;
    import java.awt.SystemColor;
    import javax.swing.BorderFactory;
    import javax.swing.border.TitledBorder;
    import java.util.Timer;
    import java.util.TimerTask;
    import java.text.DateFormat;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import javax.swing.JDesktopPane;public class MainFrame extends JFrame {
        private static final int TOOLBAR_BTN_COUNT = 7;
        BorderLayout borderLayout1 = new BorderLayout();
        JMenuBar jMenuBar1 = new JMenuBar();
        JToolBar jToolBar1 = new JToolBar();
        JMenu jMenu1 = new JMenu();
        JMenuItem jMenuItem1 = new JMenuItem();
        ImageIcon arraw1 = new ImageIcon(".\\icon\\arrow1.gif");
        ImageIcon arraw2 = new ImageIcon(".\\icon\\arrow2.gif");
        ImageIcon arraw3 = new ImageIcon(".\\icon\\arrow3.gif");
        ImageIcon arraw4 = new ImageIcon(".\\icon\\arrow4.gif");
        ImageIcon arraw5 = new ImageIcon(".\\icon\\arrow5.gif");
        ImageIcon arraw6 = new ImageIcon(".\\icon\\arrow6.gif");    ImageIcon bt0Icon = new ImageIcon(".\\icon\\center0.gif");
        ImageIcon bt1Icon = new ImageIcon(".\\icon\\center1.gif");
        ImageIcon bt2Icon = new ImageIcon(".\\icon\\center2.gif");
        ImageIcon bt3Icon = new ImageIcon(".\\icon\\center3.gif");
        ImageIcon bt4Icon = new ImageIcon(".\\icon\\center4.gif");
        ImageIcon bt5Icon = new ImageIcon(".\\icon\\center5.gif");
        ImageIcon bt6Icon = new ImageIcon(".\\icon\\center6.gif");
        ImageIcon[] tbIcon = new ImageIcon[TOOLBAR_BTN_COUNT];
        JButton toobarBtn[] = new JButton[TOOLBAR_BTN_COUNT];
        JPanel jPanel1 = new JPanel();
        private String tbText[] = {" 药品零售 ", " 药品入库 ", "药品字典维护",
                                  " 基本信息 ", " 用户管理 ", " 关于程序 ",
                                  " 退出程序 "};
        JDesktopPane desktopPane = new JDesktopPane();
        JButton jButton1 = new JButton(bt0Icon);
        JLabel jLabel1 = new JLabel();
        JButton jButton2 = new JButton(bt1Icon);
        JLabel jLabel2 = new JLabel();
        JButton jButton3 = new JButton(bt1Icon);
        JLabel jLabel3 = new JLabel();
        JLabel jLabel4 = new JLabel();
        JLabel jLabel5 = new JLabel();
        JLabel jLabel6 = new JLabel();
        JButton jButton4 = new JButton(bt1Icon);
        JButton jButton5 = new JButton(bt1Icon);
        JButton jButton6 = new JButton(bt1Icon);
        JButton jButton7 = new JButton(bt1Icon);
        JPanel jPanel2 = new JPanel();
        JLabel jLabel7 = new JLabel();
        TitledBorder titledBorder1 = new TitledBorder("");
        JLabel jLabel8 = new JLabel();
        JLabel jLabel9 = new JLabel();
        GridLayout gridLayout1 = new GridLayout();
        Timer timer = new Timer();
        TimerTask tt = new TimerTask() {
            public void run() {
                jLabel7.setText("当前时间:" +
                                new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new
                        Date()));
            }
        };    public MainFrame() {
            try {
                jbInit();
            } catch (Exception exception) {
                exception.printStackTrace();
            }
        }    private void jbInit() throws Exception {
            //初始化TOOBAR上的BUTTON
            for (int i = 0; i < TOOLBAR_BTN_COUNT; i++) {
                tbIcon[i] = new ImageIcon(".\\icon\\tb" + (i + 1) + ".gif");
                toobarBtn[i] = new JButton(tbText[i], tbIcon[i]);
                toobarBtn[i].setVerticalTextPosition(SwingConstants.BOTTOM);
                toobarBtn[i].setHorizontalTextPosition(SwingConstants.CENTER);
                jToolBar1.add(toobarBtn[i]);
                //jToolBar1.add(new JSeparator());
            }        getContentPane().setLayout(borderLayout1);
            this.getContentPane().setBackground(SystemColor.control);
            this.setJMenuBar(jMenuBar1);
            jMenu1.setText("药品销售");
            jMenuItem1.setText("药品零售");        jPanel1.setBackground(new Color(192, 220, 192));
            jPanel1.setLayout(null);
            jButton1.setBounds(new Rectangle(352, 126, 150, 85));
            jButton1.setToolTipText("");
            jButton1.setText("药品库存");
            jLabel1.setIcon(arraw1);
            jLabel1.setBounds(new Rectangle(172, 48, 179, 112));
            jButton2.setBounds(new Rectangle(23, 25, 150, 85));
            jButton2.setToolTipText("");
            jButton2.setText("药品零售");
            jLabel2.setIcon(arraw2);
            jLabel2.setBounds(new Rectangle(183, 189, 162, 112));
            jButton3.setBounds(new Rectangle(24, 246, 150, 85));
            jButton3.setToolTipText("");
            jButton3.setIcon(bt2Icon);
            jButton3.setText("药品批发");
            jLabel3.setIcon(arraw3);
            jLabel3.setBounds(new Rectangle(336, 223, 68, 145));
            jLabel4.setIcon(arraw4);
            jLabel4.setText("");
            jLabel4.setBounds(new Rectangle(489, 227, 68, 145));
            jLabel5.setIcon(arraw5);
            jLabel5.setBounds(new Rectangle(517, 178, 149, 100));
            jLabel6.setIcon(arraw6);
            jLabel6.setText("");
            jLabel6.setBounds(new Rectangle(517, 56, 152, 94));
            jButton4.setBounds(new Rectangle(258, 371, 150, 85));
            jButton4.setToolTipText("");
            jButton4.setIcon(bt3Icon);
            jButton4.setText("商家退货");
            jButton5.setBounds(new Rectangle(485, 371, 150, 85));
            jButton5.setToolTipText("");
            jButton5.setIcon(bt4Icon);
            jButton5.setText("顾客退货");
            jButton6.setBounds(new Rectangle(666, 215, 150, 85));
            jButton6.setToolTipText("");
            jButton6.setIcon(bt5Icon);
            jButton6.setText("药品字典");
            jButton6.addActionListener(new MainFrame_jButton6_actionAdapter(this));
            jButton7.setBounds(new Rectangle(666, 13, 150, 85));
            jButton7.setToolTipText("");
            jButton7.setIcon(bt6Icon);
            jButton7.setText("药品入库");
            jLabel7.setBorder(BorderFactory.createLoweredBevelBorder());
            jLabel7.setText("当前时间:2008-2-12 21:42:59");
            jPanel2.setLayout(gridLayout1);
            jLabel8.setBorder(BorderFactory.createLoweredBevelBorder());
            jLabel8.setText("操作员:超级用户");
            jLabel9.setBorder(BorderFactory.createLoweredBevelBorder());
            jLabel9.setToolTipText("");
            jLabel9.setText("北大青鸟T78班");
            this.getContentPane().add(jPanel1, java.awt.BorderLayout.CENTER);
            jPanel1.add(jButton1);
            jPanel1.add(jButton2);
            jPanel1.add(jLabel1);
            jPanel1.add(jLabel2);
            jPanel1.add(jLabel3);
            jPanel1.add(jLabel6);
            jPanel1.add(jLabel5);
            jPanel1.add(jLabel4);
            jPanel1.add(jButton3);
            jPanel1.add(jButton4);
            jPanel1.add(jButton5);
            jPanel1.add(jButton6);
            jPanel1.add(jButton7);
            this.getContentPane().add(jPanel2, java.awt.BorderLayout.NORTH);
            jMenuBar1.add(jMenu1);
            jMenu1.add(jMenuItem1);
            this.getContentPane().add(jToolBar1, java.awt.BorderLayout.NORTH);
            this.getContentPane().add(jPanel2, java.awt.BorderLayout.SOUTH);        jPanel2.add(jLabel7, null);
            jPanel2.add(jLabel8, null);
            jPanel2.add(jLabel9, null);
            timer.schedule(tt, 0, 1000);    }
    [/code]
      

  3.   

    下面是YPDict.javapackage view;import java.awt.*;import javax.swing.*;
    import javax.swing.event.InternalFrameEvent;
    import javax.swing.event.InternalFrameAdapter;
    import java.awt.event.WindowAdapter;
    import java.awt.event.WindowEvent;public class YPDict extends JInternalFrame {
        BorderLayout borderLayout1 = new BorderLayout();
        private MainFrame mf;
        public YPDict(MainFrame mf) {        super("药品字典管理", true, true, true, true);
            this.mf = mf;
            try {
                jbInit();
            } catch (Exception exception) {
                exception.printStackTrace();
            }
        }    private void jbInit() throws Exception {        getContentPane().setLayout(borderLayout1);
            this.addInternalFrameListener(new YPDict_this_internalFrameAdapter(this));
        }    public void this_internalFrameClosing(InternalFrameEvent e) {
            mf.desktopPane.remove(this);
            mf.getContentPane().add(mf.jPanel1, BorderLayout.CENTER);
            mf.getContentPane().repaint();
            mf.setVisible(true);
        }
    }
    class YPDict_this_internalFrameAdapter extends InternalFrameAdapter {
        private YPDict adaptee;
        YPDict_this_internalFrameAdapter(YPDict adaptee) {
            this.adaptee = adaptee;
        }    public void internalFrameClosing(InternalFrameEvent e) {
            adaptee.this_internalFrameClosing(e);
        }
    }