GUI编程--初级篇
一.元素介绍
1.JFrame类:
1)概念:其实力称为窗口,属于底层容器,可以与操作系统直接交互。
2)常用方法:
a.Jframe()方法创建一个无标题的窗口
b.Jframe(Strings)方法创建一个标题为s的窗口
c.Public voidsetVisible(booleanb)设置窗口是否可见
d.Public void dispose()撤消当前窗口,释放资源
e.Public void
setDefaultCloseOperation
(
int
operation)
设置单击窗口右上角关闭按钮后程序执行的操作
2.Jmenu类:
概念:Jmenu类负责创建菜单。
3.JmenuItem类:
概念:JmenuItem类负责创建嵌入子菜单。
4.JMenuBar类:
概念:JMenuBar是Jframe的一个子类,Jframe有一个把菜单条放置到窗口中的方法SetMenuBar(JMenuBarbar)。
二.记事本代码
1.创建DialongDemo类并且继承JFrame。
import java.awt.event.InputEvent;
import javax.swing.*;
import com.sun.glass.events.KeyEvent;
public class DialongDemo extends JFrame {
//定义
JMenuBar menuBar;
JMenu menu1,menu2,menu3,menu4,menu5;
JMenuItem menu11,menu12,menu13,menu14,menu15,menu16,menu17;
JMenuItem menu21,menu22,menu23,menu24,menu25,menu26,menu27,menu28,menu29,menu210,menu211;
JMenuItem menu31,menu32;
JMenuItem menu41;
JMenuItem menu51,menu52;
public DialongDemo(){
//空的构造方法
}
//带参的构造方法
public DialongDemo(String s,int x,int y,int w,int h){
init(s);
setBounds(x,y,w,h);
setVisible(true);
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
}
//init方法的实现
public void init(String s){
setTitle(s);
menuBar = new JMenuBar();
menu1 = new JMenu("文件");
menu2 = new JMenu("编辑");
menu3 = new JMenu("格式");
menu4 = new JMenu("查看");
menu5 = new JMenu("帮助");
//将menuBar组件加入到窗口
setJMenuBar(menuBar);
//将menu1等组件加入到menuBar中
menuBar.add(menu1);
menuBar.add(menu2);
menuBar.add(menu3);
menuBar.add(menu4);
menuBar.add(menu5);
//文件项
menu11 = new JMenuItem("新建");
menu12 = new JMenuItem("打开");
menu13 = new JMenuItem("保存");
menu14 = new JMenuItem("另存为");
menu15 = new JMenuItem("页面设置");
menu16 = new JMenuItem("打印");
menu17 = new JMenuItem("退出");
menu1.add(menu11);
menu1.add(menu12);
menu1.add(menu13);
menu1.add(menu14);
menu1.addSeparator();
menu1.add(menu15);
menu1.add(menu16);
menu1.addSeparator();
menu1.add(menu17);
//编辑项
menu21 = new JMenuItem("撤销");
menu22 = new JMenuItem("剪贴");
menu23 = new JMenuItem("复制");
menu24 = new JMenuItem("粘贴");
menu25 = new JMenuItem("删除");
menu26 = new JMenuItem("查找");
menu27 = new JMenuItem("查找下一个");
menu28 = new JMenuItem("替换");
menu29 = new JMenuItem("转到");
menu210 = new JMenuItem("全选");
menu211= new JMenuItem("时间/日期");
menu2.add(menu21);
menu2.addSeparator();
menu2.add(menu22);
menu2.add(menu23);
menu2.add(menu24);
menu2.add(menu25);
menu2.addSeparator();
menu2.add(menu26);
menu2.add(menu27);
menu2.add(menu28);
menu2.add(menu29);
menu2.addSeparator();
menu2.add(menu210);
menu2.add(menu211);
//格式
menu31 = new JMenuItem("自动换行");
menu32 = new JMenuItem("字体");
menu3.add(menu31);
menu3.add(menu32);
//状态栏
menu41=new JMenuItem("状态栏");
menu4.add(menu41);
//帮助
menu51 = new JMenuItem("查看帮助");
menu52 = new JMenuItem("关于记事本");
menu5.add(menu51);
menu5.addSeparator();
menu5.add(menu52);
//设置快捷键ctrl+*
menu11.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,InputEvent.CTRL_MASK));
menu12.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,InputEvent.CTRL_MASK));
menu13.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,InputEvent.CTRL_MASK));
menu16.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_P,InputEvent.CTRL_MASK));
menu21.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Z,InputEvent.CTRL_MASK));
menu22.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,InputEvent.CTRL_MASK));
menu23.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,InputEvent.CTRL_MASK));
menu24.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V,InputEvent.CTRL_MASK));
menu25.setAccelerator(KeyStroke.getKeyStroke("Del"));
menu26.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F,InputEvent.CTRL_MASK));
menu27.setAccelerator(KeyStroke.getKeyStroke("F3"));
menu28.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_H,InputEvent.CTRL_MASK));
menu29.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_G,InputEvent.CTRL_MASK));
menu210.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V,InputEvent.CTRL_MASK));
menu211.setAccelerator(KeyStroke.getKeyStroke("F5"));
//文本对象
JTextArea area = new JTextArea(1065,570);
add(area);
}
}
2.创建主方法Main来实现
public class Main {
public static void main(String[] args) {
//调用带参构造函数
DialongDemo dialongDemo=new DialongDemo("新建 文本文档",100,100,1085,635);
}
}
三.结果展示: