Microsoft Word - Java程序设计全文_终_.doc

Similar documents
Swing-02.pdf

1: public class MyOutputStream implements AutoCloseable { 3: public void close() throws IOException { 4: throw new IOException(); 5: } 6:

epub83-1

chp6.ppt


JavaIO.PDF

1.JasperReport ireport JasperReport ireport JDK JDK JDK JDK ant ant...6

EJB-Programming-4-cn.doc

内 容 提 要 将 JAVA 开 发 环 境 迁 移 到 Linux 系 统 上 是 现 在 很 多 公 司 的 现 实 想 法, 而 在 Linux 上 配 置 JAVA 开 发 环 境 是 步 入 Linux 下 JAVA 程 序 开 发 的 第 一 步, 本 文 图 文 并 茂 地 全 程 指

附录J:Eclipse教程

SDK 概要 使用 Maven 的用户可以从 Maven 库中搜索 "odps-sdk" 获取不同版本的 Java SDK: 包名 odps-sdk-core odps-sdk-commons odps-sdk-udf odps-sdk-mapred odps-sdk-graph 描述 ODPS 基

Oracle Solaris Studio makefile C C++ Fortran IDE Solaris Linux C/C++/Fortran IDE "Project Properties" IDE makefile 1.

Java

Learning Java

KillTest 质量更高 服务更好 学习资料 半年免费更新服务

Oracle Oracle Solaris Studio IDE makefile C C++ Fortran makefile IDE Solaris Linux C/C++/Fortran Oracle IDE "P

Java 1 Java String Date

untitled

mvc

目 錄 版 次 變 更 記 錄... 2 原 始 程 式 碼 類 型 之 使 用 手 冊... 3 一 安 裝 軟 體 套 件 事 前 準 備... 3 二 編 譯 流 程 說 明

麻 省 理 工 學 院 是 在 西 元 2013 年 12 月 3 日 推 出 MIT App Inventor 2 網 站, 提 供 免 費 的 雲 端 服 務, 使 用 者 可 以 透 過 瀏 覽 器 來 開 發 Android 裝 置 應 用 程 式, 該 網 站 的 網 址 為 : http

untitled

雲端 Cloud Computing 技術指南 運算 應用 平台與架構 10/04/15 11:55:46 INFO 10/04/15 11:55:53 INFO 10/04/15 11:55:56 INFO 10/04/15 11:56:05 INFO 10/04/15 11:56:07 INFO

錄...1 說...2 說 說...5 六 率 POST PAY PREPAY DEPOSIT 更

《大话设计模式》第一章

使用MapReduce读取XML文件

詞 彙 表 編 號 詞 彙 描 述 1 預 約 人 資 料 中 文 姓 名 英 文 姓 名 身 份 證 字 號 預 約 人 電 話 性 別 2 付 款 資 料 信 用 卡 別 信 用 卡 號 信 用 卡 有 效 日 期 3 住 房 條 件 入 住 日 期 退 房 日 期 人 數 房 間 數 量 入

Microsoft Word - ch04三校.doc

Microsoft Word - 苹果脚本跟我学.doc

影視後製全攻略 Premiere Pro After Effects Encore 自序 Adobe Premiere Pro After Effects Encore 2008 Adobe CS Adobe CS5 Adobe CS4 Premiere Pro After Effect

Microsoft Word - 01.DOC

java2d-4.PDF

(TestFailure) JUnit Framework AssertionFailedError JUnit Composite TestSuite Test TestSuite run() run() JUnit

基于CDIO一体化理念的课程教学大纲设计

<4D F736F F F696E74202D20332D322E432B2BC3E6CFF2B6D4CFF3B3CCD0F2C9E8BCC6A1AAD6D8D4D8A1A2BCCCB3D0A1A2B6E0CCACBACDBEDBBACF2E707074>

EK-STM32F

Chapter 9: Objects and Classes

全国计算机技术与软件专业技术资格(水平)考试

基于UML建模的管理管理信息系统项目案例导航——VB篇

AL-M200 Series

Java java.lang.math Java Java.util.Random : ArithmeticException int zero = 0; try { int i= 72 / zero ; }catch (ArithmeticException e ) { // } 0,

NEXT SDT2.51 C:\ARM251 SDT2.51 ARM SDT 2.51 ARM PROJECT MANAGER SDT 2

ebook

概述

INTRODUCTION TO COM.DOC

内 容 简 介 本 书 是 一 本 关 于 语 言 程 序 设 计 的 教 材, 涵 盖 了 语 言 的 基 本 语 法 和 编 程 技 术, 其 中 包 含 了 作 者 对 语 言 多 年 开 发 经 验 的 总 结, 目 的 是 让 初 学 的 读 者 感 受 到 语 言 的 魅 力, 并 掌

ebook70-19

Visual Basic D 3D

Fun Time (1) What happens in memory? 1 i n t i ; 2 s h o r t j ; 3 double k ; 4 char c = a ; 5 i = 3; j = 2; 6 k = i j ; H.-T. Lin (NTU CSIE) Referenc

9, : Java 19., [4 ]. 3 Apla2Java Apla PAR,Apla2Java Apla Java.,Apla,,, 1. 1 Apla Apla A[J ] Get elem (set A) A J A B Intersection(set A,set B) A B A B

audiogram3 Owners Manual

Microsoft Word - Broker.doc

1 1 大概思路 创建 WebAPI 创建 CrossMainController 并编写 Nuget 安装 microsoft.aspnet.webapi.cors 跨域设置路由 编写 Jquery EasyUI 界面 运行效果 2 创建 WebAPI 创建 WebAPI, 新建 -> 项目 ->

Windows 2000 Server for T100

一 登录 crm Mobile 系统 : 输入 ShijiCare 用户名和密码, 登录系统, 如图所示 : 第 2 页共 32 页

untitled

Hive:用Java代码通过JDBC连接Hiveserver

PPBSalesDB.doc

输入 project name 选择完成

1 Framework.NET Framework Microsoft Windows.NET Framework.NET Framework NOTE.NET NET Framework.NET Framework 2.0 ( 3 ).NET Framework 2.0.NET F

WinMDI 28

f2.eps

FileMaker 16 ODBC 和 JDBC 指南

任務二 : 產生 20 個有炸彈的磚塊, 放在隨機的位置編輯 Block 類別的程式碼 import greenfoot.; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) Write a description of class

新版 明解C++入門編

三种方法实现Hadoop(MapReduce)全局排序(1)

无类继承.key

1. 2. Flex Adobe 3.

威 福 髮 藝 店 桃 園 市 蘆 竹 區 中 山 里 福 祿 一 街 48 號 地 下 一 樓 50,000 獨 資 李 依 純 105/04/06 府 經 登 字 第 號 宏 品 餐 飲 桃 園 市 桃 園 區 信 光 里 民

VB程序设计教程

手册 doc

ICD ICD ICD ICD ICD

IoC容器和Dependency Injection模式.doc

Text 文字输入功能 , 使用者可自行定义文字 高度, 旋转角度 , 行距 , 字间距离 和 倾斜角度。

untitled

RUN_PC連載_12_.doc

1 Project New Project 1 2 Windows 1 3 N C test Windows uv2 KEIL uvision2 1 2 New Project Ateml AT89C AT89C51 3 KEIL Demo C C File

软件工程文档编制

Transcription:

实训 20 综合开发 2: 文本编辑器 20.1 实训目的 通过采用 Netbeans 重新开发并完善实训 15 中的文本编辑器程序, 训练读者掌握使用 Netbeans 进行 AWT GUI 程序的综合开发技能 20.2 实训案例 下面介绍如何采用 Netbeans 重新开发并完善实训 15 中的文本编辑器程序 通过本实训, 读者能够掌握 : (1)GUI 的菜单设计 (2)GUI 国际化处理 (3)GUI 对话框的使用 (4) 剪贴板的使用 (5)TextArea 组件的使用 (6) 熟悉 Netbeans 的 GUI Builder(GUI 生成器 ) 的使用 下面的操作步骤在附带光盘中有 Flash 录像, 请读者参考 20.2.1 第一步 : 新建项目要求项目名称为 MyEditor, 不创建主类, 其余同实训 19 中的创建项目步骤 20.2.2 第二步 : 新建窗体 Frame 要求类名为 EditorUI, 包名为 ui 20.2.3 第三步 : 添加菜单栏并设置国际化 (1) 单击选中 Palette AWT 中的 Menu Bar 组件 (2) 移动鼠标到 GUI 设计区, 单击, 添加菜单栏, 菜单栏上自动添加菜单 File 和 Edit (3) 右击 Netbeans 左下角 Inspector 中的 Form EditorUI, 弹出快捷菜单, 选择 Properties 命令, 弹出窗体属性对话框, 勾选 Automatic Internationalization 复选框, 如图 20.1 所示 这时在 Projects 窗格的 ui 源代码包下面创建了 Bundle.properties 文件 (4) 注意到 Automatic Internationalization 属性下面还有两个属性 :Properties Bundle File 和 Design Locale, 这里采用 default language (5) 单击 Close 按钮 这样后面菜单的 Label 会自动被国际化处理 (6) 在 GUI 设计器中, 选择 File, 右击, 在快捷菜单中选择 Add MenuItem 命令 这样

实训 20 综合开发 2: 文本编辑器 127 就添加了菜单项 menuitem1 图 20.1 设置自动国际化 (7) 在 Inspector 窗格中, 右击, 选择 Change Variable Name, 弹出对话框, 设置名字为 filenew (8) 在右边的 Properties 窗格中, 修改属性 label 的值为 File (9) 重复上面添加 filenew 菜单项的步骤, 在分别为 File 菜单添加菜单项 :fileopen(label 为 Open) filesave(label 为 Save) filesave2(label 为 Save as...) 菜单项分隔线 fileexit(label 为 Exit) 为 Edit 菜单添加菜单项 : editcopy(label 为 Copy) editpaste(label 为 Paste) (10) 预览一下 GUI 界面, 看看效果满意否 若满意则继续进行下面的步骤 20.2.4 第四步 : 添加菜单项事件处理 (1) 在 Inspector 窗格中选择 filenew 菜单项, 按 Enter 键或者双击, 在 Netbeans 自动添 加该菜单项的事件处理, 并切换到事件处理的代码处, 等待开发人员完善事件处理方法 (2) 找到实训 15 中计算器程序 (NoteBook.java) 的 新建 菜单项事件处理方法, 把 其代码复制过来 代码如下 : ta.settext(""); title = newtitle; form.settitle(newtitle); path = null; (3) 复制过来的代码中有 ta 变量, 这是 TextArea 组件变量, 因此需要添加该组件 (4) 切换到 GUI 设计器窗口, 从 Palette 的 AWT 中选择 Text Field 组件, 并添加到 Form

128 Java 程序设计实训 的中心位置 然后修改其变量名为 ta (5) 把 NoteBook.java 中的 title newtitle path 私有属性也复制过来 (6) 改上面代码中的 form 为 this (7) 重复上面的步骤, 把 File 菜单下的其他菜单项的事件处理代码都一一复制过来, 并 作相应的调整 (8) 加入 Edit 菜单的 editcopy 菜单项的事件处理代码, 如下 : String text = ta.getselectedtext(); StringSelection ss = new StringSelection(text); Toolkit.getDefaultToolkit().getSystemClipboard().setContents(ss, null); (9) 输入上面的代码后,Netbeans 代码编辑器的右侧会有许多红色的横线, 这说明代码 有错误, 实际上是 StringSelection Tool 等类所在的包没有被 import 进来 按 Ctrl+Shift+I 组 合键或者执行 Source Fix Imports 命令, 这样就会自动 import 进所有需要的包 (10) 若代码不美观, 则按 Alt+Shift+F 组合键或者执行 Source Format 命令, 会自动格 式化代码, 使其美观 (11) 重复上述操作步骤, 为 editpaste 菜单项加入事件处理代码, 如下 : Transferable t = Toolkit.getDefaultToolkit().getSystemClipboard(). getcontents(null); try { if (t!= null && t.isdataflavorsupported(dataflavor.stringflavor)) { // 只允许粘贴文本 String text = (String) t.gettransferdata(dataflavor.stringflavor); ta.replacerange(text, ta.getselectionstart(), ta.getselectionend()); } } catch (UnsupportedFlavorException e) { } catch (IOException e) { } (12) 保存所有文件 20.2.5 第五步 : 运行测试 按 F6 键运行该程序, 测试每个菜单项的事件处理是否正确, 若正确则继续下面的步骤 20.2.6 第六步 : 国际化资源 (1) 在 Inspector 窗格中, 在节点 Form EditorUI 上右击, 选择 Properties 命令, 弹出属性 对话框, 在最下面的 Design Locale 属性的右侧单击... 按钮, 弹出对话框, 在 Language Code 文本框中选择或者输入 zh, 在 Country Code 文本框中选择或者输入 CN, 单击 OK 按钮, 这样 就创建了中文 locale (2) 再创建英文 locale, 在 Language Code 文本框中输入 en, 在 Country Code 文本框中 输入 US (3) 这样就在 Projects 窗格的 ui 源包下面创建了两个新的空的文件 : Bundle_zh_

实训 20 综合开发 2: 文本编辑器 129 CN.properties 和 Bundle_en_US.properties (4) 右击 Bundle.properties Bundle_zh_CN.properties 和 Bundle_en_US.properties 中的任 意一个文件, 从弹出的菜单中选择 Open 命令, 把资源文件作对应翻译, 如图 20.2 所示 图 20.2 国际化资源翻译 (5) 从操作系统的资源管理器中使用文本编辑器打开 Bundle_zh_CN.properties, 会发现 其中的汉字已经被转换为 Unicode 表示 (6) 在 Form EditorUI 节点的属性窗口中, 选择最下面的 Design Locale 属性为 zh_cn, 单击 Close 按钮 (7) 在 GUI 设计器中菜单 Label 已经变为中文, 如果没有, 则右击 Inspector 窗格 Form EditorUI 节点, 选择 Reload Form 菜单项 (8) 单击 GUI 界面的 预览 按钮预览一下 (9) 重复上面的步骤, 选择 Design Locale 为 en_us, 则 GUI 设计器中的菜单 Label 变为 英文 可以单击 预览 按钮预览一下 (10) 执行 Run Set Project Configuration Customize 命令, 弹出对话框, 单击左侧的 Run 按钮, 在 VM Options 文框中输入 -Duser.language=zh -Duser.country=CN, 注意在 zh -Duser 中间有一个空格, 如图 20.3 所示 单击 OK 按钮 然后按 F6 键执行程序, 看看界面是否中文 化 然后再设置 -Duser.language=en -Duser.country=US, 按 F6 键, 看看界面是否英文化 20.2.7 第七步 : 打包发布 执行 Run Clean and Build Main Project 命令, 则自动把当前主项目打包为 MyEditor.jar, 并存放在项目中的 dist 文件夹下面 打开操作系统命令窗口, 进入 dist 目录, 分别执行如下 命令 : java -jar -Duser.language=zh -Duser.country=CN MyEditor.jar java -jar -Duser.language=en -Duser.country=US MyEditor.jar java -jar MyEditor.jar

130 Java 程序设计实训 第三条命令是采用 JVM 默认的 Locale, 即操作系统默认的 Locale 上面的命令是用于执行已经发布的程序的, 这样就脱离了 Netbeans IDE 开发集成环境 图 20.3 设置 JVM 运行参数 20.2.8 程序代码该实训程序的全部代码如下 : 1 /* 2 * EditorUI.java 3 * 4 * Created on Dec 19, 2009, 5:16:55 PM 5 */ 6 package ui; 7 8 import java.awt.borderlayout; 9 import java.awt.filedialog; 10 import java.awt.menu; 11 import java.awt.menubar; 12 import java.awt.menuitem; 13 import java.awt.textarea; 14 import java.awt.toolkit; 15 import java.awt.datatransfer.dataflavor; 16 import java.awt.datatransfer.stringselection; 17 import java.awt.datatransfer.transferable; 18 import java.awt.datatransfer.unsupportedflavorexception; 19 import java.awt.event.actionevent; 20 import java.awt.event.actionlistener; 21 import java.awt.event.windowadapter; 22 import java.awt.event.windowevent;

实训 20 综合开发 2: 文本编辑器 131 23 import java.io.bufferedreader; 24 import java.io.filenotfoundexception; 25 import java.io.filereader; 26 import java.io.filewriter; 27 import java.io.ioexception; 28 import java.util.resourcebundle; 29 30 /** 31 * 32 * @author Administrator 33 */ 34 public class EditorUI extends java.awt.frame { 35 36 /** Creates new form EditorUI */ 37 public EditorUI() { 38 initcomponents(); 39 } 40 41 /** This method is called from within the constructor to 42 * initialize the form. 43 * WARNING: Do NOT modify this code. The content of this method is 44 * always regenerated by the Form Editor. 45 */ 46 // <editor-fold defaultstate="collapsed" desc="generated Code"> 47 //GEN-BEGIN:initComponents 48 private void initcomponents() { 49 50 ta = new TextArea(); 51 menubar1 = new MenuBar(); 52 menufile = new Menu(); 53 filenew = new MenuItem(); 54 fileopen = new MenuItem(); 55 filesave = new MenuItem(); 56 filesave2 = new MenuItem(); 57 fileexit = new MenuItem(); 58 menuedit = new Menu(); 59 editcopy = new MenuItem(); 60 editpaste = new MenuItem(); 61 62 addwindowlistener(new WindowAdapter() { 63 public void windowclosing(windowevent evt) { 64 exitform(evt); 65 }

132 Java 程序设计实训 66 }); 67 add(ta, BorderLayout.CENTER); 68 69 ResourceBundle bundle = ResourceBundle.getBundle("ui/Bundle"); 70 menufile.setlabel(bundle.getstring("editorui.menufile.label")); 71 72 filenew.setlabel(bundle.getstring("editorui.filenew.label")); 73 filenew.addactionlistener(new ActionListener() { 74 public void actionperformed(actionevent evt) { 75 filenewactionperformed(evt); 76 } 77 }); 78 menufile.add(filenew); 79 80 fileopen.setlabel(bundle.getstring("editorui.fileopen.label")); 81 fileopen.addactionlistener(new ActionListener() { 82 public void actionperformed(actionevent evt) { 83 fileopenactionperformed(evt); 84 } 85 }); 86 menufile.add(fileopen); 87 88 filesave.setlabel(bundle.getstring("editorui.filesave.label")); 89 filesave.addactionlistener(new ActionListener() { 90 public void actionperformed(actionevent evt) { 91 filesaveactionperformed(evt); 92 } 93 }); 94 menufile.add(filesave); 95 96 filesave2.setlabel(bundle.getstring("editorui.filesave2.label")); 97 filesave2.addactionlistener(new ActionListener() { 98 public void actionperformed(actionevent evt) { 99 filesave2actionperformed(evt); 100 } 101 }); 102 menufile.add(filesave2); 103 menufile.addseparator(); 104 fileexit.setlabel(bundle.getstring("editorui.fileexit.label")); 105 fileexit.addactionlistener(new ActionListener() { 106 public void actionperformed(actionevent evt) { 107 fileexitactionperformed(evt); 108 }

实训 20 综合开发 2: 文本编辑器 133 109 }); 110 menufile.add(fileexit); 111 112 menubar1.add(menufile); 113 114 menuedit.setlabel(bundle.getstring("editorui.menuedit.label")); 115 116 editcopy.setlabel(bundle.getstring("editorui.editcopy.label")); 117 editcopy.addactionlistener(new ActionListener() { 118 public void actionperformed(actionevent evt) { 119 editcopyactionperformed(evt); 120 } 121 }); 122 menuedit.add(editcopy); 123 124 editpaste.setlabel(bundle.getstring("editorui.editpaste.label")); 125 editpaste.addactionlistener(new ActionListener() { 126 public void actionperformed(actionevent evt) { 127 editpasteactionperformed(evt); 128 } 129 }); 130 menuedit.add(editpaste); 131 132 menubar1.add(menuedit); 133 134 setmenubar(menubar1); 135 136 pack(); 137 }// </editor-fold>//gen-end:initcomponents 138 139 /** Exit the Application */ 140 private void exitform(windowevent evt) {//GEN-FIRST:event_exitForm 141 System.exit(0); 142 }//GEN-LAST:event_exitForm 143 144 private void filenewactionperformed(actionevent evt) { 145 //GEN-FIRST:event_fileNewActionPerformed 146 ta.settext(""); 147 title = newtitle; 148 this.settitle(newtitle); 149 path = null; 150 }//GEN-LAST:event_fileNewActionPerformed 151

134 Java 程序设计实训 152 private void fileopenactionperformed(actionevent evt) { 153 //GEN-FIRST:event_fileOpenActionPerformed 154 FileDialog dialog = new FileDialog(this); 155 dialog.setmode(filedialog.load); 156 dialog.setvisible(true); 157 if (dialog.getdirectory() == null 158 dialog.getfile() == null) { 159 return; 160 } 161 path = dialog.getdirectory() + "/" + dialog.getfile(); 162 BufferedReader r = null; 163 try { 164 r = new BufferedReader( 165 new FileReader(path)); 166 String line = null; 167 StringBuilder sb = new StringBuilder(); 168 while ((line = r.readline())!= null) { 169 sb.append(line).append("\n"); 170 } 171 ta.settext(sb.tostring()); 172 173 title = dialog.getfile(); 174 this.settitle(title); 175 } catch (FileNotFoundException e) { 176 e.printstacktrace(); 177 } catch (IOException e) { 178 e.printstacktrace(); 179 } finally { 180 if (r!= null) { 181 try { 182 r.close(); 183 } catch (IOException e) { 184 e.printstacktrace(); 185 } 186 } 187 } 188 }//GEN-LAST:event_fileOpenActionPerformed 189 190 private void filesaveactionperformed(actionevent evt) { 191 //GEN-FIRST:event_fileSaveActionPerformed 192 if (path == null) {// 若是新文档 193 FileDialog dialog = new FileDialog(this); 194 dialog.setmode(filedialog.save);

实训 20 综合开发 2: 文本编辑器 135 195 dialog.setvisible(true); 196 if (dialog.getdirectory() == null 197 dialog.getfile() == null) { 198 return; 199 } 200 path = dialog.getdirectory() + "/" + dialog.getfile(); 201 write(path); 202 title = dialog.getfile(); 203 this.settitle(title); 204 } else { 205 write(path); 206 } 207 }//GEN-LAST:event_fileSaveActionPerformed 208 209 private void filesave2actionperformed(actionevent evt) { 210 //GEN-FIRST:event_fileSave2ActionPerformed 211 FileDialog dialog = new FileDialog(this); 212 dialog.setmode(filedialog.save); 213 dialog.setvisible(true); 214 path = dialog.getdirectory() + "/" + dialog.getfile(); 215 write(path); 216 title = dialog.getfile(); 217 this.settitle(title); 218 }//GEN-LAST:event_fileSave2ActionPerformed 219 220 private void fileexitactionperformed(actionevent evt) { 221 //GEN-FIRST:event_fileExitActionPerformed 222 System.exit(0); 223 }//GEN-LAST:event_fileExitActionPerformed 224 225 private void editcopyactionperformed(actionevent evt) { 226 //GEN-FIRST:event_editCopyActionPerformed 227 String text = ta.getselectedtext(); 228 StringSelection ss = new StringSelection(text); 229 Toolkit.getDefaultToolkit().getSystemClipboard() 230.setContents(ss, null); 231 }//GEN-LAST:event_editCopyActionPerformed 232 233 private void editpasteactionperformed(actionevent evt) { 234 //GEN-FIRST:event_editPasteActionPerformed 235 Transferable t = Toolkit.getDefaultToolkit() 236.getSystemClipboard().getContents(null); 237

