Java记事本GUI界面设计

原创 2014年08月04日 19:39:38


一、分析一下要写的记事本界面风格(当然是照葫芦画瓢了)

·               需要的swing组件如下:一个JFrame框架容器组件,一个JMenuBar菜单栏组件,五个JMenu菜单组件,二十三个JMenuItem组件,一个JTextArea文本域组件,一个JSCrollPane滚动窗格组件。

界面布局采用的是默认布局方式:BorderLayout边界布局。

二、代码实现

· 实现思路:①先定义组件(组件变量名采用缩写)

           //定义菜栏条组件
	    private  JMenuBar jmb;
	   //定义菜单组件
	   private JMenu []jm=new JMenu[5];
	   //定义菜单项
	   private JMenuItem []jmi=new JMenuItem[23];
	   //定义文本域组件
	   private JTextArea jta;
	   //定义滚动窗格组件
	  private JScrollPane jsp;                    

 ②实现组件(按照定义的顺序实现组件)

                //实现组件
		//实现菜单条组件
		jmb=new JMenuBar();
		//实现菜单组件
		jm[0]=new JMenu("文件(F)");
		jm[1]=new JMenu("编辑(E)");
		jm[2]=new JMenu("格式(O)");
		jm[3]=new JMenu("查看(V)");
		jm[4]=new JMenu("帮助(H)");
		//实现文件(F)菜单的菜单项组件
		jmi[0]=new JMenuItem("新建(N)");
		jmi[1]=new JMenuItem("打开(O)");
		jmi[2]=new JMenuItem("保存(S)");
		jmi[3]=new JMenuItem("另存为(A)");
		jmi[4]=new JMenuItem("页面设置(U)");
		jmi[5]=new JMenuItem("打印(P)");
		jmi[6]=new JMenuItem("退出(X)");
		//实现编辑(E)菜单的菜单项组件
		jmi[7]=new JMenuItem("撤销(U)");
		jmi[8]=new JMenuItem("剪切(T)");
		jmi[9]=new JMenuItem("复制(C)");
		jmi[10]=new JMenuItem("粘贴(P)");
		jmi[11]=new JMenuItem("删除(L)");
		jmi[12]=new JMenuItem("查找(F)");
		jmi[13]=new JMenuItem("查找下一个(N)");
		jmi[14]=new JMenuItem("替换(R)");
		jmi[15]=new JMenuItem("转到(G)");
		jmi[16]=new JMenuItem("全选(A)");
		jmi[17]=new JMenuItem("日期/时间(D)");
		//实现格式(O)菜单的菜单项组件
		jmi[18]=new JMenuItem("自动换行(W)");
		jmi[19]=new JMenuItem("字体(F)");
		//实现格式(O)菜单的菜单项组件
		jmi[20]=new JMenuItem("状态栏(S)");
		//实现帮助(H)菜单的菜单项组件
		jmi[21]=new JMenuItem("查看帮助(H)");
		jmi[22]=new JMenuItem("关于记事本(A)");
		//实现文本域组件
		jta=new JTextArea();
		//向滚动窗格添加文本域组件
	       jsp=new JScrollPane(jta);
③添加组件(逐个添加组件)

                //添加组件
		//向文件菜单中添加菜单项
		for(int i=0;i< 7;i++)
		 jm[0].add(jmi[i]);
		//向编辑菜单中添加菜单项
		for(int i=7;i<=17;i++)
		 jm[1].add(jmi[i]);
		//向格式菜单中添加菜单项
		for(int i=18;i<=19;i++)
		 jm[2].add(jmi[i]);
		//向查看菜单中添加菜单项
		jm[3].add(jmi[20]);
		//向帮助菜单中添加菜单项
		for(int i=21;i<=22;i++)
		  jm[4].add(jmi[i]);
		//向菜单栏中添加菜单
		for(int i=0;i< 5;i++)
			 jmb.add(jm[i]);
		//添加滚动窗格组件
		this.add(jsp);
		//设置菜单栏
		this.setJMenuBar(jmb);
三、完整代码如下

package com.lhd;
import java.awt.*;
import javax.swing.*;
/**
 * @author Star—小东
 *  Notepad 记事本GUI开发
 */
