本帖最后由 wata 于 2015-1-14 17:56 编辑
- 需求:將MyMenuTest.java文件打包成jar文件,使其双击可执行
- 注:MyMenuTest.java中的包名是:day22(即:package day22;)
- ---------------------------------------------------------------
- //將MyMenuTest.java文件拷贝到桌面上
- C:\Users\TaoWang\Desktop>javac -d . MyMenuTest.java //將MyMenuTest.java文件编译到当前路径下(.代表当前路径)
- /*
- 在“C:\Users\TaoWang\Desktop”目录下建立一个1.txt文件
- 1.txt中写入的内容是:
- *****************************
- Main-Class: day22.MyMenuTest*
- *
- *****************************
- 注:1.txt文件中的信息是配置信息,告诉系统要首先执行的jar包中的day22.MyMenuTest
- */
-
- C:\Users\TaoWang\Desktop>jar -cvfm my.jar 1.txt day22 //jar包名是my.jar,按照1.txt的配置信息,將day22包打包成jar包
- ---------------------------------------------------------------------
- //將MyMenuTest.java文件拷贝到桌面上
- C:\Users\TaoWang\Desktop>javac -d d:\ MyMenuTest.java //將MyMenuTest.java文件编译到d:\路径下
- C:\Users\TaoWang\Desktop>d: //进入d盘路径
- /*
- 在“C:\”目录下建立一个1.txt文件
- 1.txt中写入的内容是:
- *****************************
- Main-Class: day22.MyMenuTest*
- *
- *****************************
- 注:1.txt文件中的信息是配置信息,告诉系统要首先执行的jar包中的day22.MyMenuTest
- */
- D:\>jar -cvfm my.jar 1.txt day22 //jar包名是my.jar,按照1.txt的配置信息,將day22包打包成jar包
复制代码
MyMenuTest.java文件:
- package day22;
- import java.awt.*;
- import java.awt.event.*;
- import java.io.*;
- /*
- * 练习:
- * 做个文档编辑器
- * 具有打开文件、保存文件、退出的功能
- *
- */
- public class MyMenuTest {
-
- private Frame f;
- private TextArea ta;
- private MenuBar bar;//菜单栏
- private Menu fileMenu;//菜单
- private MenuItem openItem, saveItem, closeItem;//菜单条目
- private FileDialog openDia, saveDia;//文件对话框
- private File file;
-
-
- MyMenuTest(){
- init();
- }
-
- public void init(){
-
- //设置frame的基本属性
- f = new Frame("我的文档编辑器(Frame)");
- f.setBounds(300,100,650,600);
- f.setLayout(new BorderLayout());//注意:如果不设置布局,那么默认的也是边界布局,所以该行代码也可以不写。
-
- //创建frame中的组件
- ta = new TextArea();
- bar = new MenuBar();
- fileMenu = new Menu("文件(Menu)");
- openItem = new MenuItem("打开(MenuItem)");
- saveItem = new MenuItem("保存(MenuItem)");
- closeItem = new MenuItem("退出(MenuItem)");
- openDia = new FileDialog(f, "我要打开", FileDialog.LOAD);
- saveDia = new FileDialog(f, "我要保存", FileDialog.SAVE);
- /*
- * FileDialog构造函数讲解:
- *
- * FileDialog(Dialog parent, String title, int mode):
- *
- * parent - 对话框的所有者
- * title - 对话框的标题
- * mode - 对话框的模式,FileDialog.LOAD 或 FileDialog.SAVE
- */
-
- //將组件添加到frame
- f.add(ta);
- bar.add(fileMenu);
- fileMenu.add(openItem);
- fileMenu.add(saveItem);
- fileMenu.add(closeItem);
- f.setMenuBar(bar);//注意:Frame中添加菜单栏用到的是Frame类中的setMenuBar方法
-
-
- //调用frame的事件集
- myEvent();
-
- //设置frame可见
- f.setVisible(true);
- }
-
- private void myEvent(){
-
- //將TextArea的内容保存起来的事件
- saveItem.addActionListener(new ActionListener(){
- public void actionPerformed(ActionEvent e){
-
- if(file==null){//如果文件已经存在就直接將文件内容保存进去即可
- //1,显示菜单对话框
- saveDia.setVisible(true);
-
- //2,通过FileDialog类的getDirectory和getFile方法获取文件的目录和文件名
- String filePath = saveDia.getDirectory();
- String fileName = saveDia.getFile();
-
- //3,將TextArea的内容保存到文件里去
- if(filePath==null || fileName==null){//如果文件没取出来
- return;
- }
- file = new File(filePath, fileName);
- }
- /*
- * 源是TextArea,目的是字符文件
- */
- try {
- BufferedWriter bufw = new BufferedWriter(new FileWriter(file));
- String text = ta.getText();
- bufw.write(text);
- bufw.flush();
- bufw.close();
- } catch (IOException ex) {
- throw new RuntimeException("保存失败");
- }
- }
- });
-
- //打开文件事件
- openItem.addActionListener(new ActionListener(){
- public void actionPerformed(ActionEvent e){
-
- //显示菜单对话框
- openDia.setVisible(true);
-
- //通过FileDialog类的getDirectory和getFile方法获取文件的目录和文件名
- String filePath = openDia.getDirectory();
- String fileName = openDia.getFile();
-
- //將文件的内容打印到TextArea中
- if(filePath==null || fileName==null){//如果文件没取出来
- return;
- }
- ta.setText("");//再次打开另一个文件时候,將textArea的内容置为空
- file = new File(filePath, fileName);
- try {
- /*
- * 源是字符流文件file,目的是TextArea
- */
- BufferedReader bufr = new BufferedReader(new FileReader(file));
- String line = null;
- while((line=bufr.readLine())!=null){
- ta.append(line+"\t\n");
- }
- bufr.close();
- } catch (IOException ex) {
- throw new RuntimeException("读取失败");
- }
- }
- });
-
- //退出(MenuItem)的事件
- closeItem.addActionListener(new ActionListener(){
- public void actionPerformed(ActionEvent e){
- System.exit(0);
- }
- });
-
- //frame的关闭事件
- f.addWindowListener(new WindowAdapter(){
- public void windowClosing(WindowEvent e){
- System.exit(0);
- }
- });
- }
- public static void main(String[] args){
- new MyMenuTest();
- }
- }
复制代码
注:MyMenuTest.java文件是GUI编程中程序
可执行的my.jar界面如下:
|