第十一周作业课程总结

第三节:布局管理器


  • FlowLayout 流式布局:


FlowLayout,流式布局管理器。按水平方向依次排列放置组件,排满一行,换下一行继续排列。

同一行(水平方向)的组件的对齐方式由 FlowLayout 的align属性确定,它可能的值如下:
  • FlowLayout.LEFT : 左对齐

  • FlowLayout.CENTER : 居中对齐(默认)

  • FlowLayout.RIGHT : 右对齐

  • FlowLayout.LEADING : 与容器方向的开始边对齐,例如,对于从左到右的方向,则与左边对齐

  • FlowLayout.TRAILING : 与容器方向的结束边对齐,例如,对于从左到右的方向,则与右边对齐。

  • BorderLayout 方位布局:

  • BorderLayout,边界布局管理器。它把 Container 按方位分为 5 个区域(东、西、南、北、中),每个区域放置一个组件。
  • BorderLayout 表示方位的 5 个常量:
BorderLayout.NORTH      // 容器的北边
BorderLayout.SOUTH      // 容器的南边
BorderLayout.WEST       // 容器的西边
BorderLayout.EAST       // 容器的东边
BorderLayout.CENTER     // 容器的中心
  • GridLayout 表格布局:

  • GridLayout,网格布局管理器。它以矩形网格形式对容器的组件进行布置,把容器按行列分成大小相等的矩形网格,一个网格中放置一个组件,组件宽高自动撑满网格。

  • 以行数和总数优先: 通过构造方法或 setRows 和 setColumns 方法将行数和列数都设置为非零值时,指定的列数将被忽略。列数通过指定的行数和布局中的组件总数来确定。

  • Null 绝对布局:

  • null,绝对布局。绝对布局没有特定一个布局管理器类来表示,给容器的布局管理器设置为 null,就表示使用绝对布局,即通过设置组件的坐标和宽高来布置组件。
  • 绝对布局需要明确指定每一个组件的坐标和宽高,否则不显示。
  • 对于使用其他布局时给组件设置坐标和宽高,一般会遵循以下两点:
使用其他布局时,如果在窗口显示之后,再添加新组件,则该组件也会被当做绝对布局对待(即需要手动指定坐标和宽高);
使用其他布局时,如果在窗口显示之后,修改之前添加的组件的坐标和宽高,则该组件也会被当做绝对布局对待(即此时修改坐标和宽高会生效)。

第四节:JButton组件:



第四节:Java Swing:(图形界面开发)

JFrame – java的GUI程序的基本思路是以JFrame为基础,它是屏幕上window的对象,能够最大化、最小化、关闭。

JPanel – Java图形用户界面(GUI)工具包swing中的面板容器类,包含在javax.swing 包中,可以进行嵌套,功能是对窗体中具有相同逻辑功能的组件进行组合,是一种轻量级容器,可以加入到JFrame窗体中。。

JLabel – JLabel 对象可以显示文本、图像或同时显示二者。可以通过设置垂直和水平对齐方式,指定标签显示区中标签内容在何处对齐。默认情况下,标签在其显示区内垂直居中对齐。默认情况下,只显示文本的标签是开始边对齐;而只显示图像的标签则水平居中对齐。

JTextField –一个轻量级组件,它允许编辑单行文本。

JPasswordField – 允许我们输入了一行字像输入框,但隐藏星号(*) 或点创建密码(密码)

JButton – JButton 类的实例。用于创建按钮类似实例中的 "Login"。

1、Java引入图形化界面编程。

JFrame 是容器类。
AWT 是抽象窗口组件工具包,是 Java 最早的用于编写图形节目应用程序的开发包。
Swing 是为了解决 AWT 存在的问题而新开发的包,它以 AWT 为基础的。

2、JFrame(窗口):

  • 概述
JFrame,窗口。JFrame 是一个可以独立显示的组件,一个窗口通常包含有标题、图标、操作按钮(关闭、最小化、最大化),还可以为窗口添加菜单栏、工具栏等。一个进程中可以创建多个窗口,并可在适当时候进行显示、隐藏 或 销毁。
  • JFrame 常用构造方法:
