#博学谷IT技术支持
目录
1. GUI
1.1 GUI概述
-
GUI:Graphical User Interface(图形用户接口)
-
用图形的方式,来显示计算机操作的界面
1.2 组件
1.2.1基本组件
-
JButton,这是按钮
-
JLabel,这是用来显示文本内容的,或者展示图片使用
-
JTextFile,这是文本框,用来输入内容的
-
JTextArea,这是文本域,用来输入多行多列的数据的
1.2.2容器组件
-
面板也是一个容器,我们常用JPanel,后面用到在具体讲解
-
窗体,下面是Frame,这是awt包下,而我们使用的是JFrame,这是swing包下。
1.3 常用组件使用方法
1.3.1 JFrame(窗体)
JFrame:
-
是一个顶层窗口
构造方法:
-
JFrame():构造一个最初不可见的新窗体
成员方法:
-
void setVisible(boolean b):显示或隐藏此窗体具体取决于参数b的值
-
void setSize(int width, int height):调整此组件的大小,使其宽度为width,高度为height,单位是像素
-
void setTitle(String title):设置窗体标题
-
void setLocationRelativeTo(Component c):设置位置,值为null,则窗体位于屏幕中央
-
void setDefaultCloseOperation(int operation):设置窗体关闭时默认操作
-
整数3表示:窗口关闭时退出应用程序
-
-
void setAlwaysOnTop(boolean alwaysOnTop):设置此窗口是否应始终位于其他窗口之上
代码演示:
//创建窗体对象
JFrame jf = new JFrame();
//void setTitle(String title):设置窗体标题
jf.setTitle("百度一下,你就知道");
//设置窗体大小
jf.setSize(400, 300);
//void setDefaultCloseOperation(int operation):设置窗体关闭时默认操作(整数3表示:窗口关闭时退出应用程序)
jf.setDefaultCloseOperation(3);
//void setLocationRelativeTo(Component c):设置位置,值为null,则窗体位于屏幕中央
jf.setLocationRelativeTo(null);
//void setAlwaysOnTop(boolean alwaysOnTop):设置此窗口是否应始终位于其他窗口之上
jf.setAlwaysOnTop(true);
//设置窗体可见
jf.setVisible(true);
1.3.2 JButton(窗口中添加按钮)
JButton:
-
按钮的实现
构造方法:
-
JButton(String text):创建一个带文本的按钮
成员方法:
-
void setSize(int width, int height):设置大小
-
void setLocation(int x, int y):设置位置(x坐标,y坐标)
-
void setBounds(int x, int y, int width, int height):设置位置和大小
和窗体相关操作:
-
取消窗体默认布局:窗体对象.setLayout(null);
-
把按钮添加到窗体:窗体对象.add(按钮对象);
代码演示:
JButton loginButton = new JButton("登录");
loginButton.setBounds(50,200,280,20);
jf.add(loginButton);
1.3.3 JLabel(显示文本和图像)
JLable:
-
短文本字符串或图像的显示区域
构造方法:
-
JLabel(String text):使用指定的文本创建 JLabel实例
-
JLabel(Icon image):使用指定的图像创建 JLabel实例
-
ImageIcon(String filename):从指定的文件创建ImageIcon
-
文件路径:绝对路径和相对路径
-
绝对路径:完整的路径名,不需要任何其他信息就可以定位它所表示的文件
-
例如:D:\IdeaProjects\javase_code\itheima-api-gui\images\mn.png
-
-
相对路径:必须使用取自其他路径名的信息进行解释
-
例如:itheima-api-gui\images\mn.png
-
-
Ctrl+Shift+C:复制路径
成员方法:
-
void setBounds(int x, int y, int width, int height):设置位置和大小
知道了JLabel的构造方法和成员方法后,我们到IDEA中去使用一下:
JLabel jLabel = new JLabel("好好学习");
jLabel.setBounds(0,0,100,20);
JLabel jLabel2 = new JLabel(new ImageIcon("itheima-api-gui\\images\\mn.png"));
jLabel2.setBounds(50,50,100,143);
jf.add(jLabel);
jf.add(jLabel2);
1.4 补充知识
- 密码组件:JPasswordField,用来表示密码框
代码演示:
JPasswordField passwordField = new JPasswordField();
passwordField.setBounds(150,100,180,20);
jf.add(passwordField);
- 日历控件:用于日期的选择和填写(需要先准备一个日历控件类,如:DateChooser.java))
//创建日期选择器对象,指定日期字符串格式
DateChooser dateChooser = DateChooser.getInstance("yyyy-MM-dd");
JTextField showDateField = new JTextField("单击选择日期");
showDateField.setBounds(50, 50, 100, 20);
//把日历控件和文本框进行绑定
dateChooser.register(showDateField);
1.5 事件监听机制
事件监听机制的组成:
-
事件源:事件发生的地方。可以是按钮,窗体,图片等
-
事件:发生了什么事情。例如:鼠标点击事件,键盘按下事件等
-
事件绑定:把事件绑定到事件源上,当发生了某个事件,则触发对应的处理逻辑
-
事件源对象. addXXXListener(事件);
-
JButton jButton = new JButton("事件监听");
jButton.setBounds(0, 0, 100, 100);
jf.add(jButton);
jButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("事件监听");
}
});