转自:http://takeme.iteye.com/blog/1876853

模拟window开打文件

 import java.awt.Button;
import java.awt.Dialog;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.Label;
import java.awt.TextArea;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.File; public class MyWinDemo { private Frame f;
private TextField tf;
private Button btn;
private TextArea ta;
private Dialog d;
private Label lab;
private Button okbtn; MyWinDemo(){
init();
} private void init(){
f=new Frame("my Window");
f.setBounds(300,100,600,500);
f.setLayout(new FlowLayout()); tf=new TextField(60); btn=new Button("转到");
ta=new TextArea(25,70); d=new Dialog(f,"提示信息-self",true);
d.setBounds(400,200,250,150);
d.setLayout(new FlowLayout()); lab=new Label();
okbtn=new Button("确定"); d.add(lab);
d.add(okbtn); f.add(tf);
f.add(btn);
f.add(ta); myEvent();
f.setVisible(true); } private void myEvent() { //添加 回车 时候 自动转到
tf.addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
// TODO Auto-generated method stub
if(e.getKeyCode()==KeyEvent.VK_ENTER){
showDir();
}
}
});
//确定按钮事件
okbtn.addActionListener(new ActionListener() { @Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
d.setVisible(false);
}
}); d.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
// TODO Auto-generated method stub
d.setVisible(false);
} }); btn.addActionListener(new ActionListener() { @Override
public void actionPerformed(ActionEvent e) {
showDir();
} }); f.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e){
System.exit(0);
} }); }
private void showDir() {
String dirPath=tf.getText(); File dir=new File(dirPath);
if(dir.exists() && dir.isDirectory()){
ta.setText("");
String[] names=dir.list();
for (String name : names) {
ta.append(name+"\r\n");
//ta.setText(text);
}
}else{
String info="您输入的信息:"+dirPath+"有误,请重新输入";
lab.setText(info);
d.setVisible(true);
} tf.setText("");
}
public static void main(String[] args) {
new MyWinDemo();
} }

模拟简单记事本

 import java.awt.FileDialog;
import java.awt.Frame;
import java.awt.Menu;
import java.awt.MenuBar;
import java.awt.MenuItem;
import java.awt.TextArea;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException; /**
* 实现菜单栏
*/
public class MyMenuDemo { private Frame f;
private MenuBar mb;
private Menu m,subm;
private MenuItem closeItem,openItem,saveItem,subItem1,subItem;
private FileDialog openDialog,saveDialog;
private TextArea ta;
private File file; MyMenuDemo(){
init();
} private void init(){
f=new Frame("my Window");
f.setBounds(300,100,600,500);
//f.setLayout(); mb=new MenuBar();
m=new Menu("文件"); closeItem=new MenuItem("退出");
openItem=new MenuItem("打开");
saveItem=new MenuItem("保存"); subm=new Menu("新建");
subItem1=new MenuItem("Web Project");
subItem=new MenuItem("Java Project");
subm.add(subItem);
subm.add(subItem1); m.add(subm);
m.add(openItem);
m.add(saveItem);
m.add(closeItem);
mb.add(m); openDialog=new FileDialog(f,"我要打开",FileDialog.LOAD);
saveDialog=new FileDialog(f,"我要保存",FileDialog.SAVE); ta=new TextArea(); f.add(ta);
f.setMenuBar(mb);
myEvent(); f.setVisible(true); } private void myEvent() { saveItem.addActionListener(new ActionListener() { @Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
if(file==null){
saveDialog.setVisible(true);
String dirPath=saveDialog.getDirectory();
String fileName=saveDialog.getFile();
if(dirPath==null || fileName==null)
return;
file=new File(dirPath,fileName);
}
try { BufferedWriter bufw=new BufferedWriter(new FileWriter(file)); String text=ta.getText(); bufw.write(text);
bufw.close();
} catch (IOException e2) {
throw new RuntimeException("保存失败");
} }
}); //打开菜单
openItem.addActionListener(new ActionListener() { @Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
openDialog.setVisible(true);
String dirPath=openDialog.getDirectory();
String fileName=openDialog.getFile();
System.out.println(dirPath+"...."+fileName);
if(dirPath==null || fileName==null)
return;
ta.setText("");
file=new File(dirPath,fileName);
try {
BufferedReader bufr=new BufferedReader(new FileReader(file));
String line=null;
while((line=bufr.readLine())!=null){
ta.append(line+"\r\n");
}
bufr.close();
} catch (IOException e2) {
throw new RuntimeException("打开异常");
} }
}); closeItem.addActionListener(new ActionListener() { @Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
System.exit(0);
}
}); f.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e){
System.exit(0);
} }); } public static void main(String[] args) {
// TODO Auto-generated method stub
new MyMenuDemo();
} }

