Java Swing 1

| author beyondsky  | categories Java   | tags Java   语言   Swing  

##MVC

  • MVC = model + view + control 模型-视图-控制器体系结构
    • 模型负责存储内容(模型可以要求视图刷新)
    • 视图负责显示内容(一个模型可以有多个视图)
    • 控制器根据事件的不同,对模型或者视图发出命令。
  • 每个用户界面元素都有与之对应的包装器类保存模型和视图(如JButton, JTextField)
  • 得到一个按钮模型对象:ButtonModel model = button.getModel();
  • JButton = JComponent = DefaultButtonModel + BasicButtonUI + Label/Icon

布局管理器 layout manager

  • 组件放在容器中,布局管理器决定容器中组件的具体位置和大小。
  • 容器都是组件(Container继承了Component),所以容器也可以放置在其他容器中。
  • 设置布局管理器:panel.setLayout(new GridLayout(4,4));
  • Java.awt.Window 1.0
    • void pack() //缩放窗口时,将组件调整致最佳尺寸。
    • 容器的add()方法把组件及其位置传递给Layout。
    • 注:JFrame是顶层窗口,不能放置在其他容器中。
    • 注:虽然可以将其他组件放置在JComponent对象中(如JButton对象),但是却不能显示出来。
  • 面板Panel默认布局管理器:流布局管理器 flow layout manager
    • 流布局管理器:按行居中放置
    • FlowLayout(int align, int hgap, int vgap)
      • align : LEFT, CENTER, RIGHT
      • hgap : 水平间距 像素 负值重叠组件
      • vgap : 垂直间距 像素 负值重叠组件
  • 网格布局管理器 grid layout manager
    • 每个网格尺寸一致
    • GridLayout(int rows, int cols) //行数,列数,不能都为0
    • GridLayout(int rows, int columns, int hgap, int vgap)
  • 窗口JFrame默认Layout:边框布局管理器 border layout manager
    • 边框布局允许每个组件选择一个位置:北部 中部 西部 东部 南部
    • 如: frame.add(component, BorderLayout.SOUTH);
    • 容器被缩放时,只有中部组件的大小发生变化。
    • border layout manager会扩展组件来填满容器,所以一般把一个流布局(组件呈最佳尺寸)的JPanel放置在一个边框布局的容器中,此时边框布局会把使面板填充容器,而不是组件。
    • BorderLayout(int hgap, int vgap) hgap:水平间距px,vgap:垂直间距px

<table border=”1”, width=”260”, align=”center”>

BorderLayout North West Center East South

</table>


上一篇     下一篇