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

模拟window开打文件

  1. import java.awt.Button;
  2. import java.awt.Dialog;
  3. import java.awt.FlowLayout;
  4. import java.awt.Frame;
  5. import java.awt.Label;
  6. import java.awt.TextArea;
  7. import java.awt.TextField;
  8. import java.awt.event.ActionEvent;
  9. import java.awt.event.ActionListener;
  10. import java.awt.event.KeyAdapter;
  11. import java.awt.event.KeyEvent;
  12. import java.awt.event.WindowAdapter;
  13. import java.awt.event.WindowEvent;
  14. import java.io.File;
  15.  
  16. public class MyWinDemo {
  17.  
  18. private Frame f;
  19. private TextField tf;
  20. private Button btn;
  21. private TextArea ta;
  22. private Dialog d;
  23. private Label lab;
  24. private Button okbtn;
  25.  
  26. MyWinDemo(){
  27. init();
  28. }
  29.  
  30. private void init(){
  31. f=new Frame("my Window");
  32. f.setBounds(300,100,600,500);
  33. f.setLayout(new FlowLayout());
  34.  
  35. tf=new TextField(60);
  36.  
  37. btn=new Button("转到");
  38. ta=new TextArea(25,70);
  39.  
  40. d=new Dialog(f,"提示信息-self",true);
  41. d.setBounds(400,200,250,150);
  42. d.setLayout(new FlowLayout());
  43.  
  44. lab=new Label();
  45. okbtn=new Button("确定");
  46.  
  47. d.add(lab);
  48. d.add(okbtn);
  49.  
  50. f.add(tf);
  51. f.add(btn);
  52. f.add(ta);
  53.  
  54. myEvent();
  55. f.setVisible(true);
  56.  
  57. }
  58.  
  59. private void myEvent() {
  60.  
  61. //添加 回车 时候 自动转到
  62. tf.addKeyListener(new KeyAdapter() {
  63. @Override
  64. public void keyPressed(KeyEvent e) {
  65. // TODO Auto-generated method stub
  66. if(e.getKeyCode()==KeyEvent.VK_ENTER){
  67. showDir();
  68. }
  69. }
  70. });
  71. //确定按钮事件
  72. okbtn.addActionListener(new ActionListener() {
  73.  
  74. @Override
  75. public void actionPerformed(ActionEvent e) {
  76. // TODO Auto-generated method stub
  77. d.setVisible(false);
  78. }
  79. });
  80.  
  81. d.addWindowListener(new WindowAdapter() {
  82. @Override
  83. public void windowClosing(WindowEvent e) {
  84. // TODO Auto-generated method stub
  85. d.setVisible(false);
  86. }
  87.  
  88. });
  89.  
  90. btn.addActionListener(new ActionListener() {
  91.  
  92. @Override
  93. public void actionPerformed(ActionEvent e) {
  94. showDir();
  95. }
  96.  
  97. });
  98.  
  99. f.addWindowListener(new WindowAdapter() {
  100. public void windowClosing(WindowEvent e){
  101. System.exit(0);
  102. }
  103.  
  104. });
  105.  
  106. }
  107. private void showDir() {
  108. String dirPath=tf.getText();
  109.  
  110. File dir=new File(dirPath);
  111. if(dir.exists() && dir.isDirectory()){
  112. ta.setText("");
  113. String[] names=dir.list();
  114. for (String name : names) {
  115. ta.append(name+"\r\n");
  116. //ta.setText(text);
  117. }
  118. }else{
  119. String info="您输入的信息:"+dirPath+"有误,请重新输入";
  120. lab.setText(info);
  121. d.setVisible(true);
  122. }
  123.  
  124. tf.setText("");
  125. }
  126. public static void main(String[] args) {
  127. new MyWinDemo();
  128. }
  129.  
  130. }

