2.1 使用常用组件_第1页
2.1 使用常用组件_第2页
2.1 使用常用组件_第3页
2.1 使用常用组件_第4页
2.1 使用常用组件_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Java程序设计2 1使用常用组件 主讲教师 董婷 一 知识能力目标 掌握GUI基本概念 掌握常用组件的属性和方法 灵活使用事件监听及ActionEvent类和WindowEvent类处理 编写能处理单击 窗口关闭等事件的简单GUI的程序 JFrame JLabel JButton JTextField JTextArea 二 项目10求方程的根 求一元二次方程的根 1 程序代码 Formula javaimportjava awt importjava awt event importjavax swing publicclassFormulaextendsJFrameimplementsActionListener JTextFielda tf b tf c tf 定义三个文本框JTextArearesult tf JLabellb a lb b lb c doublea b c doublex1 x2 JButtoncalculate clear JPanelp publicFormula 构造方法super 求一元二次方程的根 Containerc getContentPane 获得内容窗格a tf newJTextField 2 创建输入二次项系数a的文本框b tf newJTextField 2 创建输入一次项系数b的文本框c tf newJTextField 2 创建输入常数项系数c的文本框lb a newJLabel 二次项系数 创建标签lb b newJLabel 一次项系数 lb c newJLabel 常数项系数 calculate newJButton 计算 创建显示 计算 的按钮clear newJButton 清除 创建显示 清除 的按钮result tf newJTextArea 5 30 创建显示结果的文本区c setLayout newFlowLayout 设置内容窗格为流式布局管理器c add lb a 往内容窗格中添加标签lb ac add a tf c add lb b c add b tf c add lb c c add c tf c add calculate c add clear c add result tf calculate addActionListener this 按钮注册事件监听器clear addActionListener this setSize 350 200 设置窗口大小setLocation 200 200 设置窗口位置setVisible true 显示窗口setDefaultCloseOperation JFrame EXIT ON CLOSE setDefaultLookAndFeelDecorated true publicvoidactionPerformed ActionEvente 实现监听器方法if e getSource calculate a Double parseDouble a tf getText b Double parseDouble b tf getText c Double parseDouble c tf getText if b b 4 a c 0 x1 b Math sqrt b b a c 4 2 计算第一个根x2 b Math sqrt b b a c 4 2 计算第二个根result tf setText x1 x1 n x2 x2 elseJOptionPane showMessageDialog this getContentPane a b c输入的数值错误 else result tf setText a tf setText b tf setText c tf setText publicstaticvoidmain String args Formulafm newFormula 创建主类实例 2 相关知识AWT和Swing 图形用户界面 GUI 可以通过键盘或鼠标来响应用户的操作AWT和SwingSwing是由纯Java实现的 在不同的平台上表现一致 并且有能力提供本地窗口系统不支持的其他特性 Swing采用MVC Model View Controller 的设计范式 即 模型 视图 控制 其中模型用来保存内容 视图用来显示内容 控制器用来控制用户输入Swing采用可插入的外观感觉PL F PluggableLookandFeel 允许用户选择自己喜欢的界面风格Swing组件都以J开头Swing的包是javax swing AWT的包是java awt Swing组件的体系结构 Swing组件从功能上可分为 顶层容器 JFrame JApplet JDialog Window共4个 中间容器 JPanel JScrollPane JSplitPane JToolBar 特殊容器 在GUI上起特殊作用的中间层 基本控件 实现人机交互的组件 不可编辑组件 向用户显示不可编辑信息的组件 可编辑组件 向用户显示能被编辑的格式化信息的组件 什么是容器 什么是顶层容器 顶层容器 必不可少 中间层容器 向容器中添加组件 容器用来组织其他图形界面元素的最基础的单元内部可以包含组件或另一个容器 除了JPanel外 容器中的组件根据特定的布局排列都是Container类的子类 两种方式添加组件 用getContentPane 方法获得容器的内容窗格 再对其添加组件 如 容器 getContentPane add 组件 建立一个JPanel或JDesktopPane之类的中间容器 把组件添加到容器中 再用setContentPane 方法把该容器替换为内容窗格 如 JPanelContentPane newJPanel ContentPane add 组件 容器 setContentPane ContentPane JPanel及其子类 如JApplet 可以直接添加组件 框架窗口 单行文本框 JTextField 单行文本框 JTextField 多行文本框 JTextArea 多行文本框 JTextArea 按钮 JButton 按钮 JButton 三 项目11英语单词拼写训练 英语单词拼写训练的界面 1 程序代码 importjava awt importjava awt event importjavax swing RondomString类classRondomString Stringstr publicStringgetRondomString Strings StringBufferstrBuffer newStringBuffer s intm strBuffer length for intk 0 k m k intindex int Math random strBuffer length charc strBuffer charAt index str str c strBuffer strBuffer deleteCharAt index returnstr classLetterLabelextendsButtonimplementsFocusListener MouseListener 按钮获得 失去焦点时改变背 景色LetterLabel addFocusListener this 将当前对象注册为自身的焦点视器addMouseListener this 将当前对象注册为自身的标监视器setBackground Color cyan 设置背景颜色为青色setFont newFont Font BOLD 30 publicstaticLetterLabel getLetterLabel intn LetterLabela newLetterLabel n for intk 0 k a length k a k newLetterLabel returna publicvoidfocusGained FocusEvente setBackground Color red publicvoidfocusLost FocusEvente setBackground Color cyan publicvoidmousePressed MouseEvente requestFocus publicvoidsetText Stringstring setLabel string publicvoidmouseReleased MouseEvente publicvoidmouseEntered MouseEvente publicvoidmouseExited MouseEvente publicvoidmouseClicked MouseEvente classSpellingWordFrameextendsJFrameimplementsKeyListener ActionListener 选择字母JTextFieldinputWord JButtonbutton LetterLabellabel JPanelnorthP centerP BoxwordBox StringhintMessage 用鼠标单击字母 按左右方向箭交换字母 将其排成所输入的单词 JLabelmessaageLabel newJLabel hintMessage Stringword SpellingWordFrame inputWord newJTextField 12 创建文本框button newJButton 确定 创建按钮button addActionListener this 按钮注册监听器inputWord addActionListener this 输入文本框注册监听器northP newJPanel northP add newJLabel 请输入一个英文单词 northP add inputWord northP add button centerP newJPanel wordBox Box createHorizontalBox centerP add wordBox add northP BorderLayout NORTH add centerP BorderLayout CENTER add messaageLabel BorderLayout SOUTH setBounds 100 100 400 200 setVisible true validate addWindowListener newWindowAdapter publicvoidwindowClosing WindowEvente System exit 0 publicvoidactionPerformed ActionEvente word inputWord getText intn word length RondomStringrondom newRondomString StringrandomWord rondom getRondomString word wordBox removeAll messaageLabel setText hintMessage if n 0 label LetterLabel getLetterLabel n for intk 0 k label length k label k addKeyListener this 将当前窗口注册为label k 的键盘监视器label k setText randomWord charAt k wordBox add label k validate inputWord setText null label 0 requestFocus publicvoidkeyPressed KeyEvente 按键事件方法LetterLabelsourceLabel LetterLabel e getSource intindex 1 if e getKeyCode KeyEvent VK LEFT 判断按下的是否是 键 for intk 0 k label length k if label k sourceLabel index k break if index 0 Stringtemp label index getLabel label index setText label index 1 getLabel label index 1 setText temp label index 1 requestFocus elseif e getKeyCode KeyEvent VK RIGHT 判断按下的是否是 键for intk 0 k label length k if label k sourceLabel index k break if index label length 1 Stringtemp label index getLabel label index setText label index 1 getLabel label index 1 setText temp label index 1 requestFocus validate publicvoidkeyTyped KeyEvente publicvoidkeyReleased KeyEvente Stringsuccess for intk 0 k label length k Stringstr label k getLabel success success str if success equals word messaageLabel setText 恭喜你 你成功了 for intk 0 k label length k label k removeKeyListener this label k removeFocusListener label k label k setBackground Color green inputWord requestFocus publicclassWordMainClass publicstaticvoidmain Stringargs newSpellingWordFrame 3 相关知识面板 JPanel 面板 JPanel 事件处理 委托事件模型 DelegationEventModel 处理用户触发的事件只需要关心特定的事件Java事件的处理步骤为 选择事件监听器不一定是包容事件源的容器对象 只要一个对象实现了事件监听器接口就能成为事件监听器程序中的事件处理代码与GUI代码分离 有利于优化程序结构 将事件监听器注册编写事件处理的程序代码在处理事件的方法里可以根据不同的事件源编写不同的处理程序 事件的分类 对于每个事件都有一个EventSource 事件源 是GUI组件 JavaBean或由生成事件能力的对象 及相对应的EventListener 事件监听器 几种常用的事件如下 ActionEvent 是发生在单击按钮 选中一个复选框或按下Enter等事件时触发 ActionEvent事件的监听器必须实现ActionListener接口中的actionPerformed 方法 ItemEvent 是用在

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论