JAVA入门到精通-第32讲-swing编程实战
Posted 夏至稻花如白练,大暑池畔赏红莲
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA入门到精通-第32讲-swing编程实战相关的知识,希望对你有一定的参考价值。
JBorderLayout,左边是JList,拆分窗格;
图片是放在JLabel上的,图片的地址写好就行;
在相关项目下面建立一个文件夹Folder,放置图片;或者复制粘贴;
拆分:水平拆分?垂直拆分?
拆分之后把jList和jl1这两个组件放进去;
可以伸缩:
在窗口左上角出现自己的图标?
Border布局;
多行文本框带滚动条,聊天窗口可滚动:
加入QQ左上角图标:
Border布局很有用,
CENTER会被自动挤满;
QQ号码、手机号码、电子邮箱会切换;
Border布局;中间JPanel,设置成Grid网格布局;
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]
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]
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]
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 容器类组件
*/