模拟简单记事本

  1. import java.awt.FileDialog;
  2. import java.awt.Frame;
  3. import java.awt.Menu;
  4. import java.awt.MenuBar;
  5. import java.awt.MenuItem;
  6. import java.awt.TextArea;
  7. import java.awt.event.ActionEvent;
  8. import java.awt.event.ActionListener;
  9. import java.awt.event.WindowAdapter;
  10. import java.awt.event.WindowEvent;
  11. import java.io.BufferedReader;
  12. import java.io.BufferedWriter;
  13. import java.io.File;
  14. import java.io.FileReader;
  15. import java.io.FileWriter;
  16. import java.io.IOException;
  17.  
  18. /**
  19. * 实现菜单栏
  20. */
  21. public class MyMenuDemo {
  22.  
  23. private Frame f;
  24. private MenuBar mb;
  25. private Menu m,subm;
  26. private MenuItem closeItem,openItem,saveItem,subItem1,subItem;
  27. private FileDialog openDialog,saveDialog;
  28. private TextArea ta;
  29. private File file;
  30.  
  31. MyMenuDemo(){
  32. init();
  33. }
  34.  
  35. private void init(){
  36. f=new Frame("my Window");
  37. f.setBounds(300,100,600,500);
  38. //f.setLayout();
  39.  
  40. mb=new MenuBar();
  41. m=new Menu("文件");
  42.  
  43. closeItem=new MenuItem("退出");
  44. openItem=new MenuItem("打开");
  45. saveItem=new MenuItem("保存");
  46.  
  47. subm=new Menu("新建");
  48. subItem1=new MenuItem("Web Project");
  49. subItem=new MenuItem("Java Project");
  50. subm.add(subItem);
  51. subm.add(subItem1);
  52.  
  53. m.add(subm);
  54. m.add(openItem);
  55. m.add(saveItem);
  56. m.add(closeItem);
  57. mb.add(m);
  58.  
  59. openDialog=new FileDialog(f,"我要打开",FileDialog.LOAD);
  60. saveDialog=new FileDialog(f,"我要保存",FileDialog.SAVE);
  61.  
  62. ta=new TextArea();
  63.  
  64. f.add(ta);
  65. f.setMenuBar(mb);
  66. myEvent();
  67.  
  68. f.setVisible(true);
  69.  
  70. }
  71.  
  72. private void myEvent() {
  73.  
  74. saveItem.addActionListener(new ActionListener() {
  75.  
  76. @Override
  77. public void actionPerformed(ActionEvent e) {
  78. // TODO Auto-generated method stub
  79. if(file==null){
  80. saveDialog.setVisible(true);
  81. String dirPath=saveDialog.getDirectory();
  82. String fileName=saveDialog.getFile();
  83. if(dirPath==null || fileName==null)
  84. return;
  85. file=new File(dirPath,fileName);
  86. }
  87. try {
  88.  
  89. BufferedWriter bufw=new BufferedWriter(new FileWriter(file));
  90.  
  91. String text=ta.getText();
  92.  
  93. bufw.write(text);
  94. bufw.close();
  95. } catch (IOException e2) {
  96. throw new RuntimeException("保存失败");
  97. }
  98.  
  99. }
  100. });
  101.  
  102. //打开菜单
  103. openItem.addActionListener(new ActionListener() {
  104.  
  105. @Override
  106. public void actionPerformed(ActionEvent e) {
  107. // TODO Auto-generated method stub
  108. openDialog.setVisible(true);
  109. String dirPath=openDialog.getDirectory();
  110. String fileName=openDialog.getFile();
  111. System.out.println(dirPath+"...."+fileName);
  112. if(dirPath==null || fileName==null)
  113. return;
  114. ta.setText("");
  115. file=new File(dirPath,fileName);
  116. try {
  117. BufferedReader bufr=new BufferedReader(new FileReader(file));
  118. String line=null;
  119. while((line=bufr.readLine())!=null){
  120. ta.append(line+"\r\n");
  121. }
  122. bufr.close();
  123. } catch (IOException e2) {
  124. throw new RuntimeException("打开异常");
  125. }
  126.  
  127. }
  128. });
  129.  
  130. closeItem.addActionListener(new ActionListener() {
  131.  
  132. @Override
  133. public void actionPerformed(ActionEvent e) {
  134. // TODO Auto-generated method stub
  135. System.exit(0);
  136. }
  137. });
  138.  
  139. f.addWindowListener(new WindowAdapter() {
  140. public void windowClosing(WindowEvent e){
  141. System.exit(0);
  142. }
  143.  
  144. });
  145.  
  146. }
  147.  
  148. public static void main(String[] args) {
  149. // TODO Auto-generated method stub
  150. new MyMenuDemo();
  151. }
  152.  
  153. }

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. 开始Hibernate介绍

    1.介绍 一个框架 一个Java领域内的持久化框架 一个ORM框架 2.持久化 和数据库相关的各种操作 保存 更新 删除 查询 加载:根据特定的OID,把一个对象从数据库加载到你内存中. OID:为了 ...

  2. customPage.class.php可添加js事件的分页类

    用于ajax动态加载数据的分页类,分页事件可以动态添加,去除了a链接中的href地址. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 ...

  3. OpenGL 笔记<3> 数据传递 一

    Sending data to a shader using vertex attributes and vertex buffer object 上次我们说到着色器的编译和连接,后面的事情没有做过多 ...

  4. 【WIN10】判斷程序運行在哪個平台

    其中的一個方法是: string x = AnalyticsInfo.VersionInfo.DeviceFamily; 判斷 x  的值,有”Windows.Mobile“,”Windows.Des ...

  5. PHP 二维数组根据某个字段排序 复制代码 array_multisort

    //二维数组,按照里面的age从大到小降序,代码如下 <?php header('Content-Type:text/html;Charset=utf-8'); $arrUsers = arra ...

  6. [luogu4459][BJOI2018]双人猜数游戏(DP)

    https://zhaotiensn.blog.luogu.org/solution-p4459 从上面的题解中可以找到样例解释,并了解两个人的思维方式. A和B能从“不知道”到“知道”的唯一情况,就 ...

  7. OpenGL ES 3.0 图元装配

    1. 前言 之前已经把纹理的渲染给弄出来了,但是又遇到一个新的问题,那就是图元装配,比如说我已经把图片给显示出来了,但是呢,并没有做到让它显示到具体的位置,而跟这个位置相关的则需要靠图元装配. 图元装 ...

  8. HDU 1698 just a hook 线段树,区间定值,求和

    Just a Hook Time Limit: 1 Sec  Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=1 ...

  9. 机器学习(1):Logistic回归原理及其实现

    Logistic回归是机器学习中非常经典的一个方法,主要用于解决二分类问题,它是多分类问题softmax的基础,而softmax在深度学习中的网络后端做为常用的分类器,接下来我们将从原理和实现来阐述该 ...

  10. Android 5.0 源代码结构

    本节书摘来自异步社区<深入理解Android 5 源代码>一书中的第2章,第2.2节分析Android源代码结构,作者 李骏. 网址:https://yq.aliyun.com/artic ...