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是菜鸟,希望各位大大指点一下
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是菜鸟,希望各位大大指点一下
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();
}
});