【java编程】GUI之综合练习(二)
2015-03-19 16:59
435 查看
1.菜单的包含关系
下面是一个简单的示例:
需求:实现一个简单的记事本,功能包括:打开,保存,退出
import java.awt.*;
import java.awt.event.*;
import java.io.*;
class MenuDemo
{
public static void main(String[] args)
{
new myMenu();
}
}
class myMenu
{
private Frame f;
private MenuBar bar;
private Menu fileMenu;
private MenuItem openMenuItem;
private MenuItem saveMenuItem;
private MenuItem exitMenuItem;
private TextArea ta;
private File file;
private FileDialog openDia;
private FileDialog saveDia;
myMenu()
{
init();
}
public void init()
{
f=new Frame("My Frame");
f.setBounds(500,400,600,500);
bar=new MenuBar();
fileMenu=new Menu("菜单");
openMenuItem=new MenuItem("打开");
saveMenuItem=new MenuItem("保存");
exitMenuItem=new MenuItem("退出");
fileMenu.add(openMenuItem);
fileMenu.add(saveMenuItem);
fileMenu.add(exitMenuItem);
ta=new TextArea();
bar.add(fileMenu);
f.setMenuBar(bar);
f.add(ta);
myEvent();
f.setVisible(true);
}
public void myEvent()
{
//窗体关闭事件
f.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
//退出子条目事件
exitMenuItem.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
System.exit(0);
}
});
//为openDia子条目添加打开事件
openMenuItem.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
openDia=new FileDialog(f,"打开",FileDialog.LOAD);
openDia.setVisible(true);
String DirPath=openDia.getDirectory();
String filename=openDia.getFile();
if(DirPath==null || filename==null)
return;
file=new File(DirPath,filename);
ta.setText("");
try
{
BufferedReader bufr=new BufferedReader(new FileReader(file));
String line=null;
while((line=bufr.readLine())!=null)
{
ta.append(line+"\r\n");
}
}
catch (IOException ex)
{
throw new RuntimeException("关闭流失败");
}
}
});
//为saveDia子条目添加事件
saveMenuItem.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
if(file==null)
{
saveDia=new FileDialog(f,"保存",FileDialog.SAVE);
saveDia.setVisible(true);
String DirPath=saveDia.getDirectory();
String filename=saveDia.getFile();
if(DirPath==null || filename==null)
return;
File file=new File(DirPath,filename);
}
try
{
BufferedWriter bufw=new BufferedWriter(new FileWriter(file));
String text=ta.getText();
bufw.write(text);
bufw.close();
}
catch (IOException ex)
{
throw new RuntimeException("关闭流失败");
}
}
});
}
}
下面是一个简单的示例:
需求:实现一个简单的记事本,功能包括:打开,保存,退出
import java.awt.*;
import java.awt.event.*;
import java.io.*;
class MenuDemo
{
public static void main(String[] args)
{
new myMenu();
}
}
class myMenu
{
private Frame f;
private MenuBar bar;
private Menu fileMenu;
private MenuItem openMenuItem;
private MenuItem saveMenuItem;
private MenuItem exitMenuItem;
private TextArea ta;
private File file;
private FileDialog openDia;
private FileDialog saveDia;
myMenu()
{
init();
}
public void init()
{
f=new Frame("My Frame");
f.setBounds(500,400,600,500);
bar=new MenuBar();
fileMenu=new Menu("菜单");
openMenuItem=new MenuItem("打开");
saveMenuItem=new MenuItem("保存");
exitMenuItem=new MenuItem("退出");
fileMenu.add(openMenuItem);
fileMenu.add(saveMenuItem);
fileMenu.add(exitMenuItem);
ta=new TextArea();
bar.add(fileMenu);
f.setMenuBar(bar);
f.add(ta);
myEvent();
f.setVisible(true);
}
public void myEvent()
{
//窗体关闭事件
f.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
//退出子条目事件
exitMenuItem.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
System.exit(0);
}
});
//为openDia子条目添加打开事件
openMenuItem.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
openDia=new FileDialog(f,"打开",FileDialog.LOAD);
openDia.setVisible(true);
String DirPath=openDia.getDirectory();
String filename=openDia.getFile();
if(DirPath==null || filename==null)
return;
file=new File(DirPath,filename);
ta.setText("");
try
{
BufferedReader bufr=new BufferedReader(new FileReader(file));
String line=null;
while((line=bufr.readLine())!=null)
{
ta.append(line+"\r\n");
}
}
catch (IOException ex)
{
throw new RuntimeException("关闭流失败");
}
}
});
//为saveDia子条目添加事件
saveMenuItem.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
if(file==null)
{
saveDia=new FileDialog(f,"保存",FileDialog.SAVE);
saveDia.setVisible(true);
String DirPath=saveDia.getDirectory();
String filename=saveDia.getFile();
if(DirPath==null || filename==null)
return;
File file=new File(DirPath,filename);
}
try
{
BufferedWriter bufw=new BufferedWriter(new FileWriter(file));
String text=ta.getText();
bufw.write(text);
bufw.close();
}
catch (IOException ex)
{
throw new RuntimeException("关闭流失败");
}
}
});
}
}
相关文章推荐
- 【java编程】GUI之综合练习(一)
- java语言的科学与艺术-编程练习---创建简单的GUI
- Java 学习笔记 (7) - GUI编程之Java小程序 Applet
- Java实现简单的计算器(GUI编程)
- Java编程思想 第4版 练习题 / 第3章 操作符 / 练习1
- Java编程思想 第4版 练习题 / 第22章 图形化用户界面 / 练习23
- Java编程思想 第4版 练习题 / 第22章 图形化用户界面 / 练习22
- [JAVA GUI练习]在JPanel上画出sin()图像
- Java GUI用户界面编程的基础
- Java编程思想 第4版 练习题 / 第2章 一切都是对象 / 练习9
- Java编程思想 第4版 练习题 / 第2章 一切都是对象 / 练习8
- Java GUI编程中AWT/Swing/SWT的优缺点
- Eclipse插件开发之添加简单的GUI元素-Java基础-Java-编程开发
- Java 编程思想(第4版)学习笔记(各种容器(集合框架)的比较 Collection Map ..第11章 练习4)
- Java 编程思想(第4版)学习笔记(第11章 练习2 练习3 Arrays.asList() Colections.addAll())
- Java编程思想 第4版 练习题 / 第2章 一切都是对象 / 练习11
- Java 学习笔记 (8) - GUI编程之 Frame
- Java 编程思想(第4版)学习笔记(ArrayList 泛型 foreach 第11章练习1 hop())
- 一个GUI的简单练习-------- Java记事本 简单实现 陆续完善中……
- Java编程思想 第4版 练习题 / 第3章 操作符 / 练习3