Java JDK 6学习笔记 教学课件 ppt 作者 978-7-302-14995-8第19章

上传人:w****i 文档编号:94405835 上传时间:2019-08-06 格式:PPT 页数:48 大小:506.50KB
返回 下载 相关 举报
Java JDK 6学习笔记 教学课件 ppt 作者 978-7-302-14995-8第19章_第1页
第1页 / 共48页
Java JDK 6学习笔记 教学课件 ppt 作者 978-7-302-14995-8第19章_第2页
第2页 / 共48页
Java JDK 6学习笔记 教学课件 ppt 作者 978-7-302-14995-8第19章_第3页
第3页 / 共48页
Java JDK 6学习笔记 教学课件 ppt 作者 978-7-302-14995-8第19章_第4页
第4页 / 共48页
Java JDK 6学习笔记 教学课件 ppt 作者 978-7-302-14995-8第19章_第5页
第5页 / 共48页
点击查看更多>>
资源描述

《Java JDK 6学习笔记 教学课件 ppt 作者 978-7-302-14995-8第19章》由会员分享,可在线阅读,更多相关《Java JDK 6学习笔记 教学课件 ppt 作者 978-7-302-14995-8第19章(48页珍藏版)》请在金锄头文库上搜索。

1、第19章,文本编辑器 产品生命周期 Swing入门 事件处理 文字编辑与储存 ExecutableJar的制作,分析(Analysis),具备窗口接口,分析(Analysis),分析(Analysis),分析(Analysis),档案的开启与储存 开启旧档 储存档案 另存新檔 离开应用程序 编辑文字 剪下 复制 贴上,设计(Design),开始为应用程序规划蓝图 根据需求将应用程序切割出许多模块 设计出需求中所发掘出来的对象 为这些对象设计出交互行为,以完成应用程序所必须达成的功能 还不会考虑到该使用何种语言与技术,开发(Development),决定使用何种语言及技术来开发应用程序 运用Ja

2、vaSE技术来开发文本编辑器 使用Swing窗口组件来开发,测试(Testing),将完成的应用程序进行测试 验收其是否完成所期许的需求 程序中是否存在臭虫(Bug) 效能方面等的问题,完成(Implementation),交付程序给客户 产品上线 交给教授打分数XD,维护(Maintenance),程序臭虫 需求改变 需求增加 效能、安全问题 ,结束生命周期(End-of-life,EOL),产品不再符合使用的效益 版本更迭而造成应用程序不再适合,Swing简介,Component继承体系,java.awt.Component java.awt.Container java.awt.Pane

3、l java.applet.Applet java.awt.Window java.awt.Dialog java.awt.Frame java.awt.Button java.awt.Checkbox java.awt.Label java.awt.List java.awt.TextComponent java.awt.MenuComponent java.awt.MenuBar java.awt.MennItem java.awt.Menu,Swing简介,Swing继承体系,java.awt.Component java.awt.Container javax.swing.JCompo

4、nent javax.swing.JPanel javax.swing.JTextComponent java.awt.Window javax.swing.JWindow java.awt.Dialog javax.swing.JDialog java.awt.Frame javax.swing.JFrame,设计主窗口与选单列,import javax.swing.JFrame; public class JNotePadUI extends JFrame public JNotePadUI() super(“新增文本文件“); setUpUIComponent(); setUpEvent

5、Listener(); setVisible(true); private void setUpUIComponent() setSize(640, 480); private void setUpEventListener() setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); public static void main(String args) new JNotePadUI(); ,设计主窗口与选单列,设计主窗口与选单列,选单列,java.awt.Component java.awt.Container javax.swing.JCompon

6、ent javax.swing.JMenuBar javax.swing.AbstractButton javax.swing.JMenuItem javax.swing.JMenu,设计主窗口与选单列,建立选单列、选单与选单项目,/选单列 JMenuBar menuBar = new JMenuBar() /选单; JMenu fileMenu = new JMenu(“檔案“); /选单项目 JMenuItem menuOpen = new JMenuItem(“开启旧档“); /在JMenu中加入JMenuItem fileMenu.add(menuOpen) /将JMenu加入JMen

