1、Java程序设计分析一、引言 1.1实验目的1.掌握图形用户界面程序的界面设计。2.掌握布局管理器的使用。3.掌握事件处理的原理。 1.2实验内容1.设计一个图形界面(GUI)的记事本应用程序。(1)提供菜单选择功能,菜单项设计如下图所示。(2)利用文件选择对话框选择要编辑的文件,编辑完成后进行保存。(3)提高(选做):在基本功能基础上增加文字格式的设置功能。(4)提高(选做):为菜单项设计工具栏。1.3 开发工具介绍Eclipse是一种可扩展的开放源代码IDE。2001年11月,IBM公司捐出价值4,000万美元的源代码组建了Eclipse联盟,并由该联盟负责这种工具的后续开发。集成开发环境
2、(IDE)经常将其应用范围限定在“开发、构建和调试”的周期之中。为了帮助集成开发环境(IDE)克服目前的局限性,业界厂商合作创建了Eclipse平台。Eclipse允许在同一IDE中集成来自不同供应商的工具,并实现了工具之间的互操作性,从而显著改变了项目工作流程,使开发者可以专注在实际的嵌入式目标上。利用Eclipse,我们可以将高级设计(也许是采用UML)与低级开发工具(如应用调试器等)结合在一起。如果这些互相补充的独立工具采用Eclipse扩展点彼此连接,那么当我们用调试器逐一检查应用时,UML对话框可以突出显示我们正在关注的器件。事实上,由于Eclipse并不了解开发语言,所以无论Jav
3、a语言调试器、C/C+调试器还是汇编调试器都是有效的,并可以在相同的框架内同时瞄准不同的进程或节点。 Eclipse的最大特点是它能接受由Java开发者自己编写的开放源代码插件,这类似微软公司的Visual Studio和Sun 微系统公司的NetBeans平台。Eclipse为工具开发商提供了更好的灵活性,使他们能更好地控制自己的软件技术。Eclipse 联盟已经宣布将在2004年中期发布其3.0版软件。这是一款非常受欢迎的java开发工具,这国内的用户越来越多,实际上实用它java开发人员是最多的。缺点就是较复杂,对初学者来说,理解起来较困难。二、总体设计2.1 系统开发平台Java(OR
4、ACLE) 版本 1.8.0_66-b182.2 系统流程图2.3 功能结构图三、详细说明3.1 系统实施 设计两个类,一个mynotepad类,再创建一个Notebad类,然后进行代码输入,就可以直接在编译器中运行程序。1:界面设计在主界面中设计一个Frame容器,并在其中加入一个下拉菜单和一个文本域控件。 2:功能设计在下拉菜单中加入子菜单,分别实现对文件的操作功能。点击不同菜单项时,显示不同界面。 3:代码设计编写每个控件的相关代码,并进行调试。四、系统的调试和运行五、设计总结六、参考文献附录(源程序代码)import java.awt.*;import java.awt.event.*
5、;import javax.swing.*;import java.io.*;class mynotepad extends JFrame File file=null; Color color=Color.red; mynotepad() initTextContent(); initMenu(); initAboutDialog(); void initTextContent() getContentPane().add(new JScrollPane(content); JTextPane content=new JTextPane(); JFileChooser openfile=ne
6、w JFileChooser(); JColorChooser opencolor=new JColorChooser(); JDialog about=new JDialog(this); JMenuBar menu=new JMenuBar(); JMenu menus=new JMenu new JMenu(文件), new JMenu(编辑), new JMenu(关于) ; JMenuItem optionofmenu=new JMenuItem new JMenuItem(新建), new JMenuItem(打开), new JMenuItem(保存), new JMenuIte
7、m(退出) , new JMenuItem(复制), new JMenuItem(剪切), new JMenuItem(粘贴), new JMenuItem(颜色) , new JMenuItem(关于) ; void initMenu() for(int i=0;imenus.length;i+) menu.add(menusi); for(int j=0;joptionofmenui.length;j+) menusi.add(optionofmenuij); optionofmenuij.addActionListener( action ); this.setJMenuBar(menu
8、); ActionListener action=new ActionListener() public void actionPerformed(ActionEvent e) String name = e.getActionCommand(); JMenuItem MI=(JMenuItem)e.getSource(); if(新建.equals(name) content.setText(); file=null; else if(打开.equals(name) if(file !=null)openfile.setSelectedFile(file); int returnVal=op
9、enfile.showOpenDialog(mynotepad.this); if(returnVal=JFileChooser.APPROVE_OPTION) file=openfile.getSelectedFile(); unfold(); else if(保存.equals(name) if(file!=null) openfile.setSelectedFile(file); int returnVal=openfile.showSaveDialog(mynotepad.this); if(returnVal=JFileChooser.APPROVE_OPTION) file=ope
10、nfile.getSelectedFile(); saving(); else if(退出.equals(name) mynotepad f=new mynotepad(); int s=JOptionPane.showConfirmDialog(f,退出?,退出,JOptionPane.YES_NO_OPTION); if(s=JOptionPane.YES_OPTION) System.exit(0); else if(剪切.equals(name) content.cut(); else if(复制.equals(name) content.copy(); else if(粘贴.equa
11、ls(name) content.paste(); else if(颜色.equals(name) color=JColorChooser.showDialog(mynotepad.this,color); content.setForeground(color); else if(关于.equals(name) about.setSize(300,150); about.show(); ; void saving() try FileWriter Writef=new FileWriter(file); Writef.write(content.getText(); Writef.close
12、(); catch(Exception e)e.printStackTrace(); void unfold() try FileReader Readf=new FileReader(file); int len=(int)file.length(); char buffer=new charlen; Readf.read(buffer,0,len); Readf.close(); content.setText(new String(buffer); catch(Exception e)e.printStackTrace(); void initAboutDialog() about.se
13、tLayout(new GridLayout(3,1); about.getContentPane().setBackground(Color.white); about.getContentPane().add(new JLabel(我的记事本程序); about.getContentPane().add(new JLabel(制作者:liuhui); about.getContentPane().add(new JLabel(2010年6月); about.setModal(true); about.setSize(100,100); about.setLocation(250,170); ; public class Notepad public static void main(String args) mynotepad noted=new mynotepad(); noted.addWindowListener(new WindowAdapter() ); noted.setTitle(我的记事本程序); noted.setSize(640,320); noted.show(); noted.setLocation(150,100);
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1