转自: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. RabbitMQ错误检查

    今天使用RabbitMQ做数据下发操作,当在发送端声明了Exchange后 打开RabbitMQ的管理控制台,可以查看,其中已经创建了Exchange 但并没有Queue 接着运行接收端,发现以下错误 ...

  2. rabbitmq学习之路-rabbitmqctl

    rabbitmqctl使用 学习rabbitmq,原理之后第一个要掌握的就是rabbitmqctl这个命令的用法了,rabbitmq的管理功能最全的就是rabbitmqctl命令了,当然还有HTTP ...

  3. 【转】JQuery Validate使用总结二

    Jquery Validate使用总结一 五.常用方法及注意问题 1.用其他方式替代默认的SUBMIT $().ready(function() { $("#signupForm" ...

  4. 把eclipse写好的web项目导入idea 部署到Tomcat

    主要分为项目配置和tomcat配置两大步骤. 一.项目配置 打开idea,选择导入项 选择将要打开的项目路径后,继续选择项目的原本类型(后续引导设置会根据原本的项目类型更新成idea的项目),此例中选 ...

  5. NetCore+Dapper WebApi架构搭建(四):仓储的依赖注入

    上一节我们讲到实体,仓储接口和仓储接口的实现需要遵循约定的命名规范,不仅是规范,而且为了依赖注入,现在我们实现仓储的依赖注入 在NetCore WebApi项目中新添加一个文件夹(Unit),当然你也 ...

  6. 支撑大规模公有云的Kubernetes改进与优化 (3)

    这一篇我们来讲网易为支撑大规模公有云对于Kubernetes的定制化. 一.总体架构 网易的Kubernetes集群是基于网易云IaaS平台OpenStack上面进行部署的,在外面封装了一个容器平台的 ...

  7. Codeforces Round #461 (Div. 2)

    A - Cloning Toys /* 题目大意:给出两种机器,一种能将一种原件copy出额外一种原件和一个附件, 另一种可以把一种附件copy出额外两种附件,给你一个原件, 问能否恰好变出题目要求数 ...

  8. [COGS2639]偏序++

    [COGS2639]偏序++ 题目大意: \(n(n\le40000)\)个\(k(k\le7)\)元组,求\(k\)维偏序. 思路: 分块后用bitset维护. 时间复杂度\(\mathcal O( ...

  9. PAT(Basic Level)--个位数统计

    输入一个不超过1000位的整数,计算每个数字出现的次数. 一道十分简单的题目,最开始以为Java的String没有计算长度的方法,还想了半天,而且还用HashMap做了一次,代码特别长,看了别人的代码 ...

  10. BZOJ 1007: [HNOI2008]水平可见直线 栈/计算几何

    1007: [HNOI2008]水平可见直线 Time Limit: 1 Sec  Memory Limit: 162 MB 题目连接 http://www.lydsy.com/JudgeOnline ...