7、uBar; menuBar.add(fileMenu); /使用JFrame的setMenuBar设置选单列 setMenuBar(menuBar);,设计主窗口与选单列,快捷键的设置 加入分隔线,menuOpen.setAccelerator( KeyStroke.getKeyStroke(KeyEvent.VK_O, InputEvent.CTRL_MASK);,fileMenu.addSeparator();,设计主窗口与选单列,版面管理,在Container中的组件的位置跟大小是由版面管理员(Layoutmanager)来决定 当Container需要决定它当中的组件的大小或位置时,就

8、会呼叫版面管理员来为其执行,版面管理,结合JTextArea、JScrollPane以建立文字编辑区域,JTextArea textArea = new JTextArea(); textArea.setFont(new Font(“细明体“, Font.PLAIN, 16); textArea.setLineWrap(true); JScrollPane panel = new JScrollPane(textArea, ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED, ScrollPaneConstants.HORIZONTAL_SCROL

9、LBAR_NEVER);,版面管理,Swing窗口包括了几个层次 RootPane LayoutPane ContentPane MenuBar GlassPane 最深层的是RootPane,最上层的是GlassPane,版面管理,在JFrame中要取得ContentPane,可以使用继承下来的getContentPane()方法,Container contentPane = getContentPane(); contentPane.add(panel,BorderLayout.CENTER);,版面管理,制作JLabel并加入至ContentPane中,/状态栏 JLabel stat

10、eBar = new JLabel(“未修改“); stateBar.setHorizontalAlignment(SwingConstants.LEFT); stateBar.setBorder( BorderFactory.createEtchedBorder(); contentPane.add(stateBar, BorderLayout.SOUTH);,版面管理,Java事件模型,委托事件模型(Delegation eventmodel) 组件会将事件传播至每一个事件倾听者(Eventlistener) 事件倾听者中定义了与不同事件相对应的事件处理者(Eventhandler) 事件

11、发生时是委托事件处理者进行处理,事件处理者与组件的设计可以分别独立,Java事件模型,事件倾听者都实作了java.util.EventListener界面 标示接口(Markerinterface) 相应的事件倾听者主要位于java.awt.event与javax.swing.event套件之下 EventListener的子界面,文本编辑器的事件处理,选单项目被按下时的事件处理,/开启旧文件选单项目的事件处理 menuOpen.addActionListener( new ActionListener() public void actionPerformed(ActionEvent e)

12、openFile(); );,文本编辑器的事件处理,JTextArea的事件方面 也可以继承java.awt.event.KeyAdapter,package java.awt.event; public interface KeyListener public void keyPressed(KeyEvent e) public void keyReleased(KeyEvent e) public void keyTyped(KeyEvent e) ,文本编辑器的事件处理,使用JTextArea的addKeyListener()方法加入事件倾听者,/编辑区键盘事件 textArea.add

13、KeyListener( new KeyAdapter() public void keyTyped(KeyEvent e) processTextArea(); );,文本编辑器的事件处理,鼠标事件倾听者是实作java.awt.event.MouseListener界面 可以继承java.awt.event.MouseAdapter,/编辑区鼠标事件 textArea.addMouseListener( new MouseAdapter() public void mouseReleased(MouseEvent e) if(e.getButton() = MouseEvent.BUTTON

14、3) popUpMenu.show(editMenu, e.getX(), e.getY(); public void mouseClicked(MouseEvent e) if(e.getButton() = MouseEvent.BUTTON1) popUpMenu.setVisible(false); );,文本编辑器的事件处理,popUpMenu参考至javax.swing.JPopupMenu的实例 按下窗口右上角的X按钮,JPopupMenu popUpMenu = editMenu.getPopupMenu();,/按下窗口关闭钮事件处理 addWindowListener( n

15、ew WindowAdapter() public void windowClosing(WindowEvent e) closeFile(); );,文本编辑器的事件处理,开启档案的流程处理,private void openFile() if(isCurrentFileSaved() /文件是否为储存状态 open(); /开启旧档 else /显示对话框 int option = JOptionPane.showConfirmDialog( null,“档案已修改,是否储存?“, “储存档案?“, JOptionPane.YES_NO_OPTION, JOptionPane.WARNIN

16、G_MESSAGE, null); switch(option) /确认档案储存 case JOptionPane.YES_OPTION: saveFile(); /储存档案 break; /放弃档案储存 case JOptionPane.NO_OPTION: open(); break; ,开启档案的流程处理,在判断档案是否储存的方法上,主要是根据状态栏来进行判断,private boolean isCurrentFileSaved() if(stateBar.getText().equals(“未修改“) return false; else return true; ,开启档案的流程处理,开启档案时则是使用javax.swing.JFileChooser来显示档案选取的对话框,private void open() / fileChooser是JFile

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号