136 Java 程序设计实训 238 try { 239 if (t!= null && t.isdataflavorsupported( 240 DataFlavor.stringFlavor)) { 241 // 只允许粘贴文本 242 String text = (String) t.gettransferdata( 243 DataFlavor.stringFlavor); 244 ta.replacerange(text, ta.getselectionstart(), 245 ta.getselectionend()); 246 } 247 } catch (UnsupportedFlavorException e) { 248 } catch (IOException e) { 249 } 250 }//GEN-LAST:event_editPasteActionPerformed 251 252 private void write(string path) { 253 FileWriter out = null; 254 try { 255 out = new FileWriter(path); 256 out.write(ta.gettext()); 257 } catch (FileNotFoundException e) { 258 } catch (IOException e) { 259 } finally { 260 if (out!= null) { 261 try { 262 out.close(); 263 } catch (IOException e) { 264 e.printstacktrace(); 265 } 266 } 267 } 268 } 269 270 /** 271 * @param args the command line arguments 272 */ 273 public static void main(string args[]) { 274 java.awt.eventqueue.invokelater(new Runnable() { 275 276 public void run() { 277 new EditorUI().setVisible(true); 278 } 279 }); 280 }

实训 20 综合开发 2: 文本编辑器 137 281 // Variables declaration - do not modify//gen-begin:variables 282 private MenuItem editcopy; 283 private MenuItem editpaste; 284 private MenuItem fileexit; 285 private MenuItem filenew; 286 private MenuItem fileopen; 287 private MenuItem filesave; 288 private MenuItem filesave2; 289 private MenuBar menubar1; 290 private Menu menuedit; 291 private Menu menufile; 292 private TextArea ta; 293 // End of variables declaration//gen-end:variables 294 // 自定义字段 295 private String newtitle = " 无标题 - MyJavaEditor"; 296 private String title = newtitle; 297 private String path = null; 298 }