public class NotePadWindow extends JFrame{  //创建NotePadWinddow类用来建立记事本GUI
    //定义窗体组件
	//定义菜栏条组件
	private  JMenuBar jmb;
	//定义菜单组件
	private JMenu []jm=new JMenu[5];
	//定义菜单项
	private JMenuItem []jmi=new JMenuItem[23];
	//定义文本域组件
	private JTextArea jta;
	//定义滚动窗格组件
	private JScrollPane jsp;
	public NotePadWindow() { 
		//实现组件
		//实现菜单条组件
		jmb=new JMenuBar();
		//实现菜单组件
		jm[0]=new JMenu("文件(F)");
		jm[1]=new JMenu("编辑(E)");
		jm[2]=new JMenu("格式(O)");
		jm[3]=new JMenu("查看(V)");
		jm[4]=new JMenu("帮助(H)");
		//实现文件(F)菜单的菜单项组件
		jmi[0]=new JMenuItem("新建(N)");
		jmi[1]=new JMenuItem("打开(O)");
		jmi[2]=new JMenuItem("保存(S)");
		jmi[3]=new JMenuItem("另存为(A)");
		jmi[4]=new JMenuItem("页面设置(U)");
		jmi[5]=new JMenuItem("打印(P)");
		jmi[6]=new JMenuItem("退出(X)");
		//实现编辑(E)菜单的菜单项组件
		jmi[7]=new JMenuItem("撤销(U)");
		jmi[8]=new JMenuItem("剪切(T)");
		jmi[9]=new JMenuItem("复制(C)");
		jmi[10]=new JMenuItem("粘贴(P)");
		jmi[11]=new JMenuItem("删除(L)");
		jmi[12]=new JMenuItem("查找(F)");
		jmi[13]=new JMenuItem("查找下一个(N)");
		jmi[14]=new JMenuItem("替换(R)");
		jmi[15]=new JMenuItem("转到(G)");
		jmi[16]=new JMenuItem("全选(A)");
		jmi[17]=new JMenuItem("日期/时间(D)");
		//实现格式(O)菜单的菜单项组件
		jmi[18]=new JMenuItem("自动换行(W)");
		jmi[19]=new JMenuItem("字体(F)");
		//实现格式(O)菜单的菜单项组件
		jmi[20]=new JMenuItem("状态栏(S)");
		//实现帮助(H)菜单的菜单项组件
		jmi[21]=new JMenuItem("查看帮助(H)");
		jmi[22]=new JMenuItem("关于记事本(A)");
		//实现文本域组件
		jta=new JTextArea();
		//向滚动窗格添加文本域组件
	    jsp=new JScrollPane(jta);
		//添加组件
		//向文件菜单中添加菜单项
		for(int i=0;i< 7;i++)
		 jm[0].add(jmi[i]);
		//向编辑菜单中添加菜单项
		for(int i=7;i<=17;i++)
		 jm[1].add(jmi[i]);
		//向格式菜单中添加菜单项
		for(int i=18;i<=19;i++)
		 jm[2].add(jmi[i]);
		//向查看菜单中添加菜单项
		jm[3].add(jmi[20]);
		//向帮助菜单中添加菜单项
		for(int i=21;i<=22;i++)
		  jm[4].add(jmi[i]);
		//向菜单栏中添加菜单
		for(int i=0;i< 5;i++)
			 jmb.add(jm[i]);
		//添加滚动窗格组件
		this.add(jsp);
		//设置菜单栏
		this.setJMenuBar(jmb);
		//设置窗体图标
		this.setIconImage((new ImageIcon("images/NotePadLogo.jpg")).getImage());
		//设置窗体标题
		this.setTitle("NotePad");
    	//设置窗体大小
		this.setSize(700,500);
		//设置窗体起始位置
		this.setLocation(400,150);
		//设置窗体关闭方式
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		//设置窗体可见
		this.setVisible(true);
   }
	public static void main(String[] args) {
		//创建NotePad实例对象
		NotePadWindow notepad =new NotePadWindow();
	}
}
四、总结

遇到的问题:

①在向JFrame容器中添加JMenuBar菜单栏组件时,当初想当然用的是JFame类的add()方法,实际是setJMenuBar()方法。

②滚动条问题

错误写法:

JTextArea jta=new JTextarea();

JScrollPane jsp=new JScrollPane();

jsp.add(jta);

正确写法:

JTextArea jta=new JTextarea();

JScrollPane jsp=new JScrollPane(jta);

③有待完善

五、NotePad 的GUI界面

相关文章推荐

基于JAVA的简单界面设计:记事本

//跟韩老师学的,一点点,一点点 //包含菜单条,工具条,二级菜单,多行文本,助记符等等 //一会发个QQ的界面(纯山寨,呵呵) import java.awt.*; import javax.s...

Java笔记(10)-图形界面设计、Swing、窗口、JFrame、常用组件和布局、处理事件、MVC结构、对话框、GUI

Java Swing, JFrame,JMenubar,JMenu,JMenuItem,Icon,JMenuItem,组件JTextField,JTextArea,JLabel,JPanel,JScr...

记事本界面设计

import java.awt.*; import javax.swing.*; import java.awt.event.*; public class L5_13 extends JFrame{...

GUI用户界面设计工具

  • 2017年02月22日 09:55
  • 15.48MB
  • 下载

Matlab PCA+SVM人脸识别(二)——GUI界面设计

上一篇介绍了人脸识别的主要散发
  • light_lj
  • light_lj
  • 2014年05月23日 22:18
  • 19238

matlab GUI界面设计总结

二:使用控件 新建一个布局(窗口),可以在新窗口中添加如下控件 1.静态文本(Static Text)        2.编辑框(Edit Text)控件 3.列表框(Listbox)控件  ...
  • clear_ad
  • clear_ad
  • 2016年03月03日 19:27
  • 12687

基于matlab的GUI界面设计

  • 2011年04月29日 22:09
  • 1.05MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java记事本GUI界面设计
举报原因:
原因补充:

(最多只允许输入30个字)