java之 22天 GUI 图形界面编程(二)

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

模拟window开打文件

Java代码

  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
 51         f.add(tf);
 52         f.add(btn);
 53         f.add(ta);
 54
 55         myEvent();
 56         f.setVisible(true);
 57
 58     }
 59
 60
 61     private void myEvent() {
 62
 63         //添加 回车 时候 自动转到
 64         tf.addKeyListener(new KeyAdapter() {
 65             @Override
 66             public void keyPressed(KeyEvent e) {
 67                 // TODO Auto-generated method stub
 68                 if(e.getKeyCode()==KeyEvent.VK_ENTER){
 69                     showDir();
 70                 }
 71             }
 72         });
 73         //确定按钮事件
 74         okbtn.addActionListener(new ActionListener() {
 75
 76             @Override
 77             public void actionPerformed(ActionEvent e) {
 78                 // TODO Auto-generated method stub
 79                 d.setVisible(false);
 80             }
 81         });
 82
 83         d.addWindowListener(new WindowAdapter() {
 84             @Override
 85             public void windowClosing(WindowEvent e) {
 86                 // TODO Auto-generated method stub
 87                 d.setVisible(false);
 88             }
 89
 90         });
 91
 92         btn.addActionListener(new ActionListener() {
 93
 94             @Override
 95             public void actionPerformed(ActionEvent e) {
 96                 showDir();
 97             }
 98
 99         });
100
101
102         f.addWindowListener(new WindowAdapter() {
103             public void windowClosing(WindowEvent e){
104                 System.exit(0);
105             }
106
107         });
108
109     }
110     private void showDir() {
111         String dirPath=tf.getText();
112
113         File dir=new File(dirPath);
114         if(dir.exists() && dir.isDirectory()){
115             ta.setText("");
116             String[] names=dir.list();
117             for (String name : names) {
118                 ta.append(name+"\r\n");
119                 //ta.setText(text);
120             }
121         }else{
122             String info="您输入的信息:"+dirPath+"有误,请重新输入";
123             lab.setText(info);
124             d.setVisible(true);
125         }
126
127         tf.setText("");
128     }
129     public static void main(String[] args) {
130         new MyWinDemo();
131     }
132
133 }  

模拟简单记事本

Java代码

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

时间: 2024-11-05 14:40:36

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

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

转自:http://takeme.iteye.com/blog/1876850 GUI(图形用户界面) Java代码 1 import java.awt.Button; 2 import java.awt.FlowLayout; 3 import java.awt.Frame; 4 import java.awt.event.WindowAdapter; 5 import java.awt.event.WindowEvent; 6 7 /** 8 * GUI(图形用户界面) 9 * Graphi

GUI图形界面编程之事件处理机制

事件处理机制三要素: 事件源:能够产生事件的组件 事件:用户对组件的一个操作 事件监听器:接收事件.解释事件并处理用户交互的方法处理事件源发生的事件 事件处理机制:当组件(比如 Button)被点击时就会产生ActionEvent事件,事件被传递给一个 ActionListener 对象,再由ActionListener 定义的方法来响应处理事件(自动调用ActionEvent) 当事件发生后,将某事件的对象传递给事件监听器(事件监听器实现了发生此事件所对应的接口),事件监听器会处理此事件,为了

Java图形界面编程

一:基本概念 AWT(Abstract Window Toolkit) 抽象窗口工具包,SUN 公司提供的用于图形界面编程(GUI)的类库.但是AWT得实现严重依赖于下层操作系统,所以导致组件AWT的外观取决于程序运行的平台.AWT的类和接口都定义在java.awt包中. Swing    Swing组件是实在AWT基础上开发的新型GUI组件,它是纯Java实现的轻量级(light-weight)组件,它不依赖任何特定平台,Swing组件在不同平台具有一致性的表现,但是Swing应用程序的界面外

java进阶08 GUI图形界面

图形化用户界面(GUI) 简而言之,就是可视化编程. 要想实现可视化界面(窗口),需要用到JFrame类. package Frame; public class JFrame1 { public static void main(String[] args){ UI ui=new UI(); } } 先建一个主函数,而主函数中的操作只有一句代码.这样做,既能直观又方便后期修改. 接下来是UI类的实现 package Frame; import javax.swing.JFrame; publi

java进阶09 GUI图形界面 布局管理器之BorderLayout

前面虽然实现了窗口,但是一般的应用有很多其他东西,如按钮,输入框之类的. 而这些都是建立在一个东西上面的,那就是布局管理器. 常用的布局管理器有3个 BorderLayout:边界布局管理器 FlowLayout:流式布局管理器 GridLayout:网格布局管理器 今天先说说BorderLayout 我们先修改下UI类,这次是最后一次修改,这次会将UI类与管理器和控件彻底分开,再也不用操作UI类 package Frame; import javax.swing.JFrame; public

多线程编程、Java I/O系统和Java图形界面编程

多线程编程: 一个正在运行的程序通常称为一个进程,每一个任务称为一个线程,中能够在一个程序内运行多线程的程序称为多线程程序. 线程与进程的区别:①每个进程都需要操作系统为其分配独立的内存空间: ②而同一个进程中的所有线程都在同一内存空间工作,这些线程可以共享同一块内存和系统资源. 线程的创建: 1)通过继承Thread类来创建线程: ①创建一个继承Thread类的类: ②在创建的Thread子类中重写run()方法,在方法中写入想要线程运行的代码: ③创建Thread子类的实例: ④通过调用该实

java进阶10 GUI图形界面 布局管理器之FlowLayout GridLayout

先说说FlowLayout 流式布局管理器. 效果 这是当第一行显示不下,才转到第二行的. 看看代码 package Frame; import java.awt.BorderLayout; import java.awt.FlowLayout; import javax.swing.JButton; import javax.swing.JFrame; public class MyLayout{ JFrame frame; public MyLayout(JFrame frame) { //

Java中的图形界面编程

前言 正文 Java中的图形界面编程 AWT/Swing AWT(Abstract Window ToolKits,抽象窗口工具集) 1.容器类:用来存储组件,实现容器布局 2.组件类:实现界面的一些特定功能 一个容器可以包涵多个组件,组件必须存放在容器中 3.布局管理器:实现容器的布局设置 4.图形类:包括一些基本图形 Swing是AWT的一个轻量级框架 java.lang.Object java.awt.Component java.awt.Container java.awt.Window

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

GTK+图形界面编程 Linux大多是在字符界面,但也可以开发图形界面 目前已经存在多种Linux下开发图形界面的程序开发包:最常用的是Qt和GTK+ Qt是一个跨平台的图形界面开发库,不仅仅支持Linux,还支持所有类型的Unix和Windows.Qt良好的封装机制使模块化程度非常高,可重用性强. 桌面KDE使用Qt开发 Qt使用C++作为其开发语言,而更多的Linux下的开发者用C,GTK+使用C语言开发.基于LGPL授权,所以,GTK+是开源的. 桌面GNOME基于GTK+开发