您的位置:首页 > 产品设计 > UI/UE

JAVA GUI

2013-04-25 17:38 351 查看
总结的很不错啊,呵呵。。。。。加油原文地址:JAVA GUI作者:huangzhiyuan1226

程序结构

    主要功能就是创建一个窗口界面(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列
 
 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: