JBorderLayout,左边是JList,拆分窗格;
图片是放在JLabel上的,图片的地址写好就行;
在相关项目下面建立一个文件夹Folder,放置图片;或者复制粘贴;
拆分:水平拆分?垂直拆分?
拆分之后把jList和jl1这两个组件放进去;
可以伸缩:
在窗口左上角出现自己的图标?
Border布局;
多行文本框带滚动条,聊天窗口可滚动:
加入QQ左上角图标:
转成图片,getImage;
Border布局很有用,
CENTER会被自动挤满;
QQ号码、手机号码、电子邮箱会切换;
Border布局;中间JPanel,设置成Grid网格布局;
因为是选项卡, 翻页会出现3个Panel;
字体设置:
超链接:
鼠标变为手:
JAVA最重要的是后台开发。
树干-树枝-树叶;
在cmd后台跑代码:
JMenuItem:
JMenu:
把JMenu添加到JMenuBar;把JMenuItem添加到menu1里面:
设置键盘快捷键:
一层一层加:
-------------------------------------------------------------------------
Swing组件--总结
总结:
1、本单讲解了Swing的常用组件(JFrame(框架)、Jpanel(面板)、JButton(按钮)、JLable(标签)、JTextField(文本框)、JPasswordField(密码框)、JCheckBox(复选框)、JRadioButton(单选框)、JComboBox(下拉框)、JScrollPane(滚动窗格)、JList(列表框)),当然Swing组件还有很多,在后面使用时讲解。
2、三大布局管理器(BorderLayout(边界布局)、FlowLayout(流布局)、GridLayout(网格布局)),要灵活使用,从而满足设计需求。
gui编程实践--金山词霸2007
涉及到新的Swing组件:
1、拆分窗格(JSplitPane)属于容器类组件[Window009.java]
/**
* 拆分窗格(JSplitPane)的使用
*/
import java.awt.*;
import javax.swing.*;
public class Window009 extends JFrame{
//定义组件
JSplitPane jsp;
JList jl;
JLabel jlb;
public static void main(String[] args) {
Window009 win=new Window009();
}
//构造函数
public Window009(){
//建立组件
String[] words={"boy","girl","bird","close"};
jl=new JList(words);
jlb=new JLabel(new ImageIcon("images/cb.jpg"));//访问时路径\\或/
//拆分窗格
jsp=new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,jl,jlb);
//可以收缩变化
jsp.setOneTouchExpandable(true);
//设定布局管理器(JFrame本身就是BorderLayout布局)
//加入组件
this.add(jsp);
//设置窗体
this.setTitle("金山词霸2007");
this.setSize(400, 300);
this.setLocationRelativeTo(null);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
}
xxxxxxxxxx
38
1
/**
2
* 拆分窗格(JSplitPane)的使用
3
*/
4
import java.awt.*;
5
import javax.swing.*;
6
public class Window009 extends JFrame{
7
//定义组件
8
JSplitPane jsp;
9
JList jl;
10
JLabel jlb;
11
public static void main(String[] args) {
12
Window009 win=new Window009();
13
}
14
//构造函数
15
public Window009(){
16
//建立组件
17
String[] words={"boy","girl","bird","close"};
18
jl=new JList(words);
19
20
jlb=new JLabel(new ImageIcon("images/cb.jpg"));//访问时路径\\或/
21
//拆分窗格
22
jsp=new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,jl,jlb);
23
//可以收缩变化
24
jsp.setOneTouchExpandable(true);
25
26
//设定布局管理器(JFrame本身就是BorderLayout布局)
27
28
//加入组件
29
this.add(jsp);
30
31
//设置窗体
32
this.setTitle("金山词霸2007");
33
this.setSize(400, 300);
34
this.setLocationRelativeTo(null);
35
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
36
this.setVisible(true);
37
}
38
}
------------------------------------------------------------------------------
gui编程实战--qq聊天界面
涉及到新的Swing组件
1、多行文本框(JTextArea)组件[Window010.java]
/**
* 多行文本框(JTextArea)组件使用
*/
import java.awt.*;
import javax.swing.*;
public class Window010 extends JFrame{
//定义组件
JTextArea jta=null;
JScrollPane jsp=null;
JPanel jp1=null;
JComboBox jcb=null;
JTextField jtf=null;
JButton jb=null;
public static void main(String[] args) {
Window010 win=new Window010();
}
//构造函数
public Window010(){
//构建组件
jta=new JTextArea();
jsp=new JScrollPane(jta);
jp1=new JPanel();
String[] chatter={"布什","拉登"};
jcb=new JComboBox(chatter);
jtf=new JTextField(10);
jb=new JButton("发送");
//设定布局管理器
//加入组件
jp1.add(jcb);
jp1.add(jtf);
jp1.add(jb);
this.add(jsp);
this.add(jp1,BorderLayout.SOUTH);
//设定窗体
this.setTitle("QQ聊天窗口");
this.setIconImage((new ImageIcon("images\\qe.jpg")).getImage());//设置标题栏内图标
this.setSize(300, 200);
this.setLocationRelativeTo(null);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
this.setResizable(false);
}
}
xxxxxxxxxx
46
1
/**
2
* 多行文本框(JTextArea)组件使用
3
*/
4
import java.awt.*;
5
import javax.swing.*;
6
public class Window010 extends JFrame{
7
//定义组件
8
JTextArea jta=null;
9
JScrollPane jsp=null;
10
JPanel jp1=null;
11
JComboBox jcb=null;
12
JTextField jtf=null;
13
JButton jb=null;
14
public static void main(String[] args) {
15
Window010 win=new Window010();
16
}
17
//构造函数
18
public Window010(){
19
//构建组件
20
jta=new JTextArea();
21
jsp=new JScrollPane(jta);
22
jp1=new JPanel();
23
String[] chatter={"布什","拉登"};
24
jcb=new JComboBox(chatter);
25
jtf=new JTextField(10);
26
jb=new JButton("发送");
27
//设定布局管理器
28
29
//加入组件
30
jp1.add(jcb);
31
jp1.add(jtf);
32
jp1.add(jb);
33
34
this.add(jsp);
35
this.add(jp1,BorderLayout.SOUTH);
36
37
//设定窗体
38
this.setTitle("QQ聊天窗口");
39
this.setIconImage((new ImageIcon("images\\qe.jpg")).getImage());//设置标题栏内图标
40
this.setSize(300, 200);
41
this.setLocationRelativeTo(null);
42
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
43
this.setVisible(true);
44
this.setResizable(false);
45
}
46
}
------------------------------------------------------------------------------
gui编程实战--QQ登录界面
涉及到新的Swing组件:
1、页签组件(JTabbedPane)选项卡窗格[Window011.java]
/**
* 页签组件(JTabbedPane)选项卡窗格--使用QQ登录界面
*/
import java.awt.*;
import javax.swing.*;
public class Window011 extends JFrame{
//设定组件
//主页面北部
JLabel jl1;//标签
//主页面南部
JButton jb1,jb2,jb3;//按钮
JPanel jp1;//面板
//主页面中部
JTabbedPane jtp;//选项卡窗格
JPanel jp2,jp3,jp4;//面板
JLabel jl2,jl3,jl4,jl5;//标签
JTextField jtf;//文本框
JPasswordField jpf;//密码框
JButton jb4;//按钮
JCheckBox jcb1,jcb2;//复选框
//JPanel2组件
JLabel jl6,jl7;//标签
JTextField jtf1;
JPasswordField jpf1;
//JPanel3组件
JLabel jl8,jl9;//标签
JTextField jtf2;
JPasswordField jpf2;
public static void main(String[] args) {
Window011 win=new Window011();
}
//构造函数
public Window011(){
//创建组件
//创建JFrame北部JLabel1组件
jl1=new JLabel(new ImageIcon("images/qqdl.jpg"));
//创建JFrame中部JPanel2组件
jl2=new JLabel("QQ号码",JLabel.CENTER);
jl3=new JLabel("QQ密码",JLabel.CENTER);
jl4=new JLabel("忘记密码",JLabel.CENTER);
jl4.setFont(new Font("宋体",Font.PLAIN,16));//设置字体,字号
jl4.setForeground(Color.BLUE);//设置字体颜色
jl5=new JLabel("<html><a href=‘www.qq.com‘>申请密码保护</a></html>");
jl5.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));//鼠标移动到jl5后会变成手指图标
jtf=new JTextField();
jpf=new JPasswordField();
jb4=new JButton("清除号码");//JButton上可以放图片。
new JButton(new ImageIcon("图片路径"));
jcb1=new JCheckBox("隐身登录");
jcb2=new JCheckBox("记住密码");
jtp=new JTabbedPane();//选项卡窗格
jp2=new JPanel();
jp3=new JPanel();
//jp3.setBackground(Color.RED);//给面板设置背景色
jp4=new JPanel();
//jp4.setBackground(new Color(0,0,255));
//创建JFrame中部JTabbedPane选项卡JPanel3组件
jl6=new JLabel("手机号码",JLabel.CENTER);
jl7=new JLabel("密 码",JLabel.CENTER);
jtf1=new JTextField(20);
jpf1=new JPasswordField(20);
//创建JFrame中部JTabbedPane选项卡JPanel4组件
jl8=new JLabel("电子邮箱",JLabel.CENTER);
jl9=new JLabel("密 码",JLabel.CENTER);
jtf2=new JTextField(20);
jpf2=new JPasswordField(20);
//创建JFrame南部JPanel1组件
jp1=new JPanel();
jb1=new JButton("登 录");
jb2=new JButton("取 消");
jb3=new JButton("注册向导");
//设置布局管理器
jp2.setLayout(new GridLayout(3, 3));
//jp3.setLayout(new GridLayout(2, 2));
//jp4.setLayout(new GridLayout(2, 2));
//加入组件
//将组件添加到JPanel2中
jp2.add(jl2);//加入QQ号码标签
jp2.add(jtf);//加入文本框
jp2.add(jb4);//加入清除号码按扭
jp2.add(jl3);//加入QQ密码标签
jp2.add(jpf);//加入密码框
jp2.add(jl4);//加入忘记密码
jp2.add(jcb1);//加入隐身登陆复选框
jp2.add(jcb2);//加入记住密码复选框
jp2.add(jl5);//加入申请密码保护标签
//将组件添加到JPanel3中
jp3.add(jl6);
jp3.add(jtf1);
jp3.add(jl7);
jp3.add(jpf1);
//将组件添加到JPanel4中
jp4.add(jl8);
jp4.add(jtf2);
jp4.add(jl9);
jp4.add(jpf2);
//添加到JPanel1中
jp1.add(jb1);
jp1.add(jb2);
jp1.add(jb3);
//将面板添加到选项卡窗格上
jtp.add("QQ号码",jp2);//第一个参数代表选项卡名称,第二个参数代表对应的面板
jtp.add("手机号码",jp3);
jtp.add("电子邮箱",jp4);
//将JLabel1添加到Frame北部
this.add(jl1,BorderLayout.NORTH);
//将JPanle2添加到Frame中部
this.add(jtp,BorderLayout.CENTER);
//将JPanel1添加到Frame南部
this.add(jp1,BorderLayout.SOUTH);
//窗体设置
this.setTitle("QQ登录界面");
//ImageIcon icon=new ImageIcon("图片路径");
//this.setIconImage(icon.getImage());
this.setIconImage((new ImageIcon("images/qe.jpg")).getImage());
this.setSize(350, 300);
this.setLocationRelativeTo(null);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
this.setResizable(false);
}
}
x
1
/**
2
* 页签组件(JTabbedPane)选项卡窗格--使用QQ登录界面
3
*/
4
import java.awt.*;
5
import javax.swing.*;
6
public class Window011 extends JFrame{
7
//设定组件
8
//主页面北部
9
JLabel jl1;//标签
10
11
//主页面南部
12
JButton jb1,jb2,jb3;//按钮
13
JPanel jp1;//面板
14
15
//主页面中部
16
JTabbedPane jtp;//选项卡窗格
17
JPanel jp2,jp3,jp4;//面板
18
19
JLabel jl2,jl3,jl4,jl5;//标签
20
JTextField jtf;//文本框
21
JPasswordField jpf;//密码框
22
JButton jb4;//按钮
23
JCheckBox jcb1,jcb2;//复选框
24
25
//JPanel2组件
26
JLabel jl6,jl7;//标签
27
JTextField jtf1;
28
JPasswordField jpf1;
29
30
//JPanel3组件
31
JLabel jl8,jl9;//标签
32
JTextField jtf2;
33
JPasswordField jpf2;
34
35
public static void main(String[] args) {
36
Window011 win=new Window011();
37
}
38
//构造函数
39
public Window011(){
40
//创建组件
41
//创建JFrame北部JLabel1组件
42
jl1=new JLabel(new ImageIcon("images/qqdl.jpg"));
43
44
//创建JFrame中部JPanel2组件
45
jl2=new JLabel("QQ号码",JLabel.CENTER);
46
jl3=new JLabel("QQ密码",JLabel.CENTER);
47
jl4=new JLabel("忘记密码",JLabel.CENTER);
48
jl4.setFont(new Font("宋体",Font.PLAIN,16));//设置字体,字号
49
jl4.setForeground(Color.BLUE);//设置字体颜色
50
jl5=new JLabel("<html><a href=‘www.qq.com‘>申请密码保护</a></html>");
51
jl5.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));//鼠标移动到jl5后会变成手指图标
52
53
jtf=new JTextField();
54
jpf=new JPasswordField();
55
jb4=new JButton("清除号码");//JButton上可以放图片。
56
new JButton(new ImageIcon("图片路径"));
57
58
jcb1=new JCheckBox("隐身登录");
59
jcb2=new JCheckBox("记住密码");
60
61
jtp=new JTabbedPane();//选项卡窗格
62
jp2=new JPanel();
63
jp3=new JPanel();
64
//jp3.setBackground(Color.RED);//给面板设置背景色
65
jp4=new JPanel();
66
//jp4.setBackground(new Color(0,0,255));
67
68
//创建JFrame中部JTabbedPane选项卡JPanel3组件
69
jl6=new JLabel("手机号码",JLabel.CENTER);
70
jl7=new JLabel("密 码",JLabel.CENTER);
71
jtf1=new JTextField(20);
72
jpf1=new JPasswordField(20);
73
74
//创建JFrame中部JTabbedPane选项卡JPanel4组件
75
jl8=new JLabel("电子邮箱",JLabel.CENTER);
76
jl9=new JLabel("密 码",JLabel.CENTER);
77
jtf2=new JTextField(20);
78
jpf2=new JPasswordField(20);
79
80
//创建JFrame南部JPanel1组件
81
jp1=new JPanel();
82
jb1=new JButton("登 录");
83
jb2=new JButton("取 消");
84
jb3=new JButton("注册向导");
85
86
//设置布局管理器
87
jp2.setLayout(new GridLayout(3, 3));
88
//jp3.setLayout(new GridLayout(2, 2));
89
//jp4.setLayout(new GridLayout(2, 2));
90
91
92
//加入组件
93
//将组件添加到JPanel2中
94
jp2.add(jl2);//加入QQ号码标签
95
jp2.add(jtf);//加入文本框
96
jp2.add(jb4);//加入清除号码按扭
97
98
jp2.add(jl3);//加入QQ密码标签
99
jp2.add(jpf);//加入密码框
100
jp2.add(jl4);//加入忘记密码
101
102
jp2.add(jcb1);//加入隐身登陆复选框
103
jp2.add(jcb2);//加入记住密码复选框
104
jp2.add(jl5);//加入申请密码保护标签
105
106
//将组件添加到JPanel3中
107
jp3.add(jl6);
108
jp3.add(jtf1);
109
jp3.add(jl7);
110
jp3.add(jpf1);
111
112
//将组件添加到JPanel4中
113
jp4.add(jl8);
114
jp4.add(jtf2);
115
jp4.add(jl9);
116
jp4.add(jpf2);
117
118
//添加到JPanel1中
119
jp1.add(jb1);
120
jp1.add(jb2);
121
jp1.add(jb3);
122
123
//将面板添加到选项卡窗格上
124
jtp.add("QQ号码",jp2);//第一个参数代表选项卡名称,第二个参数代表对应的面板
125
jtp.add("手机号码",jp3);
126
jtp.add("电子邮箱",jp4);
127
128
//将JLabel1添加到Frame北部
129
this.add(jl1,BorderLayout.NORTH);
130
131
//将JPanle2添加到Frame中部
132
this.add(jtp,BorderLayout.CENTER);
133
134
//将JPanel1添加到Frame南部
135
this.add(jp1,BorderLayout.SOUTH);
136
137
//窗体设置
138
this.setTitle("QQ登录界面");
139
//ImageIcon icon=new ImageIcon("图片路径");
140
//this.setIconImage(icon.getImage());
141
this.setIconImage((new ImageIcon("images/qe.jpg")).getImage());
142
this.setSize(350, 300);
143
this.setLocationRelativeTo(null);
144
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
145
this.setVisible(true);
146
this.setResizable(false);
147
}
148
}
------------------------------------------------------------------------------
gui编程实战--记事本界面[Window012.java]
涉及到新的Swing组件
/**
* 1、菜单组件
JMenuBar 菜单条组件 树干
JMenu 菜单组件 树枝
JMenuItem 菜单项组件 树叶
2、二级菜单制作
JMenu里面可以嵌套JMenu
3、工具条组件
JToolBar 容器类组件
*/
import java.awt.*;
import java.awt.event.InputEvent;
import java.awt.event.InputMethodEvent;
import java.awt.event.KeyEvent;
import javax.swing.*;
public class Window012 extends JFrame{
//文件组定义组件
JMenuBar jmb;//菜单条组件
JMenu menu1,menu2,menu3,menu4,menu5;//主菜单:文件、编辑、格式、查看、帮助
JMenuItem item2,item3,item4,item5,item6,item7;//子菜单:新建、打开、保存、另存为、页面设置、打印、退出
JMenu xinjian;//二级菜单
JMenuItem file,project;
//编辑组定义组件
//编辑:撤消、剪切、复制、粘贴、删除、查找、查找下一个、替换、转到、全选、时间/日期
JMenuItem eitem1,eitem2,eitem3,eitem4,eitem5,eitem6,eitem7,eitem8,eitem9,eitem10,eitem11;
//格式组定义组件
JMenuItem oitem1,oitem2;//格式:自动换行、字体
//查看组定义组件
JMenuItem vitem1;//查看:状态栏
//帮助组定义组件
JMenuItem hitem1,hitem2;//帮助:查看帮助、关于记事本
JTextArea jta;
//工具条
JToolBar jtb;
JButton jb1,jb2,jb3,jb4,jb5,jb6,jb7,jb8;
public static void main(String[] args) {
Window012 win=new Window012();
}
//构造函数
public Window012(){
//构建组件
//工具条
jtb=new JToolBar();
jb1=new JButton(new ImageIcon("images/new.jpg"));
jb1.setToolTipText("新建");//设置提示信息
jb2=new JButton(new ImageIcon("images/open.jpg"));
jb2.setToolTipText("打开");
jb3=new JButton(new ImageIcon("images/save.jpg"));
jb3.setToolTipText("保存");
jb4=new JButton(new ImageIcon("images/copy.jpg"));
jb4.setToolTipText("复制");
jb5=new JButton(new ImageIcon("images/delete.jpg"));
jb5.setToolTipText("删除");
jb6=new JButton(new ImageIcon("images/modify.jpg"));
jb6.setToolTipText("编辑");
jb7=new JButton(new ImageIcon("images/print.jpg"));
jb7.setToolTipText("打印");
jb8=new JButton(new ImageIcon("images/close.jpg"));
jb8.setToolTipText("关闭");
jmb=new JMenuBar();
//主菜单
menu1=new JMenu("文件(F)");
menu1.setMnemonic(‘F‘);//设置助记符
menu2=new JMenu("编辑(E)");
menu2.setMnemonic(‘E‘);
menu3=new JMenu("格式(O)");
menu3.setMnemonic(‘O‘);
menu4=new JMenu("查看(V)");
menu4.setMnemonic(‘V‘);
menu5=new JMenu("帮助(H)");
menu5.setMnemonic(‘H‘);
//文件--新建--子目录
xinjian=new JMenu("新建");
file=new JMenuItem("文件");
project=new JMenuItem("工程");
item2=new JMenuItem("打开(O)");
item2.setMnemonic(‘O‘);
item2.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,InputEvent.CTRL_MASK));//设置ctrl快捷组合键
item3=new JMenuItem("保存(S)");
item3.setMnemonic(‘S‘);
item3.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,InputEvent.CTRL_MASK));
item4=new JMenuItem("另存为(A)");
item4.setMnemonic(‘A‘);
item5=new JMenuItem("页面设置(U)");
item5.setMnemonic(‘U‘);
item6=new JMenuItem("打印(P)");
item6.setMnemonic(‘P‘);
item6.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_P,InputEvent.CTRL_MASK));
item7=new JMenuItem("退出(X)");
item7.setMnemonic(‘X‘);
eitem1=new JMenuItem("撤消(U)");
eitem1.setMnemonic(‘U‘);
eitem1.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_U,InputEvent.CTRL_MASK));
eitem2=new JMenuItem("剪切(T)");
eitem2.setMnemonic(‘T‘);
eitem2.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_T,InputEvent.CTRL_MASK));
eitem3=new JMenuItem("复制(C)");
eitem3.setMnemonic(‘C‘);
eitem3.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,InputEvent.CTRL_MASK));
eitem4=new JMenuItem("粘贴(P)");
eitem4.setMnemonic(‘P‘);
eitem4.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_P,InputEvent.CTRL_MASK));
eitem5=new JMenuItem("删除(L)");
eitem5.setMnemonic(‘L‘);
eitem5.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_DELETE,0));
eitem6=new JMenuItem("查找(F)");
eitem6.setMnemonic(‘F‘);
eitem6.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F,InputEvent.CTRL_MASK));
eitem7=new JMenuItem("查找下一个(N)");
eitem7.setMnemonic(‘N‘);
eitem7.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F3,0));
eitem8=new JMenuItem("替换(R)");
eitem8.setMnemonic(‘R‘);
eitem8.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_R,InputEvent.CTRL_MASK));
eitem9=new JMenuItem("转到(G)");
eitem9.setMnemonic(‘G‘);
eitem9.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_G,InputEvent.CTRL_MASK));
eitem10=new JMenuItem("全选(A)");
eitem10.setMnemonic(‘A‘);
eitem10.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A,InputEvent.CTRL_MASK));
eitem11=new JMenuItem("时间/日期(D)");
eitem11.setMnemonic(‘D‘);
eitem11.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F5,0));
oitem1=new JMenuItem("自动换行(W)");
oitem1.setMnemonic(‘W‘);
oitem2=new JMenuItem("字体(F)");
oitem2.setMnemonic(‘F‘);
vitem1=new JMenuItem("状态栏(S)");
vitem1.setMnemonic(‘S‘);
hitem1=new JMenuItem("查看帮助(H)");
hitem1.setMnemonic(‘H‘);
hitem2=new JMenuItem("关于记事本(A)");
hitem2.setMnemonic(‘A‘);
jta=new JTextArea();
//设定布局管理器
//加入组件
//将按钮添加到工具条上
jtb.add(jb1);
jtb.add(jb2);
jtb.add(jb3);
jtb.add(jb4);
jtb.add(jb5);
jtb.add(jb6);
jtb.add(jb7);
jtb.add(jb8);
//将菜单项添加到菜单上
xinjian.add(file);
xinjian.add(project);
menu1.add(xinjian);
menu1.add(item2);
menu1.add(item3);
menu1.add(item4);
menu1.addSeparator();//添加分割线
menu1.add(item5);
menu1.add(item6);
menu1.addSeparator();
menu1.add(item7);
menu2.add(eitem1);
menu2.addSeparator();
menu2.add(eitem2);
menu2.add(eitem3);
menu2.add(eitem4);
menu2.add(eitem5);
menu2.addSeparator();
menu2.add(eitem6);
menu2.add(eitem7);
menu2.add(eitem8);
menu2.add(eitem9);
menu2.addSeparator();
menu2.add(eitem10);
menu2.add(eitem11);
menu3.add(oitem1);
menu3.add(oitem2);
menu4.add(vitem1);
menu5.add(hitem1);
menu5.addSeparator();
menu5.add(hitem2);
//将菜单添加到菜单条上
jmb.add(menu1);
jmb.add(menu2);
jmb.add(menu3);
jmb.add(menu4);
jmb.add(menu5);
//将菜单条添加到窗体上
this.setJMenuBar(jmb);
//将工具条添加到窗体上
this.add(jtb,BorderLayout.NORTH);
JScrollPane jsp=new JScrollPane(jta);
jsp.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
this.add(jsp);
//窗体设置
this.setTitle("Java记事本");
this.setSize(500, 400);
this.setLocationRelativeTo(null);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
1
import java.awt.*;
2
import java.awt.event.InputEvent;
3
import java.awt.event.InputMethodEvent;
4
import java.awt.event.KeyEvent;
5
import javax.swing.*;
6
public class Window012 extends JFrame{
7
//文件组定义组件
8
JMenuBar jmb;//菜单条组件
9
JMenu menu1,menu2,menu3,menu4,menu5;//主菜单:文件、编辑、格式、查看、帮助
10
JMenuItem item2,item3,item4,item5,item6,item7;//子菜单:新建、打开、保存、另存为、页面设置、打印、退出
11
JMenu xinjian;//二级菜单
12
JMenuItem file,project;
13
14
//编辑组定义组件
15
//编辑:撤消、剪切、复制、粘贴、删除、查找、查找下一个、替换、转到、全选、时间/日期
16
JMenuItem eitem1,eitem2,eitem3,eitem4,eitem5,eitem6,eitem7,eitem8,eitem9,eitem10,eitem11;
17
18
//格式组定义组件
19
JMenuItem oitem1,oitem2;//格式:自动换行、字体
20
21
//查看组定义组件
22
JMenuItem vitem1;//查看:状态栏
23
24
//帮助组定义组件
25
JMenuItem hitem1,hitem2;//帮助:查看帮助、关于记事本
26
27
JTextArea jta;
28
//工具条
29
JToolBar jtb;
30
JButton jb1,jb2,jb3,jb4,jb5,jb6,jb7,jb8;
31
32
public static void main(String[] args) {
33
Window012 win=new Window012();
34
}
35
//构造函数
36
public Window012(){
37
//构建组件
38
//工具条
39
jtb=new JToolBar();
40
jb1=new JButton(new ImageIcon("images/new.jpg"));
41
jb1.setToolTipText("新建");//设置提示信息
42
jb2=new JButton(new ImageIcon("images/open.jpg"));
43
jb2.setToolTipText("打开");
44
jb3=new JButton(new ImageIcon("images/save.jpg"));
45
jb3.setToolTipText("保存");
46
jb4=new JButton(new ImageIcon("images/copy.jpg"));
47
jb4.setToolTipText("复制");
48
jb5=new JButton(new ImageIcon("images/delete.jpg"));
49
jb5.setToolTipText("删除");
50
jb6=new JButton(new ImageIcon("images/modify.jpg"));
51
jb6.setToolTipText("编辑");
52
jb7=new JButton(new ImageIcon("images/print.jpg"));
53
jb7.setToolTipText("打印");
54
jb8=new JButton(new ImageIcon("images/close.jpg"));
55
jb8.setToolTipText("关闭");
56
57
jmb=new JMenuBar();
58
//主菜单
59
menu1=new JMenu("文件(F)");
60
menu1.setMnemonic(‘F‘);//设置助记符
61
menu2=new JMenu("编辑(E)");
62
menu2.setMnemonic(‘E‘);
63
menu3=new JMenu("格式(O)");
64
menu3.setMnemonic(‘O‘);
65
menu4=new JMenu("查看(V)");
66
menu4.setMnemonic(‘V‘);
67
menu5=new JMenu("帮助(H)");
68
menu5.setMnemonic(‘H‘);
69
70
//文件--新建--子目录
71
xinjian=new JMenu("新建");
72
file=new JMenuItem("文件");
73
project=new JMenuItem("工程");
74
75
item2=new JMenuItem("打开(O)");
76
item2.setMnemonic(‘O‘);
77
item2.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,InputEvent.CTRL_MASK));//设置ctrl快捷组合键
78
item3=new JMenuItem("保存(S)");
79
item3.setMnemonic(‘S‘);
80
item3.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,InputEvent.CTRL_MASK));
81
item4=new JMenuItem("另存为(A)");
82
item4.setMnemonic(‘A‘);
83
item5=new JMenuItem("页面设置(U)");
84
item5.setMnemonic(‘U‘);
85
item6=new JMenuItem("打印(P)");
86
item6.setMnemonic(‘P‘);
87
item6.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_P,InputEvent.CTRL_MASK));
88
item7=new JMenuItem("退出(X)");
89
item7.setMnemonic(‘X‘);
90
91
eitem1=new JMenuItem("撤消(U)");
92
eitem1.setMnemonic(‘U‘);
93
eitem1.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_U,InputEvent.CTRL_MASK));
94
eitem2=new JMenuItem("剪切(T)");
95
eitem2.setMnemonic(‘T‘);
96
eitem2.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_T,InputEvent.CTRL_MASK));
97
eitem3=new JMenuItem("复制(C)");
98
eitem3.setMnemonic(‘C‘);
99
eitem3.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,InputEvent.CTRL_MASK));
100
eitem4=new JMenuItem("粘贴(P)");
101
eitem4.setMnemonic(‘P‘);
102
eitem4.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_P,InputEvent.CTRL_MASK));
103
eitem5=new JMenuItem("删除(L)");
104
eitem5.setMnemonic(‘L‘);
105
eitem5.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_DELETE,0));
106
eitem6=new JMenuItem("查找(F)");
107
eitem6.setMnemonic(‘F‘);
108
eitem6.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F,InputEvent.CTRL_MASK));
109
eitem7=new JMenuItem("查找下一个(N)");
110
eitem7.setMnemonic(‘N‘);
111
eitem7.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F3,0));
112
eitem8=new JMenuItem("替换(R)");
113
eitem8.setMnemonic(‘R‘);
114
eitem8.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_R,InputEvent.CTRL_MASK));
115
eitem9=new JMenuItem("转到(G)");
116
eitem9.setMnemonic(‘G‘);
117
eitem9.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_G,InputEvent.CTRL_MASK));
118
eitem10=new JMenuItem("全选(A)");
119
eitem10.setMnemonic(‘A‘);
120
eitem10.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A,InputEvent.CTRL_MASK));
121
eitem11=new JMenuItem("时间/日期(D)");
122
eitem11.setMnemonic(‘D‘);
123
eitem11.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F5,0));
124
125
oitem1=new JMenuItem("自动换行(W)");
126
oitem1.setMnemonic(‘W‘);
127
oitem2=new JMenuItem("字体(F)");
128
oitem2.setMnemonic(‘F‘);
129
130
vitem1=new JMenuItem("状态栏(S)");
131
vitem1.setMnemonic(‘S‘);
132
133
hitem1=new JMenuItem("查看帮助(H)");
134
hitem1.setMnemonic(‘H‘);
135
hitem2=new JMenuItem("关于记事本(A)");
136
hitem2.setMnemonic(‘A‘);
137
138
jta=new JTextArea();
139
140
//设定布局管理器
141
142
//加入组件
143
//将按钮添加到工具条上
144
jtb.add(jb1);
145
jtb.add(jb2);
146
jtb.add(jb3);
147
jtb.add(jb4);
148
jtb.add(jb5);
149
jtb.add(jb6);
150
jtb.add(jb7);
151
jtb.add(jb8);
152
153
//将菜单项添加到菜单上
154
xinjian.add(file);
155
xinjian.add(project);
156
157
menu1.add(xinjian);
158
menu1.add(item2);
159
menu1.add(item3);
160
menu1.add(item4);
161
menu1.addSeparator();//添加分割线
162
menu1.add(item5);
163
menu1.add(item6);
164
menu1.addSeparator();
165
menu1.add(item7);
166
167
menu2.add(eitem1);
168
menu2.addSeparator();
169
menu2.add(eitem2);
170
menu2.add(eitem3);
171
menu2.add(eitem4);
172
menu2.add(eitem5);
173
menu2.addSeparator();
174
menu2.add(eitem6);
175
menu2.add(eitem7);
176
menu2.add(eitem8);
177
menu2.add(eitem9);
178
menu2.addSeparator();
179
menu2.add(eitem10);
180
menu2.add(eitem11);
181
182
menu3.add(oitem1);
183
menu3.add(oitem2);
184
185
menu4.add(vitem1);
186
187
menu5.add(hitem1);
188
menu5.addSeparator();
189
menu5.add(hitem2);
190
191
//将菜单添加到菜单条上
192
jmb.add(menu1);
193
jmb.add(menu2);
194
jmb.add(menu3);
195
jmb.add(menu4);
196
jmb.add(menu5);
197
198
//将菜单条添加到窗体上
199
this.setJMenuBar(jmb);
200
201
//将工具条添加到窗体上
202
this.add(jtb,BorderLayout.NORTH);
203
204
JScrollPane jsp=new JScrollPane(jta);
205
jsp.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
206
this.add(jsp);
207
208
//窗体设置
209
this.setTitle("Java记事本");
210
this.setSize(500, 400);
211
this.setLocationRelativeTo(null);
212
this.setVisible(true);
213
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
214
}
215
}
原文地址:https://www.cnblogs.com/xuxaut-558/p/10045693.html