《图形界面开发讲诉.》由会员分享,可在线阅读,更多相关《图形界面开发讲诉.(38页珍藏版)》请在金锄头文库上搜索。
1、方式一:在线安装 运行Eclipse-Help-InstallNewSoftware 进入 http:/eclipse.org/windowbuilder/download.php 再点开对应的 link 接着手动复制地址栏中的地址 (如:http:/download.eclipse.org/windowbuilder/WB/release/R201506241200-1/4.4/) 注意:下载windowbuilder的版本要与eclipse的版本一致,SWT插件的安装,回到Eclipse中的Intall对话框中单击add ,把刚才复制的地址粘贴到 Location 对应的内容中并点击 OK
2、 。 稍等一会儿就有几个可选的软件列表出单击来,全部选上Next ,几分钟后下完并自动安装完毕至重启即可。,SWT插件的安装,方式二:用离线安装文件安装 下载离线安装文件,下载后文件名为WB_v1.8.0_UpdateSite_for_Eclipse4.4.zip 不要打开这个压缩文件,把它复制到eclipse目录中的plugins文件夹中。 按方式一进行,不同的是在add对话框的“位置”中不要输入网址,而是单击Archive按钮,选择刚才复制到plugins文件夹中的WB_v1.8.0_UpdateSite_for_Eclipse4.4.zip 在随后出现的对话框中,选择所有,单击“下一步”
3、按提示完成安装,SWT插件的安装,检查SWT插件是否安装成功,Windows-Preference,可以看到下图所示的组件 。,1、单击FilenewotherWindows BuilderSWT Designer Swt/Jface Java Project,新建一个项目,命名为“swt”。 2、在swt-src上右击,选择newotherWindows BuilderSwing DesignerJDialog,创建一个对话框,命名为“test”。 3、右击test.java,选择【Run as】-【 Java Application】,运行程序。,新建SWT工程,用Swing组件开发界面,
4、在SWT工程中,若要用SWT Designer下的插件开发,即用SWT或Jface开发,需引入SWT或Jface相关包,进行相关配置,十分复杂。,特别说明,用户界面,1. AWT AWT是在Swing出现之前用来设计界面的工具包。 用awt包中的类创建的用户界面在不同的操作平台上有不同的表现,使用不灵活。 import java.awt.* Swing Swing 是对AWT的扩展,它是Java 2中的一个标准包。 组件都以J开头,如Jbutton等。Swing界面在不同的平台上外观完全一样,真正做到平台独立。 import javax.swing.*,AWT和Swing,一个顶层容器(即主窗
5、口) 顶层容器包含若干个中间容器 每个中间容器包含若干基本组件 按照合理的布局方式将它们组织在一起 基本组件可以响应发生在其上的事件,Java程序界面的构成,容器 容器是用来容纳和管理一组界面元素的对象,基本组件必须被安排在某个容器中,否则无法使用。,顶层容器,JFrame用来创建application,最常用。 JApplet用来创建applet JDialog用来创建对话框,常用 JWindow不常用,右击项目newotherWindows BuilderSwing DesignerJframe,新建 一个窗口。 构造方法 JFrame( ) 创建无标题窗口 常用方法 setTitle(S
6、tring title)设置窗口标题 setVisible(boolean b)设置窗口的可见性 setDefaultCloseOperation(int) 设置默认的关闭时的操作,常用取值为 JFrame.EXIT_ON_CLOSE,表示关闭时退出。 setResizable(boolean b) 设置窗口大小是否可以改变 setBounds(int x, int y, int width, int height) 前两个是组件左上角在容器中的坐标,后两个是组件的宽度和高度,创建用户主窗口JFrame,窗口背景颜色是指直接调用JFrame或者Frame的setBackground(Color
7、 color)方法设置后显示出来的颜色。其实在你直接调用这个方法后,你的确设置了背景颜色,而你看到的却不是直接的JFrame或者Frame,而是JFrame.getContentPane().而JFrame上的contentPane默认是Color.WHITE的,所以,无论你对JFrame或者Frame怎么设置背景颜色,你看到的都只是contentPane.,创建用户主窗口JFrame,由JFrame创建初始的用户界面 创建中间容器 由基本组件类创建有关组件 将基本组件按照某种布局添加到中间容器中,根据需要可能会用到容器的嵌套 将中间容器按照某种布局添加到顶层容器中,形成满足用户需求的操作界面
8、,界面的基本组织方式,中间容器提供将有关组件按照某种布局组合在一起,然后放入中间容器或顶层容器的功能。 JPanel 提供一个面板,最常用 JScrollPanel具有滚动条的窗格 此外还有JSplitPanel、Box等,中间容器,JPanel面板是容器组件,没有标题,不能独立存在,实例化以后必须用add方法装入到JFrame对象中。 常用设置: border 设置边界 background 设置背景色 Layout 设置布局方式 setSize 设置面板大小,中间容器JPanel,与AWT组件不同,Swing组件不能直接添加到顶层容器中,必须首先把组件添加到JPanel之类的中间容器中,再
9、用setContentPane( )方法把该容器置为JFrame的内容面板: JPanel contentPane = new JPanel(); /把其他组件添加到JPanel中; frame. setContentPane(contentPane);,向JFrame中添加组件的常用方式,布局是指在容器中的排列方式,主要有: FlowLayout 流式布局 BorderLayout 边界布局 GridLayout 网格布局 CardLayout 卡片布局 BoxLayout 盒式布局 GridBagLayout 网格包布局 null 空布局,布局的概念,该布局以行为单位依次排列各组件,一行排
10、不下时,另起一行,FlowLayout默认的对齐方式是居中。 JPanel默认布局是FlowLayout 构造方法 FlowLayout( ) 使用缺省的居中对齐方式 FlowLayout( int align) align取值:FlowLayout.CENTER、FlowLayou.LEFT、FlowLayou.RIGHT FlowLayout( int align, int hgap,int vgap) hgap和vgap指定组件组间的水平和垂直间距。,1.FlowLayout,创建FlowLayout布局对象 FlowLayout fl=new FlowLayout( ); 创建容器对象
11、 JPanel panel=new JPanel ( ); 设置容器对象的布局或使用默认布局 panel.setLayout (fl); 向容器中添加组件(假设组件对象已经创建) panel.add(组件对象),1.FlowLayout的使用,例如,setLayout(new FlowLayout(FlowLayout.left,10,20) 缺点:当用户对由FlowLayout布局管理的区域进行缩放时,布局发生变化,1.FlowLayout布局的使用,该布局适用于组件个数较少的情况,按照东、西、南、北、中5个区域排列各组件,每个区域只能加入一个组件。 构造方法 BorderLayout( )
12、 BorderLayout( int hgap,int vgap) hgap和vgap指定组件组间的水平 和垂直间距,默认为0像素。,2.BorderLayout,缺点:当加入的组件超过5个时,必须使用容器的嵌套或其他布局。 优点:当容器缩放时,组件相应的位置不变化,但大小改变。,2.BorderLayout布局的使用,创建BorderLayout布局对象 BorderLayout bl=new BorderLayout( ); 创建容器对象 JPanel panel=new JPanel ( ); 设置容器对象的布局或使用默认布局 panel.setLayout (bl); 向容器中添加组件
13、(假设组件对象已经创建) panel.add(组件对象,方位) 方位的取值为BorderLayout.SOUTH, BorderLayout.EAST, BorderLayout.WEST, BorderLayout.NORTH, BorderLayout.CENTER(默认),2.BorderLayout的使用,按照二维网格以相同大小依次排列各组件。每个组件被添加到单元格中,先从左到右添加满一行后换行,再从上到下。 构造方法 GridLayout( ) 一行、每个组件一列 GridLayout( int rows,int cols) 行、列数 GridLayout( int rows,int
14、 cols,int hgap,int vgap) 如 GridLayout(3,4 ),3.GridLayout,优点:组件的相应位置不随区域的缩放而改变,只是组件的大小改变,3.GridLayout,该布局适用于组件个数较多的情况 思考:若加入代码frame.pack();窗口会发生什么变化?窗口刚好包住所有组件。,用容器的嵌套,实现下面的布局,练习,要使用Swing的组件,需import javax.swing.*; 也可按ctrl+shift+o,自动导入所需包。 标签是最简单的组件,用于显示单行静态文本,用户只能查看内容 不能修改。 构造方法 JLabel lb1= new JLabe
15、l(“姓名“); ImageIcon ii= new ImageIcon(“d:/java.gif “); JLabel lb2= new JLabel(ii); JLabel lb3= new JLabel (“姓名“,ii,Jlabel.CENTER); 标签内容一般不需要改变,常用方法有getText()、 setText(),基本组件标签JLable,常用构造方法 JButton btn1= new JButton (“姓名“); 常用方法 void setActionCommand(String s) void addActionListener(ActionListener sl)
16、,基本组件按钮JButton,JTextField是一个单行条形文本区,能够接受输入、显示输出。,基本组件文本框JTextField,获取两个文本域的输入并求和,然后显示在第3个文本域中。,练习,需为=按钮添加监听事件,监听事件代码如下: addButton = new JButton(“=“); addButton.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) int n1=Integer.parseInt(num1.getText().trim(); int n2=Integer.parseInt(num2.getText().trim(); sum.setText(String.valueOf(n1+n2); );,JPasswordField接受用户的输入,但不是真正显示出来,而显示回显符。,基本组件密码框JPasswordField