JAVA GUI
2013-04-25 17:38
351 查看
总结的很不错啊,呵呵。。。。。加油原文地址:JAVA GUI作者:huangzhiyuan1226
代码最好放在分开的类里面。
图形界面必须要继承JPanel对象的同时重载绘图控件。
图形界面最好被声明进窗口类或 封闭的界面里, 它将能调用其它实例化的类。
监听变量被改变是最常见的引起监听器作用的行为。
监听方法可以被混合在图形界面的结构代码里,不过为了好的理解性,最好将其分开。图形界面的构造代码和执行代码分开,可很好增加代码的可读性和重用性。
界面结构模式:
图形界面的源代码最好能跟项目中的逻辑代码进行分离,逻辑结构与用户界面的交互最好通过传递返回值,或者将其在监听器里实例化调用。
这样做的好处有两个:
1 降低复杂性: 越大的项目,设计模块越多,牵一发而动全身, 独立性越高越好。
2 界面的可移植性:界面最好能够随时转化为 基于 Swing, SWT, XML based GUI 的界面,甚至在UNIX
系统下能够支持,命令行模式。
我们熟悉的解构模式有3种:
1 MVC - Model-View-Controller
Pattern 模型视图控制器模式
可视觉部分控制显示输出,并且与逻辑模型进行交互。
控制部分,负责接收用户的输入,并且与逻辑模型和可视部分交互。
逻辑模型负责实现逻辑结构,对界面一无所知。
2 演示文档模式-presentation-document pattern
演示模式包含所有用户借口代码。
文档部分包含逻辑代码也就是逻辑模型。
3 PAC- 演示抽象控制模型 presentation-abstraction-control pattern
PAC模式是一个递归的 MVC模式
它有很多层次结构,每个构成点又遵循PAC模式。
基础的GUI 空间
JLabel- 固定的文本
实例化: jlab=new JLabel(t/icon, [option align])
JTextField-包含文字的文本框
tf=new JTextField(n) 实例化 宽为N 字符
tf.setText();设置文字
tf.getText();获取文字
tf.addActionListener(lst); 添加监听器
tf.setEditable(bool); 设置访问性
tf.setHorizontalAlignment(align); 设置显示的文字在文本框内的位置
JButton-包含文字或图标的按钮
jb=new JButton(); 实例化
jb.setActionLinstener(); 添加监听器,当按钮被按下时候相应
jb.setEnable(); 设置按钮的可访问性
JTextArea: 包含文字的文本区,可以有多行。
jta=new JTextArea(x,y); 实例化设置X行,Y列的文本区
jta.getText(); 得到文本框里的内容
jta.setText(t); 设置文本框里的内容
jta.append(t); 在文本框内容后添加文字
jta.insert(s,pos); 在文本内容中的POS 位置添加内容s.
jta.setEditable(bool); 设置文本框的可访问性
jta.setLineWrap(bool); 允许过长的行自动换行
jta.setBorder(brtr);在内容和边框间添加空白
JCheckBox(); 可选框
jcb=new JCheckBox(text); 创建可选框与文本
b=jcb.IsSelected(); 如果可选框被选时,返回TRUE
jcb.setSelected(); 设置可选框被选
jcb.addActionLinstener(al); 如果被选框被按, 监听器相应。
jcb.setEnable(bool); 设置可选框的可访问性。
GUI container
JFrame: 视窗
javax.swing包里
w=new JFrame();
w.setTitle(t); 设置标题框内容
w.setDefaultCloseOperation(); 设置窗口关闭按钮
w.setVisible(); 设置窗口的可访问性,也就是显示还是不显示
w.pack(); 计算JFrame中包含的容器,并且设置JFrame的尺寸
w.setContentPane(cont); 把其中的一个容器设置为JFrame的内容面板
cont=w.getContentPane(); 得到JFrame的内容面板
w.setJMenuBar(); 设置菜单条
w.setResizable(false); 设置窗口的可访问性
w.setLocation(x,y) 设置窗口的位置。
Dialogs: JOptionPane,
JFileChooser, JColorChooser, JDialog
JOptionPane 用来创建对话框。
Object[] options = {"确定","取消","帮助"};
int
response=JOptionPane.showOptionDialog(null,
"这是个选项对话框,用户可以选择自己的按钮的个数","选项对话框标题",JOptionPane.YES_OPTION,
JOptionPane.QUESTION_MESSAGE, null, options, options[0]);
int response=JOptionPane.showOptionDialog(null,
"这是个选项对话框,用户可以选择自己的按钮的个数","选项对话框标题",JOptionPane.YES_OPTION,
JOptionPane.QUESTION_MESSAGE, null, options, options[0]);
if(response==0)
{
JOptionPane.showMessageDialog(null,"您按下了确定按钮","消
息",JOptionPane.INFORMATION_MESSAGE);//消息对话框
}
JFileChooser();选择对话框打开选择的文件
fc=new JFileChooser();
int n=fc.showOpenDialog(this); OR
int n=fc.showSaveDialog(this);
if(n==JFileChooser.APPROVE_OPTION)
File f=fc.getSelectedFile();
JColorChooser(); 色彩选择框
JColorChooser.showDialog(this,"chose a color",color);
JDialog();创建对话框窗口的主要类。可以使用此类创建自定义的对话框
JPanel 一般的轻量级容器
p=new JPanel();
p.setLayout(); 设置容器的布局
p.add(); 为容器添加新的组件
p.add(widge, constraint); 以布局限制添加组件
JSrollPane, JTabbedPane
特别的容器。
JScrollPane logScrollPane = new JScrollPane(log); 将LOG组件添加为
JSrollPane组件
tb=new JTabbedPane(); 实例化表格板
tb=new JTabbedPane(place); example: top,bottom,left
tp.addTab(title, comp);
Layouts (FlowLayout, BorderLayout,
FlowLayout: 流式布局
flow= new FlowLayout(align); //FlowLayout.LEFT
FlowLayout.CENTER
BorderLayout:边界布局
程序结构
主要功能就是创建一个窗口界面(JFrame),并且显示它。代码最好放在分开的类里面。
图形界面必须要继承JPanel对象的同时重载绘图控件。
图形界面最好被声明进窗口类或 封闭的界面里, 它将能调用其它实例化的类。
事件和交流:
当用户图形界面被构造,程序将停止运行,直到感应到用户的调用, 从而引发相应的监听器。监听变量被改变是最常见的引起监听器作用的行为。
监听方法可以被混合在图形界面的结构代码里,不过为了好的理解性,最好将其分开。图形界面的构造代码和执行代码分开,可很好增加代码的可读性和重用性。
界面结构模式:
图形界面的源代码最好能跟项目中的逻辑代码进行分离,逻辑结构与用户界面的交互最好通过传递返回值,或者将其在监听器里实例化调用。
这样做的好处有两个:
1 降低复杂性: 越大的项目,设计模块越多,牵一发而动全身, 独立性越高越好。
2 界面的可移植性:界面最好能够随时转化为 基于 Swing, SWT, XML based GUI 的界面,甚至在UNIX
系统下能够支持,命令行模式。
我们熟悉的解构模式有3种:
1 MVC - Model-View-Controller
Pattern 模型视图控制器模式
可视觉部分控制显示输出,并且与逻辑模型进行交互。
控制部分,负责接收用户的输入,并且与逻辑模型和可视部分交互。
逻辑模型负责实现逻辑结构,对界面一无所知。
2 演示文档模式-presentation-document pattern
演示模式包含所有用户借口代码。
文档部分包含逻辑代码也就是逻辑模型。
3 PAC- 演示抽象控制模型 presentation-abstraction-control pattern
PAC模式是一个递归的 MVC模式
它有很多层次结构,每个构成点又遵循PAC模式。
基础的GUI 空间
JLabel- 固定的文本
实例化: jlab=new JLabel(t/icon, [option align])
JTextField-包含文字的文本框
tf=new JTextField(n) 实例化 宽为N 字符
tf.setText();设置文字
tf.getText();获取文字
tf.addActionListener(lst); 添加监听器
tf.setEditable(bool); 设置访问性
tf.setHorizontalAlignment(align); 设置显示的文字在文本框内的位置
JButton-包含文字或图标的按钮
jb=new JButton(); 实例化
jb.setActionLinstener(); 添加监听器,当按钮被按下时候相应
jb.setEnable(); 设置按钮的可访问性
JTextArea: 包含文字的文本区,可以有多行。
jta=new JTextArea(x,y); 实例化设置X行,Y列的文本区
jta.getText(); 得到文本框里的内容
jta.setText(t); 设置文本框里的内容
jta.append(t); 在文本框内容后添加文字
jta.insert(s,pos); 在文本内容中的POS 位置添加内容s.
jta.setEditable(bool); 设置文本框的可访问性
jta.setLineWrap(bool); 允许过长的行自动换行
jta.setBorder(brtr);在内容和边框间添加空白
JCheckBox(); 可选框
jcb=new JCheckBox(text); 创建可选框与文本
b=jcb.IsSelected(); 如果可选框被选时,返回TRUE
jcb.setSelected(); 设置可选框被选
jcb.addActionLinstener(al); 如果被选框被按, 监听器相应。
jcb.setEnable(bool); 设置可选框的可访问性。
GUI container
JFrame: 视窗
javax.swing包里
w=new JFrame();
w.setTitle(t); 设置标题框内容
w.setDefaultCloseOperation(); 设置窗口关闭按钮
w.setVisible(); 设置窗口的可访问性,也就是显示还是不显示
w.pack(); 计算JFrame中包含的容器,并且设置JFrame的尺寸
w.setContentPane(cont); 把其中的一个容器设置为JFrame的内容面板
cont=w.getContentPane(); 得到JFrame的内容面板
w.setJMenuBar(); 设置菜单条
w.setResizable(false); 设置窗口的可访问性
w.setLocation(x,y) 设置窗口的位置。
Dialogs: JOptionPane,
JFileChooser, JColorChooser, JDialog
JOptionPane 用来创建对话框。
Object[] options = {"确定","取消","帮助"};
int
response=JOptionPane.showOptionDialog(null,
"这是个选项对话框,用户可以选择自己的按钮的个数","选项对话框标题",JOptionPane.YES_OPTION,
JOptionPane.QUESTION_MESSAGE, null, options, options[0]);
int response=JOptionPane.showOptionDialog(null,
"这是个选项对话框,用户可以选择自己的按钮的个数","选项对话框标题",JOptionPane.YES_OPTION,
JOptionPane.QUESTION_MESSAGE, null, options, options[0]);
if(response==0)
{
JOptionPane.showMessageDialog(null,"您按下了确定按钮","消
息",JOptionPane.INFORMATION_MESSAGE);//消息对话框
}
JFileChooser();选择对话框打开选择的文件
fc=new JFileChooser();
int n=fc.showOpenDialog(this); OR
int n=fc.showSaveDialog(this);
if(n==JFileChooser.APPROVE_OPTION)
File f=fc.getSelectedFile();
JColorChooser(); 色彩选择框
JColorChooser.showDialog(this,"chose a color",color);
JDialog();创建对话框窗口的主要类。可以使用此类创建自定义的对话框
JPanel 一般的轻量级容器
p=new JPanel();
p.setLayout(); 设置容器的布局
p.add(); 为容器添加新的组件
p.add(widge, constraint); 以布局限制添加组件
JSrollPane, JTabbedPane
特别的容器。
JScrollPane logScrollPane = new JScrollPane(log); 将LOG组件添加为
JSrollPane组件
tb=new JTabbedPane(); 实例化表格板
tb=new JTabbedPane(place); example: top,bottom,left
tp.addTab(title, comp);
Layouts (FlowLayout, BorderLayout,
GridLayout)
FlowLayout: 流式布局flow= new FlowLayout(align); //FlowLayout.LEFT
FlowLayout.CENTER
BorderLayout:边界布局
- Lays out components in BorderLayout.NORTH, EAST, SOUTH, WEST, and CENTER sections. | ||
bord = | new BorderLayout(); | |
GridLayout - Lays out components in equal sized rectangular grid, added r-t-l, top-to-bottom. | ||
grid = | new GridLayout(r, c); | 创建表格为R行C列 |
相关文章推荐
- Java GUI:图形用户界面三剑…
- Java GUI (图形界面)
- Java GUI 使用 Vector 类 建立表格
- Java GUI 菜单栏
- Java 并发全部介绍
- java WEB应用中的中文乱码问题初探
- java 类,方法,变量的说明符   pr…
- java 泛型
- 使用bat文件启动java 项目
- java swing 文件选择,…
- 黑马程序员JAVA 颜色过滤器 程序
- JAVA 框架显示系统时间
- Java语法总结 - 内部类
- 《thinking in java》学习笔记2
- Java学习笔记4 java中的运算符
- Java学习笔记21 枚举类型enum、Enu…
- js 数组赋值和java数组赋值
- JSON 字符串 与 java 对象的…
- java 计算奇数和偶数的个数
- java 访问对象中的属性