GUI用户图形界面

/*记事本小练习
 * GUI & IO综合运用
 */

import java.awt.*;
import java.awt.event.*;
import java.io.*;

public class Test33 {
    public static void main(String[] args) {

        MyTest mytest = new MyTest();
        mytest.frameInit(); //运行窗口
    }
}

class MyTest{

    //定义成员变量,包括窗体,文本区域,对话框,File类,菜单等
    private Frame myFrame;  

    private TextArea ta;

    private FileDialog openDialog;
    private FileDialog saveDialog;

    private File f;

    private MenuBar mb ;
    private Menu m1;
    private MenuItem mi1,mi2,mi3;

    MyTest() {

    }

    public void frameInit() { //实现窗体

        myFrame = new Frame("MyEditor");
        myFrame.setBounds(100, 50, 700, 650);

        ta = new TextArea();
        myFrame.add(ta);

        openDialog = new FileDialog(myFrame, "打开文件",  FileDialog.LOAD);
        saveDialog = new FileDialog(myFrame,"保存",FileDialog.SAVE);

        menuInit();  //调用菜单实现方法
        myEvent();  //调用事件

        myFrame.setVisible(true);

    }

    public void menuInit() { //菜单实现

         mb = new MenuBar() ;

         m1 = new Menu("文件");

         mi1 = new MenuItem("打开");
         mi2 = new MenuItem("保存");
         mi3 = new MenuItem("关闭");

         mb.add(m1);
         m1.add(mi1);
         m1.add(mi2);
         m1.add(mi3);

         myFrame.setMenuBar(mb);
    }

    public void myEvent() { //事件

        myFrame.addWindowListener(new WindowAdapter() {  //关闭窗口红叉事件

            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });

        mi1.addActionListener(new ActionListener() {  //打开事件

            @Override
            public void actionPerformed(ActionEvent e) {

                openDialog.setVisible(true);

                String dirPath = openDialog.getDirectory();
                String name =  openDialog.getFile();

                if(dirPath == null||name ==null)
                    return;

                ta.setText("");

                //System.out.println(dirPath);
                f = new File(dirPath, name);
                String temp = null;
                try {
                    BufferedReader bf = new BufferedReader(new FileReader(f));

                    while((temp = bf.readLine())!=null)
                        ta.append(temp+"\r\n");

                } catch (IOException e1) {

                    e1.printStackTrace();
                }

            }

        });

        mi2.addActionListener(new ActionListener() {  //保存事件

            @Override
            public void actionPerformed(ActionEvent e) {

                saveDialog.setVisible(true);

                String dirPath = saveDialog.getDirectory();
                String name = saveDialog.getFile();

                if(dirPath == null||name ==null)
                    return;

                f = new File(dirPath, name);
                String temp = null;
                try {
                    BufferedWriter bw = new BufferedWriter(new FileWriter(f));

                    String text = ta.getText();

                    bw.write(text);
                    bw.flush();

                } catch (IOException e1) {

                    e1.printStackTrace();
                }

            }

        });

        mi3.addActionListener(new ActionListener() {  //关闭事件

            public void actionPerformed(ActionEvent E) {
                System.exit(0);
            }
        } );
    }

}
时间: 2024-11-02 13:09:56

GUI用户图形界面的相关文章

非专业码农 JAVA学习笔记 用户图形界面设计与实现-所有控件的监听事件

用户图形界面设计与实现-监听事件 System.applet.Applet (一)用户自定义成分 1.绘制图形 Public voit piant(Ghraphics g){  g.drawLine等图形名称(坐标1234);g.file图形名(坐标123)} 2.设置字体-Font类 (1)定义font:Font myfont=new Font(“字体”,”样式”,字号); 例如:Font myfont=new Font(“宋体”,Font.BOLD,12); (2)引用定义的Font:类/容

【Python】 用户图形界面GUI wxpython II

wxpython - 布局和事件 这章主要记录布局器Sizer以及事件的用法. // 目前还需要记录的:Sizer的Add方法加空白,Sizer的Layout,Sizer的Remove如何有效 ■ 布局 之前介绍的所有组件,如果不把它们的pos写死的话,页面上它们会互相重叠,导致没法看.而Sizer就是一个很好的优化布局的工具,通过此可以灵活地管理组件之间的相对位置. Sizer大概的可以被分成GridSizer(网格布局)和BoxSizer(线性布局).Sizer的用法概括起来就是创建Size