java之 22天 GUI 图形界面编程(二)的更多相关文章

  1. java之 22天 GUI 图形界面编程(一)

    转自:http://takeme.iteye.com/blog/1876850 GUI(图形用户界面) import java.awt.Button; import java.awt.FlowLayo ...

  2. Java基础(二十三)GUI图形界面编程(Java基础完)

    这里有我之前上课总结的一些知识点以及代码大部分是老师讲的笔记 个人认为是非常好的,,也是比较经典的内容,真诚的希望这些对于那些想学习的人有所帮助! 由于代码是分模块的上传非常的不便.也比较多,讲的也是 ...

  3. Java中的图形界面编程

    前言 正文 Java中的图形界面编程 AWT/Swing AWT(Abstract Window ToolKits,抽象窗体工具集) 1.容器类:用来存储组件,实现容器布局 2.组件类:实现界面的一些 ...

  4. Linux C 程序 GTK+图形界面编程(22)

    GTK+图形界面编程 Linux大多是在字符界面,但也可以开发图形界面 目前已经存在多种Linux下开发图形界面的程序开发包:最常用的是Qt和GTK+ Qt是一个跨平台的图形界面开发库,不仅仅支持Li ...

  5. Quartz(GUI)图形界面程序----Quartz Web

    下载.设置和运行Quartz(GUI)图形界面程序----Quartz Web 一.获取Quartz Web程序(Quartz GUI).早期的 Quartz 框架开发者意识到一个 GUI 对于某类用 ...

  6. 图形界面编程成就了C++

    听有人说C#.VB比C++好是因为做界面方便还算傻得可爱,听有人说用C++做数值计算而不屑于做界面可就对不起咱C++的恩人了.这我可要说道说道. 想当年C++刚出江湖,名门出身,自立门派,想抢Obje ...

  7. centOS7下安装GUI图形界面

    1.如何在centOS7下安装GUI图形界面 当你安装centOS7服务器版本的时候,系统默认是不会安装GUI的图形界面程序,这个需要手动安装CentOS7 Gnome GUI包. 2.在系统下使用命 ...

  8. CentOS7安装GUI图形界面

    本文转自centOS7下安装GUI图形界面,侵权删. 1. 在命令行下 输入下面的命令来安装Gnome包. # yum groupinstall "GNOME Desktop" & ...

  9. CentOS7 下安装GUI图形界面GNOME

    在安装Gnome包之前,需要检查一下网络是否有网络(使用ping www.baidu.com) 一.先装X windows,-y表示参数同意所有软件安装操,当出现 Complete!说明这里安装成功了 ...

随机推荐

  1. "characterEncoding" must end with the ';' delimiter.

    17/04/20 17:27:10 FATAL conf.Configuration: error parsing conf file:/usr/local/apache-hive-1.2.2-bin ...

  2. Bzoj5294/洛谷P4428 [Bjoi2018]二进制(线段树)

    题面 Bzoj 洛谷 题解 考虑一个什么样的区间满足重组之后可以变成\(3\)的倍数.不妨设\(tot\)为一个区间内\(1\)的个数.如果\(tot\)是个偶数,则这个区间一定是\(3\)的倍数,接 ...

  3. 深入理解ajax系列第七篇

    前面的话 虽然ajax全称是asynchronous javascript and XML.但目前使用ajax技术时,传递JSON已经成为事实上的标准.因为相较于XML而言,JSON简单且方便.本文将 ...

  4. python学习笔记 - for循环: 遍历字典, 分别打印key, value, key:value

    #遍历字典, 分别打印key, value, key:value emp = {'name':'Tom', 'age':20, 'salary' : 8800.00} for k in emp.key ...

  5. 【WIN10】Toast 通知

    DEMO下載:http://yunpan.cn/cFSLZQf5ePeTV  访问密码 1fce 1.顯示通知 使用xml確定通知內容. string xml = "<toast la ...

  6. luoguP5105 不强制在线的动态快速排序 [官方?]题解 线段树 / set

    不强制在线的动态快速排序 题解 算法一 按照题意模拟 维护一个数组,每次直接往数组后面依次添加\([l, r]\) 每次查询时,暴力地\(sort\)查询即可 复杂度\(O(10^9 * q)\),期 ...

  7. C# 中判断字符串是否包含另一段字符串,请使用 Contains

    使用:Contains 比 IndexOf 的性能提高很多. 因为 Contains 是判断某个字符串是否在另外一个字符串中,而IndexOf需要返回下标值.

  8. URAL 1873. GOV Chronicles

    唔 神题一道 大家感受一下 1873. GOV Chronicles Time limit: 0.5 secondMemory limit: 64 MB A chilly autumn night. ...

  9. NOIP 2002提高组 选数 dfs/暴力

    1008 选数 2002年NOIP全国联赛普及组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题目描述 Description 已知 n 个整数 x1,x2,…, ...

  10. C# 高级编程9 第30章MEF C#可扩展编程之MEF第2章(抄录)

    Managed Extensibility Framework (MEF) 什么是 MEF?   Managed Extensibility Framework 即 MEF 是用于创建轻量.可扩展应用 ...