ImageVerifierCode 换一换
格式:DOCX , 页数:22 ,大小:80.32KB ,
资源ID:16521279      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/16521279.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(简述Java图形用户界面设计SwingWord格式.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

简述Java图形用户界面设计SwingWord格式.docx

1、8 9 import javax.swing.JButton;10 import javax.swing.JDesktopPane;11 import javax.swing.JFrame;12 import javax.swing.JInternalFrame;13 import javax.swing.JPanel;14 15 public final class AwtSwing 16 17 public static void main(String args) 18 AwtSwing as = new AwtSwing();19 as.show();20 21 22 JFrame f

2、rame = new JFrame(Test AWT and SWING);23 24 JDesktopPane jdp = new JDesktopPane();25 26 JInternalFrame jif1 = new JInternalFrame(controls27 28 JInternalFrame jif2 = new JInternalFrame(cover29 30 public AwtSwing() 31 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);32 frame.getContentPane().add(j

3、dp);33 34 jif1.setContentPane(new JPanel();35 jif2.setContentPane(new JPanel();36 37 jif1.getContentPane().setLayout(new BorderLayout();38 jif1.getContentPane().add(new Button(AWT Button), BorderLayout.WEST);39 jif1.getContentPane().add(new JButton(Swing Button), 40 BorderLayout.EAST);41 42 jif1.set

4、Size(200, 100);43 jif2.setSize(200, 100);44 45 jdp.add(jif1);46 jdp.add(jif2);47 48 frame.setSize(240, 140);49 50 51 public void show() 52 frame.setVisible(true);53 jif1.setVisible(true);54 jif2.setVisible(true);55 56 57 运行这个程序,并用鼠标拖动那个名为“cover”的子窗口,我们会发现一个非常有趣的现象,如图:显然 cover 子窗口是在 controls 子窗口之上的,但

5、是它只罩盖住了 Swing Button,没有罩盖住 AWT Button。再看一会儿,你是不是有这样一种感觉:Swing Button 是“画”上去的,而 AWT Button 则是“贴”上去的。这就是二者混用造成层次错乱的一个例子。Swing 组件有美观、易用、组件量大等特点,也有缺点使用 Swing 组件的程序通常会比使用 AWT 组件的程序运行更慢。但是大家都还是更喜欢用 Swing 组件,原因何在?因为随着计算机硬件的升级,一点点速度已经不是问题。相反的,用户更需要美观的用户界面,开发人员则更需要易用的开发组件。框架 (Frame, JFrame) 是 Java 图形用户界面的基础,

6、它就是我们通常所说的窗口,是 Windows/XWindow 应用程序的典型特征。说到 Windows/XWindow,大家很容易联想到“事件 (Event) 驱动”。Java 的图形用户界面正是事件驱动的,并且由各种各样的监听器 (Listener) 负责捕捉各种事件。如果我们需要对某一个组件的某种事件进行捕捉和处理时,就需要为其添加监听器。比如,我们要在一个窗口 (JFrame) 激活时改变它的标题,我们就需要为这个窗口 (JFrame 对象) 添加一个可以监听到“激活窗口”这一事件的监听器WindowListener。怎么添加监听器呢?这通常由组件类提供的一个 addXxxxxListe

7、ner 的方法来完成。比如 JFrame 就提供有 addWindowListener 方法添加窗口监听器 (WindowListener)。一个监听器常常不只监听一个事件,而是可以监听相关的多个事件。比如 WindowListener 除了监听窗口激活事件 (windowActivate) 之外,还可以监听窗口关闭事件 (windowClosing) 等。那么这些事件怎么区分呢?就靠重载监听器类 (Class) 的多个方法 (Method) 了。监听器监听到某个事件后,会自动调用相关的方法。因此我们只要重载这个方法,就可以处理相应的事件了。不妨先看一个例子:58 /* 59 * (#) Te

8、stFrame.java 60 * author James 61 */ 62 63 import javax.swing.*;64 import java.awt.event.*;65 66 public class TestFrame extends JFrame 67 68 private int counter = 0;69 70 public TestFrame() 71 /* 使用匿名类添加一个窗口监听器 */ 72 addWindowListener(new WindowAdapter() 73 public void windowClosing(WindowEvent e) 7

9、4 System.out.println( 75 Exit when Closed event76 /退出应用程序 77 System.exit(0);78 79 80 public void windowActivated(WindowEvent e) 81 / 改变窗口标题 82 setTitle(Test Frame + counter+);83 84 );85 86 / 设置窗口为固定大小 87 setResizable(false);88 setSize(200, 150);89 90 91 public static void main(String args) 92 TestFr

10、ame tf = new TestFrame();93 tf.show();94 95 96 这个例子中,我们设计了一个窗口类(public class TestFrame extends JFrame . ),并且为这个窗口添加了一个窗口监听器 (addWindowListener(new WindowAdapter() .)。而我们添加的这个窗口监听器主要监听了两个事件:窗口关闭 (public void windowClosing(WindowEvent e) .) 和窗口激活 (public void windowActivated(WindowEvent e) .)。在窗口关闭事件中

11、我们退出了整个应用程序(System.exit(0);),而在窗口激活事件中,我们改变了窗口的标题 (setTitle()。最后,我们在 main 方法中显示了这窗口类的一个实例,运行得到下图所示的结果:这个程序的运行结果就是一个什么东西都没有加的框架,也就是一个空窗口。那么,你知道显示一个窗口最主要的几句代码吗?不知道没关系,我来告诉你,显示一个窗口只需要做三件事:生成实例(对象)设置大小显示,相应的,就是下面的三句代码:97 JFrame frame = new JFrame(Frames Title98 frame.setSize(400, 300);99 frame.setVisibl

12、e(true);也许你会说:第一句的意思我清楚,第三句的意思我也明白,为什么一定要第二句呢?其实想想也就明白了,叫你画一个没法有大小的矩形你能画出来吗?不能。同样,没有大小的窗口,怎么显示?所以我们需要用 setSize(int width, int height) 方法为其设置大小。我们还有另一种方法:用 JFrame 的 pack() 方法让它自己适配一个大小。pack() 在多数时候是令人满意的,但有时,它也会让你哭笑不得多试试就知道了。在 JFrame 中,我们使用 addWindowListener 方法加入一个监听器 WindowListener (addWindowListene

13、r(new WindowAdapter() .) 去监听发生在 JFrame 上的窗口事件。WindowListener 是一个接口,在 java.awt.event 这个包中,但是上例中好象并没有使用 WindowListener,而是使用的 WindowsAdapter 吧,这是怎么回事?WindowAdapter 是 WindowsListener 接口的一个最简单的实现,也在 java.awt.event 包中。如果我们直接使用 WindowListener 产生一个类,需要实现它的每一个方法 (一共 7 个)。但 WindowAdapter 作为 WindowListener 最简单

14、的实现,已经实现了它的每一个方法为空方法 (即只包含空语句,或者说没有语句的方法)。用 WindowAdapter 就只需要重载可能用到的方法 (上例中只有 2 个) 就行了,而不需要再去实现每一个方法。优点显而易见减少编码量。在 JFrame 上发生的窗口事件 (WindowEvent) 包括:windowActivated(WindowEvent e)窗口得到焦点时触发windowClosed(WindowEvent e)窗口关闭之后触发windowClosing(WindowEvent e)窗口关闭时触发windowDeactivated(WindowEvent e)窗口失去焦点时触发w

15、indowDeiconified(WindowEvent e)windowIconified(WindowEvent e)windowOpened(WindowEvent e)窗口打开之后触发上例重载了其中两个方法。如果在上例运行产生的窗口和另外一个应用程序窗口之间来回切换 (在 Windows 操作系统中你可以使用 Alt+Tab 进行切换)试试看,你发现了什么?有没有现我们的示例窗口标题上的数字一直在增加,这便是在 windowActivated 事件中 setTitle( + counter+) 的功劳。而另一个事件处理函数 windowClosing 中的 System.exit(0)

16、 则保证了当窗口被关闭时退出当前的 Java 应用程序。如果不作这样的处理会怎样呢?试验之后你会发现,窗口虽然关闭了,但程序并没有结束,但此时,除了使用 Ctrl+C 强行结束之外,恐怕也没有其它办法了。所以,这一点非常重要:你想在关闭窗口的时候退出应用程序,那就需要处理 windowClosing 事件。也不尽然,其实还有另外一个更简单的办法,让 JFrame 自己处理这件事你只需要如下调用 JFrame 的 setDefaultCloseOperation 即可:100 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);在产生 JFr

17、ame 对象之后执行上述语句,就可以不用处理 windowsClosing 事件来退出程序了。我们可以在 JFrame 对象中添加 AWT 或者 Swing 组件。但是,虽然它有 add 方法,却不能直接用于添加组件,否则崤壮鲆斐! 恍啪褪允浴斐烧飧鱿窒蟮脑 蛑挥幸桓鼋馐停篔Frame 不是一个容器,它只是一个框架。那么,应该怎么添加组件呢?JFrame 有一个 Content Pane,窗口是显示的所有组件都是添加在这个 Content Pane 中。JFrame 提供了两个方法:getContentPane 和 setContentPane 就是用于获取和设置其 Content Pane

18、的。通常我们不需要重新设置 JFrame 的 Content Pane,只需要直接获取默认的 Content Pane 来添加组件等。如:101 (new JFrame().getContentPane().add(new Button(test button) 按钮就是按钮,不会连按钮都不知道吧?切换按钮,有两种状态的按钮,即按下状态和弹起状态,若称为选择状态或未选择状态。复选按钮,又叫复选框,用一个小方框中是否打勾来表示两种状态。单选按钮,又叫收音机按钮,以小圆框打点表示被选中。常成组出现,一组单选按钮中只有一个能被选中。发现什么了吗?对了,这一部分是在讲各种各样的按钮,而且后三种按钮都有

19、两种状态。先看看这些按钮都长成什么样:上图中,从上到下,依次就是按钮、切换按钮、复选按钮和单选按钮。图示的窗口,就是下面这个例子的运行结果:102 /* 103 * TestButtons.java 104 * author Fancy 105 */ 106 107 import java.awt.event.ActionEvent;108 import java.awt.event.ActionListener;109 import java.awt.event.ItemEvent;110 import java.awt.event.ItemListener;111 112 import j

20、avax.swing.ButtonGroup;113 import javax.swing.JButton;114 import javax.swing.JCheckBox;115 import javax.swing.JFrame;116 import javax.swing.JLabel;117 import javax.swing.JRadioButton;118 import javax.swing.JToggleButton;119 120 public final class TestButtons 121 122 public static void main(String ar

21、gs) 123 TestButtons tb = new TestButtons();124 tb.show();125 126 127 JFrame frame = new JFrame(Test Buttons128 129 JButton jButton = new JButton(JButton / 按钮 130 131 JToggleButton toggle = new JToggleButton(Toggle Button / 切换按钮 132 133 JCheckBox checkBox = new JCheckBox(Check Box / 复选按钮 134 135 JRad

22、ioButton radio1 = new JRadioButton(Radio Button 1 / 单选按钮 136 137 JRadioButton radio2 = new JRadioButton(Radio Button 2138 139 JRadioButton radio3 = new JRadioButton(Radio Button 3140 141 JLabel label = new JLabel(Here is Status, look here. / 不是按钮,是静态文本 142 143 public TestButtons() 144 frame.setDefau

23、ltCloseOperation(JFrame.EXIT_ON_CLOSE);145 frame.getContentPane().setLayout(new java.awt.FlowLayout();146 147 / 为一般按钮添加动作监听器 148 jButton.addActionListener(new ActionListener() 149 public void actionPerformed(ActionEvent ae) 150 label.setText(You clicked jButton151 152 );153 154 / 为切换按钮添加动作监听器 155 to

24、ggle.addActionListener(new ActionListener() 156 public void actionPerformed(ActionEvent ae) 157 JToggleButton toggle = (JToggleButton) ae.getSource();158 if (toggle.isSelected() 159 label.setText(You selected Toggle Button160 else 161 label.setText(You deselected Toggle Button162 163 164 );165 166 /

25、 为复选按钮添加条目监听器 167 checkBox.addItemListener(new ItemListener() 168 public void itemStateChanged(ItemEvent e) 169 JCheckBox cb = (JCheckBox) e.getSource();170 label.setText(Selected Check Box is + cb.isSelected();171 172 );173 174 / 用一个按钮组对象包容一组单选按钮 175 ButtonGroup group = new ButtonGroup();176 / 生成一个

26、新的动作监听器对象,备用 177 ActionListener al = new ActionListener() 178 public void actionPerformed(ActionEvent ae) 179 JRadioButton radio = (JRadioButton) ae.getSource();180 if (radio = radio1) 181 label.setText(You selected Radio Button 1182 else if (radio = radio2) 183 label.setText(You selected Radio Button 2184 else 185 label.setText(You selected Radio Button 3186 187 188 ;189 / 为各单选按钮添加动作监听器 190 radio1.addActionListener(al);191 radio2.addActionListener(al);192 radio3.addActionListener(al);193 / 将单选按钮添

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1