【Python】 用户图形界面GUI wxpython III

wxpython - 更多组件 我写到的这些组件可能一来不是很详细,二来不是最全的,想要更好地用这些组件,应该还是去看看教程和别的示例.比较简单的,推荐http://download.csdn.net/album/detail/459 辛星wpython教程 ■ 复选框 CheckBox 复选框需要对每个单独的选项构建,常用的构造方法是:CheckBox(parent,id,label,pos,size) 事件中的EVT_CHECKBOX是指被Bind的checkbox被勾选或取消时发生的事件

centOS7下安装GUI图形界面

1.如何在centOS7下安装GUI图形界面 当你安装centOS7服务器版本的时候,系统默认是不会安装GUI的图形界面程序,这个需要手动安装CentOS7 Gnome GUI包. 2.在系统下使用命令安装gnome图形界面程序 在安装Gnome包之前,需要检查一下安装源(yum)是否正常,因为需要在yum命令来安装gnome包. 第一步:先检查yum 是否安装了,以及网络是否有网络.如果这两者都没有,先解决网络,在解决yum的安装. (配置步骤可以查看我的博客文章-centOS-配置网络地址-

Java 图形界面事件处理机制

Java语言提供了一系列的用户图形界面的组件,主要有两个包:java.awt,和 javax.swing. 其中,awt包是早期包,swing包是后期提供的用户界面包. swing包组件与awt包组件的区别在于:swing包组件 通常不依赖于 当前平台GUI功能. swing组件优势:1.跨平台,2.移植性强,3.swing扩展了awt包,组件更加丰富,使用更加方便. 事件处理机制: Java中使用委托事件模型来处理事件. 委托事件模型分为三个部分:事件源.事件对象.事件监听器. 事件源:指可以

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

下载.设置和运行Quartz(GUI)图形界面程序----Quartz Web 一.获取Quartz Web程序(Quartz GUI).早期的 Quartz 框架开发者意识到一个 GUI 对于某类用户群体是必需的.几年前,一个 Web 应用被创立,它可用于管理 Quartz 框架.虽说是历经了几年有相当投入的开发,但不得不说的,总是时断时续的.近来出现有更多的要求对这个应用的更新与支持,因而又重新吸引了新的开发者自愿的工作并使之保持不断更新.这个应用就是知名的 Quartz Web 程序.Qu

Java GUI图形界面开发工具

Applet 应用程序     一种可以在 Web 浏览器中执行的小程序,扩展了浏览器中的网页功能. 缺: 1.需要下载 Applet 及其相关文件 2.Applet 的功能是受限制的 优: 3.无需安装 4.平台无关性 5.安全 Applet 的生命周期 编写一个 Applet 程序,需要继承 JApplet 类,这个类提供了 Applet 程序的基本行为方式,只需要覆写其中的方法就可以完成我们自己的 Applet 程序. 生命周期 1.初始化阶段:init 方法 在 Applet 执行之初,

python图形界面(GUI)设计

不要问我为什么要用 python 来做这种事,我回到“高兴咋地”也不是不可以,总之好奇有没有好的解决方案.逛了一圈下来,总体上来说,python 图形界面有以下几个可行度比较高的解决方案. 1. pyside 为什么要把它写第一个呢?因为已经接触过 Qt,所以,总体来讲,感觉它更亲一点.没错,它就是 pyQt 的 LGPL 版本(Qt官方的介绍是,Python for Qt). 这个框架最早是由 Nokia 的芒果团队做完的,但是,众所周知的原因,这个团队已经消失了.目前从找到的资料来看,Qt

十. 图形界面(GUI)设计2.框架窗口

窗口是GUI编程的基础,小应用程序或图形界面的应用程序的可视组件都放在窗口中,在GUI中,窗口是用户屏幕的一部分,起着在屏幕中一个小屏幕的作用.有以下三种窗口: Applet窗口:Applet类管理这个窗口,当应用程序程序启动时,由系统创建和处理: 框架窗口(JFrame):这是通常意义上的窗口,它支持窗口周边的框架.标题栏,以及最小化.最大化和关闭按钮: 一种无边框窗口(JWindow):没有标题栏,没有框架,只是一个空的矩形. 用Swing中的JFrame类或它的子类创建的对象就是JFram