GUI设计

package exerciseEvent;

/*GUI设计步骤:
建立用户界面
    设计一个顶层容器对象,如JFrame
    确定布局,增加组件
    改变组件颜色、字体
增加事件处理
    编写事件监听器类(内含事件处理方法)
    在事件源上注册事件监听器对象
显示用户界面
*/
/*
习题:利用图形界面编写一个简单的文本编辑器,包含一个文本域和一个保存按钮。单击保存按钮将文本域(TextArea)中的内容保存到一个文本文件mytext.txt中。
提示:
使用TextArea的getText()方法可以获得文本域中的内容。
使用内部类定义事件监听器,实现事件监听器接口ActionListener。
可使用fileWriter的Write(String str, int off, int len)方法将内容写入文件。
*/


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

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextArea;

public class demo8_Event extends JFrame{
    final String path = "D:/mytext.txt";
    JPanel jp=null;
    JTextArea jta=null;
    JButton jb=null;
    String filename;

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        demo8_Event ex=new demo8_Event();

    }
    public demo8_Event(){
        init();  //初始化
        jb.addActionListener(new TextActionListener());

        this.setSize(600, 450);
        this.setResizable(false);  //表示生成的窗体大小是由程序员决定的,用户不可以自由改变该窗体的大小--不可以扩大缩小
        this.setVisible(true);     //可视化
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);   //关闭文件


    }
    void init(){
        jta=new JTextArea(22,50);  //先设置组件
        jb=new JButton("Save");
        jb.setBackground(Color.YELLOW);
        jp=new JPanel();
        jp.setBackground(Color.GREEN);
        jp.add(jta);   //将组件添加入面板
        jp.add(jb);
        this.add(jp);  //将面板添加入容器
        //this.add(jp,BorderLayout.CENTER);   //对组件进行布局,不布局可以,默认布局BorderLayout
        //this.add(jb,BorderLayout.SOUTH);

        //System.out.println(this);
    }

    class writeFile{
        public writeFile(String path,String str) throws IOException{
            File f = new File(path);
            OutputStream out = new FileOutputStream(f); // 创建一个输出流对象
            byte[] b = str.getBytes();//将字符串转化为byte数组存放
            out.write(b);  //向文件中写入
            out.close();   //关闭输出流
        }
    }
    class TextActionListener implements ActionListener{
        @Override
        public void actionPerformed(ActionEvent a) {
            String str = jta.getText();
            if(a.getActionCommand().equals("Save")){
                try{
                    System.out.println(str);  //输出str
                    new writeFile(path,str); //向文件内写入str
                }catch(IOException e){
                    System.out.println(e.getStackTrace());
                }
            }
        }
    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值