Swing 用户界面组件
- 一种模式:模型----视图-----控制器
- 模式有很多种,例如:模型----视图----控制器(原则为限制一个对象拥有的功能数量);组合模型--容器和组件之间;装饰器模式----带滚动条的面板;策略模式-----布局管理器
- 内容---外观----行为----MVC
- 模型与视图之间关系 1:n 模型独立于观感,所以,有重用的可能
- 模型可能相同,但视同和控制器可能不同
- metal观感中,JButton 继承了JComponent的包装器类,后者包含了DefaultButtonModel(模型)对象和BasicButtonUI(视图)对象。
- 流布局管理器:组件防止在容器中,流布局管理器全权安全组件的放置,容器也可以放置在另一个容器中,按钮和文本域都继承于Component类,Component类的层次结构详述与P328
- 容器的add方法可以把组件和放置方法传给布局管理器,.segLayout(为容器防止布局管理器)
- 边框布局管理器,每一个JFram的内容窗格的布局管理器,这个布局管理器允许为每个组件选择一个放置位置 .add(组件,东南西北中);缩放时,边沿组件大小先不变,中间组件的大小先发生变化, 默认是:中。
- 流布局管理器:维持每个组件的最佳尺寸 ----------边框布局管理器:扩展组件以填充可用空间
详述于P330
- 文本域 只能接受单行输入------JTextField-----new JTextField("内容",极限个数),文本区接收多行------JTextArea,密码输入不显示正确内容--------JPassword 这三个类继承于JTextComponent抽象类 这个抽象类中有方法getText,setText(对文本的操作), isEditable,setEditable(对可编辑性操作);可以利用方法 setColumns()重新设定列数(字的个数),在使用这个方法后需要调用这个文本框容器的revalidate方法(这个方法是JComponent类的方法)这个方法将会重新计算容器内各个组件的大小并布局,但是如果想重新计算JFrame(框架)中所有组件的大小应该使用名为validate方法,因为JFrame并不继承于JComponent类
- 使用setText(字符串),这个方法定义在JTextComponent类中,与getText方法对应
- getText().trim()得到无空格的字符串
- setFont方法将改变现实的字体 详述于p335
- JLabel 是实现了JConstants接口的一个swing类,带有排版参数常量例如:SwingConstants.RIGHT或者JLabel.RIGHT右为准。
- 可以使用名字,图标,排版进行构建JLabel实例
- 文本区中的换行只是视觉效果,文档中的文本没有改变(加换行符),可以使用.setLineWrap(true)方法防止裁剪过长的行
- 文本区插入到滚动窗格中可以实现滚动条,new JScroolPane(文本区组件),加入后,滚动窗格负责管理文本区的视图,可以为任意的组件添加滚动功能
- JTextArea组件只显示无格式的文本,需要显示格式化的文本时需要利用JEditorPane类 详述与P338
时间: 2024-11-12 23:35:27