swing实现的界面实例

swing实现的界面实例
public class MyFrame extends JFrame implements ActionListener {

	public Analysis ana = new Analysis();
	// 菜单栏,北区
	JMenuBar jm = new JMenuBar();
	JMenu startMenu = new JMenu("开始");
	JMenu runMenu = new JMenu("运行");
	JMenu optionMenu = new JMenu("选项");
	JMenuItem openItem = new JMenuItem("打开");
	JMenuItem saveItem = new JMenuItem("保存");
	JMenuItem clearItem = new JMenuItem("清除");
	JMenuItem quitItem = new JMenuItem(" 退出");
	JMenuItem analyItem = new JMenuItem("分析");
	JMenuItem optionItem = new JMenuItem("配置");
	JMenuItem helpItem = new JMenuItem("帮助");
	JMenuItem aboutItem = new JMenuItem("关于");

	// 按钮面板,南区
	JButton[] jb = { new JButton("打开"), new JButton("清除"), new JButton("保存"),
			new JButton("分析"), new JButton("退出") };
	JPanel buttonJPane = new JPanel(new FlowLayout());

	// 选项卡0,西区
	JTabbedPane jtab0 = new JTabbedPane();
	JTextArea sourceTextArea = new JTextArea(19, 35);
	JScrollPane sourceJSP = new JScrollPane(sourceTextArea);

	// 选项卡1,东区
	JTabbedPane jtab1 = new JTabbedPane(SwingConstants.TOP);
	JTextArea reportTextArea = new JTextArea("", 19, 35);
	JTextArea tableTextArea = new JTextArea("", 19, 35);
	JTextArea ruleTextArea = new JTextArea("", 19, 35);
	JScrollPane reportJSP = new JScrollPane(reportTextArea);
	JScrollPane tableJSP = new JScrollPane(tableTextArea);
	JScrollPane ruleJSP = new JScrollPane(ruleTextArea);

	MyFrame() {
		this.setTitle("C语言词法分析器");
		this.setLayout(new BorderLayout());
		this.setBounds(100, 100, 840, 520);
		this.setResizable(false);

		// 菜单栏设计,北区
		startMenu.add(openItem);
		openItem.addActionListener(this);
		startMenu.add(saveItem);
		saveItem.addActionListener(this);
		startMenu.add(quitItem);
		quitItem.addActionListener(this);
		runMenu.add(clearItem);
		clearItem.addActionListener(this);
		runMenu.add(analyItem);
		analyItem.addActionListener(this);
		optionMenu.add(optionItem);
		optionMenu.add(helpItem);
		helpItem.addActionListener(this);
		optionMenu.add(aboutItem);
		aboutItem.addActionListener(this);
		jm.add(startMenu);
		jm.add(runMenu);
		jm.add(optionMenu);
		this.add(jm, BorderLayout.NORTH);

		// 按钮设计,南区
		for (int i = 0; i < jb.length; i++) {
			buttonJPane.add(jb[i]);
			jb[i].addActionListener(this);
		}
		this.add(buttonJPane, BorderLayout.SOUTH);

		// 源程序输入,西区
		jtab0.add("源程序", sourceJSP);
		this.add(jtab0, BorderLayout.WEST);

		// 结果输出,东区
		reportTextArea.setEditable(false);
		tableTextArea.setEditable(false);
		ruleTextArea.setEditable(false);
		jtab1.add("分析报告", reportJSP);
		jtab1.add("符号表", tableJSP);
		jtab1.add("帮助", ruleJSP);
		this.add(jtab1, BorderLayout.EAST);
		this.loadRuleFile();

		this.setVisible(true);
	}

效果图:



采用border布局,北部为JMenuBar ,南部为JPanel上放几个Button

要弹出消息用    JOptionPanel.ShowMessageDialog(this,"内容");

文件打开/保存器   FileDialog    FileDialog fd = new FileDialog(this, "标题", 打开模式);


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值