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界面

GUI界面编程——记事本初级实现

GUI编程--初级篇 一.元素介绍 1.JFrame类:    1)概念:其实力称为窗口,属于底层容器,可以与操作系统直接交互。    2)常用方法:        a.Jframe()方法创建一...
  • Mr_Huan
  • Mr_Huan
  • 2016年10月29日 03:54
  • 697

Java图形用户界面设计(GUI)

图形用户界面(GUI--Graphical User Interface)抽象窗口工具集(AWT--Abstract Window Tookit)相关软件包:java.awt包:提供基本GUI组件、视...
  • lqs1985
  • lqs1985
  • 2010年04月02日 11:10
  • 2780

java gui编写记事本

1、实现新建、打开、保存、退出、关于操作 2、JFileChooser实现打开、保存 3、新建、退出时判断文本域时否被改变 4、JOptionPane实现确认对话框 关于对话框...
  • God_V
  • God_V
  • 2017年06月04日 22:55
  • 325

使用java的GUI设计一个简单的登陆界面(1)

使用java的GUI设计一个简单的登陆界面(1)     实现效果如下:       源代码: import java.awt.BorderLayout; import java.awt....
  • u014344668
  • u014344668
  • 2015年05月26日 09:13
  • 6034

Matlab GUI界面设计

摘要:本篇博文基于MATLAB2014a进行GUI设计。
  • u011939755
  • u011939755
  • 2017年01月24日 07:44
  • 1880

JAVA GUI 图形界面

①事件源和监听 举例,窗口里有一个按钮Button,按下这个Button,就能在窗口某个地方显示出一个图片。 此例中: 事件源是Button 监听是一段程序,一旦Button的状态被改变比如c...
  • Zhenkui_Liu
  • Zhenkui_Liu
  • 2015年09月22日 13:00
  • 226

Java-编写界面记事本

Test.java package Test; import Utility.*; public class Test { public static void main(String[]...
  • qq_34216631
  • qq_34216631
  • 2016年12月12日 19:28
  • 814

matlab GUI界面设计总结

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

Python-GUI编程之 Tkinter 与 记事本实现心得

在这里介绍一下tkinter和我的记事本,同时分享一些方便自学python的网站 引用一句老外的话让自己显得高大上一些: MythDebunking: TkInter is ugly on Win...
  • happy_fb
  • happy_fb
  • 2017年10月14日 20:32
  • 312

GUI界面设计总结

创建Matlab GUI界面通常有两种方式:    1,使用 .m 文件直接动态添加控件      2.  使用 GUIDE 快速的生成GUI界面 显然第二种可视化编辑方法算更...
  • jly58fgjk
  • jly58fgjk
  • 2016年03月01日 19:10
  • 471
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java记事本GUI界面设计
举报原因:
原因补充:

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