/**
 * 参数说明:
 *     title: 窗口标题
 */
JFrame()

JFrame(String title)
  • JFrame 常用方法:
// 设置窗口的 标题
void setTitle(String title)

// 设置窗口的 图标
void setIconImage(Image image)

// 设置窗口的 宽高
void setSize(int width, int height)
void setSize(Dimension d)

/**
 * 设置窗口关闭按钮点击后的默认操作, 参考值:
 *     WindowConstants.DO_NOTHING_ON_CLOSE: 不执行任何操作。
 *     WindowConstants.HIDE_ON_CLOSE: 隐藏窗口(不会结束进程), 再次调用 setVisible(true) 将再次显示。
 *     WindowConstants.DISPOSE_ON_CLOSE: 销毁窗口, 如果所有可显示的窗口都被 DISPOSE, 则可能会自动结束进程。
 *     WindowConstants.EXIT_ON_CLOSE: 退出进程。
 */
void setDefaultCloseOperation(int operation)

// 设置窗口是否可放大缩小
void setResizable(boolean resizable)

// 设置窗口的 位置(相对于屏幕左上角)
void setLocation(int x, int y)
void setLocation(Point p)

// 设置窗口的 位置 和 宽高
void setBounds(int x, int y, int width, int height)
void setBounds(Rectangle rect)

// 获取窗口的位置坐标(相对于屏幕坐标空间)
Point getLocationOnScreen()
// 获取窗口的位置坐标(相对于父级坐标空间, 窗口的父级一般就是屏幕)
Point getLocation()

/**
 * 设置窗口的相对位置。
 * 如果 comp 整个显示区域在屏幕内, 则将窗口放置到 comp 的中心;
 * 如果 comp 显示区域有部分不在屏幕内, 则将该窗口放置在最接近 comp 中心的一侧;
 * comp 为 null, 表示将窗口放置到屏幕中心。
 */
void setLocationRelativeTo(Component comp)

// 设置将窗口 置顶 显示
void setAlwaysOnTop(boolean alwaysOnTop)

// 设置窗口的内容面板
void setContentPane(Container contentPane)

// 设置窗口是否可见, 窗口对象刚创建和添加相应组件后通过 setVisible(true) 绘制窗口, 其内部组件可能要此时才有宽高值
void setVisible(boolean b)

// 判断窗口是否处于显示状态
boolean isShowing()

// 销毁窗口, 释放窗口及其所有子组件占用的资源, 之后再次调用 setVisible(true) 将会重构窗口
void dispose()

// 调整窗口的大小, 以适合其子组件的首选大小和布局。
void pack()
  • 实现Frame的显示。
1、用java.awt.Color类来设置窗口的背景颜色。
2、用Dimension类来设置窗口的大小。
3、用Point类来设置窗口显示的位置。

第六节:JFrame类的常用操作方法

  • Dimension类

方法 类型 描述
public Dimension() 构造 创建一个Dimension实例
public void setSize(double width,double height) 普通 设置显示的宽和高
public void setSize(int width,int height) 普通 设置显示的宽和高
public double getWidth0 普通 返回组件的宽
public double getHeight0 普通 返回组件的高
  • Point类

方法 类型 描述
public Point() 构造 在坐标原点创建对象
public Point(int x,int y) 构造 在指定的坐标点创建对象
public void setLoc ation(double x,double y) 普通 设置X、Y坐标
public void setLoc ation(int x,int y) 普通 设置X、Y坐标
public void move(int x,int y) 普通 返回组件将此组件移动到指定坐标位置,此方法与setLocation(int,int)相同
public void translate(int dx,int dy) 普通 平移(z, y)位置的点,沿x轴平移dx,沿y轴平移dy,移动后得到点(x+ dx,y+ dy)
原文地址:https://www.cnblogs.com/youlanghua/p/11819847.html