• 第九周学习视频(一)


    一、文本域JTextArea

    提供了一个区域,用于操作多行文本。
    与JTextField不一样,JTextArea不具有动作事件。
    JTextArea中的文本的改变,可通过另一 个GUI组件触发的事件来处理。
    JTextArea不会提供滚动条,因此要显示完整的内容,需要为文本域加载滚动条。

    二、BoxLayout布局管理器

    将GUI组件沿容器的x轴水平放置,或者沿容器的Y轴垂直放置。Box容器默认采用BoxLayout。
    通过Box类的静态方法,createHorizontalBox()返回Box容器的引用,所创建的Box包含水平BoxLayout,会将组件按照添加它们的顺序从左到右排列。
    通过Box类的静态方法 createVerticalBox () 返回Box容器的引用,所创建的Box包含垂直 BoxLayout,会将组件按照添加它们的顺序从上到下排列。

    三、Box中的透明组件

    Box中如果要调整组件之间的空间,会使用Box提供的透明组件作为填充来填充组件之 间的空间。
    Box 容器提供了 4 种透明的组件,分别是:rigid area;strut;glue;filler。


    Strut:用户只能定义一个方向的尺寸,即水平方向 或者垂直方向,可用于精确设定组件之间的距离。
    filler:是 Box 的内部类,它与 rigid area 相似, 都可以指定水平或者垂直的尺寸,但是它可以设置最小,最大和优先尺寸。
    Glue:当用户将 glue 放在两个控件之间时,它会尽可能的占据两个控件之间的多余空间,从而将 两个控件挤到两边。
    rigid area:是一种用户可以定义水平和垂直尺寸的透 明组件。该方法将一个固定区域rigid area添加到容器,固定区域是一个不可见的GUI组件, 具有固定的像素高度和宽度。

    四、GridBagLayout布局管理器

    同GridLayout类似,在容器中以网格形 式来管理组件,但是功能比GridLayout 强大:
    (1)GridBagLayout管理的所有行和列都可以是大小不同的。
    (2)GridLayout把每个组件限制到一个单元格 ,GridBagLayout中组件在容器中可以占据任意大小的矩形区域。


    GridBagLayout多了一个约束的概念。可以这样理解,由于GridBagLayout对于 内部的单元格的定制性很强,所以,此布局需要设置很多属性,而这些属性就被抽 象成为GridBagConstraints对象,其中的所有成员都是public的。


    GridBagConstraints.anchor:当组件小于其显示区域时,用于确定将组件置于在显示区域的何处。NORTH ;SOUTH ;WEST ;EAST ; NORTHWEST ;NORTHEAST ; NORTHWEST ;NORTHEAST ; SOUTHWEST ;SOUTHEAST ;CENTER。


    GridBagConstraints.fill:当组件的显示区域大于组件的所需大小时,用于确定是否(以及如何)调整组件。
    GridBagConstraints.NONE:默认值。
    GridBagConstraints.HORIZONTAL:加宽组件直到它足以在水平方向上填满其显示区域,但不更改其高度。
    GridBagConstraints.VERTICAL:加高组件直到它足以在垂直方向上填满其显示区域 ,但不更改其宽度。
    GridBagConstraints.BOTH:使组件完全填满其显示区域。


    GridBagConstraints.gridx; GridBagConstraints.gridy
    指定组件左上角的行和列,最左边的列是gridx=0,最上边的行是 gridy=0,实际上就是从(0, 0)开始的坐标。


    GridBagConstraints.gridwidth; GridBagConstraints.gridheight
    指定组件的显示区域行(针对 gridwidth)或列(针对 gridheight)中的单元数。默认值为 1。


    GridBagConstraints.weightx; GridBagConstraints.weighty
    份量用来决定在行(weightx)与列(weighty)它们各自之间如何分配空间。当 利用额外空间时,栅格会变得更宽/高。


    比如weightx的值分别为10,20,30,则在 容器的x方向也就是列的方向,按一定的比例分配三个网格单元,其中加权值越大网格单元就越大。值的大小是没有关系的,加权值的作用是让容器以设定的值的比例在横向和纵向分配网格,且在容器的大小改变时这个比例不改变。
    当只有一个组件设置权重值(weightx/weighty)时,其他组件不参与空间分配,所有多余的空间都留给该组件。

    五、滑块JSlider

    使用户能从某个整数值范围内进行选择。是带刻度线和滑块的一个JSlider。
    JSlider可以是水平方向,也可以是垂直方向的。滑块的相对位置表示JSlider的当前值。
    对水平方向的,最小值就是它的左端,最大值就是它的右端。对垂直方向的,最小值就是它的底端,最大值是它的顶端。JSlider的setInveted(true)方法可以颠倒JSlider的最小最大值的位置。


    JSlider会产生ChangeEvent,响应用户的交互。处理该事件的监听者是实现了ChangeListener 接口,并实现了其中stateChanged方法的对象。

    六、菜单

    Swing中菜单只能被绑定到提供了 setJMenuBar方法的类的对象上,这样的两个类是:JFrame;JApplet。

    七、Swing 菜单构成

    菜单栏:JMenuBar
    包含管理菜单栏所需要的方法,是菜单的容器。


    菜单:JMenu
    包含管理菜单所需要的方法,其中可包含菜单项,或包含其他菜单,其他菜单成为其子菜单。


    菜单项:
    JMenuItem:包含管理菜单项所需要的方法。是菜单中的交互组件,当它被选中时,会发生 ActionEvent。
    JCheckBoxMenuItem:包含管理能够被切换成开或关的菜单项所需的方法。当选中JCheckBoxMenuItem时,会在菜单 项左边出现复选标记;再次选择则删除复选标 记。
    JRadioButtonMenuItem:包含管理能够被切换成开或关的菜单项所需的方法。多个JRadioButtonMenuItem被当作ButtonGroup的一部分维护时,一个时刻只有组中的一个项会被选中。


    菜单栏是所有菜单和菜单项的根。

    八、JPopupMenu

    弹出式菜单。当用户按下或者释放鼠标右键时,会发生弹出式触发器事件。

    九、鼠标事件

    任何派生自java.awt.Component的 GUI组件,都能捕获鼠标事件。
    用于处理鼠标事件(MouseEvent)的接口:(1)MouseListener (2) MouseMotionListener。
    当鼠标与某个Component交互时,如果这个Component注册了恰当的事件监听器,则会调用上述两个接口中定义的方法处理各式的鼠标事件。

  • 相关阅读:
    jquery笔记
    css选择器
    Linq 巧用 Max,Sum
    Linq Aggregate
    Linq 对象的比较 Contains,Max
    Linq SelectMany 交叉连接
    JQ 标签相关知识
    C# HttpClient设置cookies的两种办法 (转发)
    使用 HttpClient 请求 Web Api
    MySQL 避免重复数据的批量插入与批量更新
  • 原文地址:https://www.cnblogs.com/caihan/p/12689587.html
Copyright © 2020-2023  润新知