`
rongyandong
  • 浏览: 31061 次
  • 性别: Icon_minigender_1
  • 来自: 内蒙古
社区版块
存档分类
最新评论

原创:记事本GUI制作

    博客分类:
  • Java
阅读更多

1、记事本文本面板

import java.awt.BorderLayout;
import java.awt.Rectangle;
import java.awt.Toolkit;

import javax.swing.JFrame;
import javax.swing.JMenuBar;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;


public class NotepadFrame extends JFrame{
	private static final long serialVersionUID = -6328781535000523502L;
	private JScrollPane jsp;
	private JTextArea jta;
	private JMenuBar jmb;
	
	public NotepadFrame(String title) {
		super(title);
		int x, y;
		int width=800,height=600;
		
		x=(Toolkit.getDefaultToolkit().getScreenSize().width-width)/2;
		y=(Toolkit.getDefaultToolkit().getScreenSize().height-height)/2-50;
		
		this.setLayout(new BorderLayout());
		this.setBounds(new Rectangle(x, y, width, height));
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
		this.addComponent();
		this.addMenuBar();
	}
	/**
	 * 添加组件
	 */
	public void addComponent() {
		jta=new JTextArea();
		jsp=new JScrollPane(jta);
		this.add(jsp,BorderLayout.CENTER);
	}
	/**
	 * 添加菜单
	 */
	public void addMenuBar() {
		this.jmb=new MenuBar();
		this.setJMenuBar(jmb);
	}
}

 2、记事本菜单设计

import java.awt.event.InputEvent;
import java.awt.event.KeyEvent;

import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.KeyStroke;


public class MenuBar extends JMenuBar{

	private static final long serialVersionUID = -1822798226977402168L;
	
	public JMenu[] mainMenu;
	public JMenuItem[][] subMenu;
	public MenuBar() {
		//main menu label
		String[] mainMenuLabel={"文件(F)","编辑(E)","格式(O)","查看(V)","帮助(H)"};
		//二级菜单标签
		String[][] subMenuLabel={{"新建(N)","打开(O)...","保存(S)","另存为(A)...","页面设置(U)","打印(P)","退出(X)"},
				{"撤销(U)","剪切(T)","复制(C)","粘贴(P)","删除(L)","查找(F)...","替换(R)...","全选(A)","日期(D)"},
				{"自动换行(W)","字体(F)","颜色(C)"},
				{"状态栏(S)"},{"帮助主题(H)","关于记事本(A)..."}};
		//主菜单助记符
		char[] mainMenuMnem={'F','E','O','V','H'};
		//二级菜单助记符
		char[][] subMenuMnem={{'N','O','S','A','U','P','X'},
				{'U','T','C','P','L','F','R','A','D'},
				{'W','F','C'},{'S'},{'H','A'}};
		//二级菜单分割线,那个二级菜单下有分隔线,则为true
		boolean[][] subMenuSep={{false,false,false,true,false,true,false},
				{true,false,false,false,true,false,true,false,false},
				{false,false,false},{false},{true,false}};
		//快捷键
		KeyStroke[][] subMenuKey={{KeyStroke.getKeyStroke(KeyEvent.VK_N, InputEvent.CTRL_MASK),
			KeyStroke.getKeyStroke(KeyEvent.VK_O, InputEvent.CTRL_MASK),
			KeyStroke.getKeyStroke(KeyEvent.VK_S, InputEvent.CTRL_MASK),
			null,null,KeyStroke.getKeyStroke(KeyEvent.VK_P, InputEvent.CTRL_MASK),null},
			
				{KeyStroke.getKeyStroke(KeyEvent.VK_Z, InputEvent.CTRL_MASK),
				KeyStroke.getKeyStroke(KeyEvent.VK_X, InputEvent.CTRL_MASK),
				KeyStroke.getKeyStroke(KeyEvent.VK_C, InputEvent.CTRL_MASK),
				KeyStroke.getKeyStroke(KeyEvent.VK_V, InputEvent.CTRL_MASK),
				KeyStroke.getKeyStroke(KeyEvent.VK_DELETE, 0),
				KeyStroke.getKeyStroke(KeyEvent.VK_F, InputEvent.CTRL_MASK),
				KeyStroke.getKeyStroke(KeyEvent.VK_R, InputEvent.CTRL_MASK),
				KeyStroke.getKeyStroke(KeyEvent.VK_A, InputEvent.CTRL_MASK),
				KeyStroke.getKeyStroke(KeyEvent.VK_F5, 0)},
				{null,null,null},
				{null},{null,null}};
		
		
		mainMenu=new JMenu[5];
		subMenu=new JMenuItem[5][];
		
		for(int i=0;i<mainMenu.length;i++) {
			mainMenu[i]=new JMenu(mainMenuLabel[i]);
			mainMenu[i].setMnemonic(mainMenuMnem[i]);
			subMenu[i]=new JMenuItem[subMenuLabel[i].length];
			
			for(int j=0;j<subMenu[i].length;j++) {
				subMenu[i][j]=new JMenuItem(subMenuLabel[i][j]);
				subMenu[i][j].setMnemonic(subMenuMnem[i][j]);
				mainMenu[i].add(subMenu[i][j]);
				if(subMenuSep[i][j]) mainMenu[i].addSeparator();
				if(subMenuKey[i][j]!=null) subMenu[i][j].setAccelerator(subMenuKey[i][j]);
			}
			
			this.add(mainMenu[i]);
		}
	}
	
}

 3、窗体及启动

public class Demo {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		NotepadFrame notepad=new NotepadFrame("Java版 记事本-Mr.Rong");
		notepad.setVisible(true);
	}

}

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics