import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;public class FSmain extends JFrame{

//高度,显示水平位置
private final int width = 800;
private final int height = 600;
private final Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();
private final int left = (screen.width - width) / 2;
private final int top = (screen.height - height) / 2;

//主体FRAME
private final JFrame frame = new JFrame();

//导航条
private JMenuBar jmbar = new JMenuBar();
private JMenu jmsys;
private JPanel jpmain;

//运行主窗体参数
public void showDialog() throws Exception{
frame.setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);//点关闭后,资源释放
frame.setBounds(left, top, width, height);
frame.setVisible(true);
}

public FSmain(){
super();
jmbar = tjmsys();
frame.setJMenuBar(jmbar);
}

/**
 * BAR条及选项
 * @return
 */
public JMenuBar tjmsys(){
jmsys = new JMenu();
jmsys.setText("系统");
JMenuItem jmi1 = new JMenuItem();
jmi1.setText("1新打开PANEL");
jmi1.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
JPanel p1 = new JPanel(new FlowLayout(FlowLayout.LEFT));
JLabel jlab = new JLabel();
jlab.setText("Lable123");
p1.add(jlab);
frame.add(p1);
}
});
jmsys.add(jmi1);
JMenuItem jmi2 = new JMenuItem();
jmi2.setText("2新打开PANEL");
jmi2.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
JPanel p2 = new JPanel(new FlowLayout(FlowLayout.LEFT));
JLabel jlab2 = new JLabel();
jlab2.setText("222lab");
p2.add(jlab2);
frame.add(p2);
}
});
jmsys.add(jmi1);
jmsys.add(jmi2);
jmbar.add(jmsys);
return jmbar;
}

public static void main(String[] args)throws Exception {
FSmain f = new FSmain();
f.showDialog(); }}
我想实现的结果是,点 系统---1新打开PANEL,就在BAR条下面的空白地方出现P1的的Label,  点 "2新打开PANEL"就出现另外一个P2的LABEL,请问,是如何实现的?一直在搞WEB,  而SWING是菜鸟,希望各位大大指点一下

解决方案 »

  1.   

    jmi1.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
    JPanel p1 = new JPanel(new FlowLayout(FlowLayout.LEFT));
    JLabel jlab = new JLabel();
    jlab.setText("Lable123");
    p1.add(jlab);
    frame.getContentPane().removeAll();
    frame.getContentPane().add(p1);
    frame.getContentPane().validate();

    }
    });
    jmsys.add(jmi1);
    JMenuItem jmi2 = new JMenuItem();
    jmi2.setText("2新打开PANEL");
    jmi2.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
    JPanel p2 = new JPanel(new FlowLayout(FlowLayout.LEFT));
    JLabel jlab2 = new JLabel();
    jlab2.setText("222lab");
    p2.add(jlab2);
    frame.getContentPane().removeAll();
    frame.getContentPane().add(p2);
    frame.getContentPane().validate();

    }
    });