关闭

Java JFrame简单程序(SimpleJFrame.java)

199人阅读 评论(0) 收藏 举报
分类:

这里写图片描述

package com.learn.JFrame;

import java.awt.TextArea;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;

import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextField;

public class SimpleJFrame extends JFrame implements ActionListener {

    /**
     * 
     */
    private static final long serialVersionUID = 1L;

    JButton button;
    JButton Select;
    JButton btnOK;

    JTextField textfield;
    JPanel p;
    JFileChooser fc = new JFileChooser();
    TextArea area;

    public SimpleJFrame() {
        p = new JPanel(); // 建立一个面板
        this.getContentPane().add(p);// 把面板添加到框架
        p.add(new JButton("文本"));// 把一个文本按钮添加到面板
        textfield = new JTextField(10);
        p.add(textfield); // 把一个文本框添加到面板
        Select = new JButton("浏览");
        p.add(Select); // 把一个浏览按钮添加到面板
        Select.addActionListener(this);
        btnOK = new JButton("确定");
        p.add(btnOK);// 把一个确定按钮添加到面板
        btnOK.addActionListener(this);
    }

    public static void main(String[] args) {
        SimpleJFrame frame = new SimpleJFrame();
        frame.setSize(400, 400);
        frame.setLocationRelativeTo(null);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
    }

    @Override
    public void actionPerformed(ActionEvent e) {
        // TODO Auto-generated method stub
        // 当按下选择按钮,打开一个文件选择,文本框显示文件路径
        if (e.getSource() == Select) {
            int intRetVal = fc.showOpenDialog(this);
            if (intRetVal == JFileChooser.APPROVE_OPTION) {
                textfield.setText(fc.getSelectedFile().getPath());
            }
        } else if (e.getSource() == btnOK) { // 当按下确定按钮,生成一个新框架,框架里面有一个文本域,显示打开文件的内容
            JFrame f = new JFrame();
            f.setSize(400, 400);
            f.setLocationRelativeTo(null);
            f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            String extensionName = getExtensionName(textfield.getText());
            if ("txt".equals(extensionName)) {
                f.setTitle("显示文本");
                area = new TextArea();
                // 获取文本值
                String text = readTxt(textfield.getText());
                area.setText(text);
                f.add(area);
                f.setVisible(true);
            } else if ("jpg".equals(extensionName) || "png".equals(extensionName) || "gif".equals(extensionName)) {
                f.setTitle("显示图片");
                Icon img = new ImageIcon(textfield.getText());
                JLabel label = new JLabel(img);
                // 添加滚动条
                JScrollPane jsp = new JScrollPane(label);
                f.add(jsp);
                f.setVisible(true);
            } else {
                JOptionPane.showMessageDialog(null, "请选择txt/jpg/png/gif格式的文件!");
            }
        }
    }

    private String getExtensionName(String filename) {
        if ((filename != null) && (filename.length() > 0)) {
            int dot = filename.lastIndexOf('.');
            if ((dot > -1) && (dot < (filename.length() - 1))) {
                return filename.substring(dot + 1);
            }
        }
        return filename;
    }

    private String readTxt(String path) {
        if (path == null || "".equals(path)) {
            return "";
        }
        StringBuffer sb = new StringBuffer();
        File file = new File(path);
        InputStreamReader read = null;
        BufferedReader reader = null;
        try {
            read = new InputStreamReader(new FileInputStream(file), "gb2312");
            reader = new BufferedReader(read);
            String line;
            while ((line = reader.readLine()) != null) {
                sb.append(line);
                sb.append("\n");
            }
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (read != null) {
                try {
                    read.close();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
            if (reader != null) {
                try {
                    reader.close();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }

        }
        return sb.toString();
    }
}
0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

java swing最简单实例(1) 一个空的JFrame

我准备写一个系列的java图形化界面的教程。每个程序都尽量只写维持运行所需的最简化程度的代码,好让大家都看懂。   使用java图形界面只需要jdk,eclipse即可。如果布局抽象能力不够强大,...
  • shirenfeigui
  • shirenfeigui
  • 2014-08-26 14:57
  • 26110

窗口程序(JFrame)创建菜单。菜单项。菜单条。

创建一个窗口程序(JFrame),标题栏起名为“浏览器”,有一个菜单条,有“文件”、“编辑”、“查看”3个菜单。文件菜单有两个菜单项,一项是“打开”,一项是“保存”,“打开”项做成子菜单,有两个菜单项...
  • xiaoyuyully
  • xiaoyuyully
  • 2016-11-22 11:31
  • 2702

java swing最简单实例(2) 往JFrame里面放一个容器或组件

可以往JFrame里面放的东西有两种,Containers和Components.介绍了如果添加一个容器或组件
  • shirenfeigui
  • shirenfeigui
  • 2014-08-26 15:28
  • 11786

Java JFrame简单聊天程序

  • 2013-01-16 13:22
  • 8KB
  • 下载

java swing最简单实例(2) 往JFrame里面放一个容器或组件

可以往JFrame里面放的东西有两种,Containers和Components.介绍了如果添加一个容器或组件
  • shirenfeigui
  • shirenfeigui
  • 2014-08-26 15:28
  • 11786

java使用JFrame连接mysql数据库,实现简单登陆。

package cn.entity; //用户实体类 public class Users { private int Id; private String Name; pr...
  • ting2016love
  • ting2016love
  • 2017-04-25 00:35
  • 214

java swing最简单实例(1) 一个空的JFrame

我准备写一个系列的java图形化界面的教程。每个程序都尽量只写维持运行所需的最简化程度的代码,好让大家都看懂。   使用java图形界面只需要jdk,eclipse即可。如果布局抽象能力不够强大,...
  • shirenfeigui
  • shirenfeigui
  • 2014-08-26 14:57
  • 26110

Java-JFrame-swing教务管理系统简单版

教务管理系统简单版 学生信息添加,修改,删除,模糊查找,分页,简单封装 学生登陆,注册功能等功能。 项目面向Java-JFrame-swing初学者,仅供交流使用,有问题请指出。 实现功能如下:pac...
  • KouZuoKouKouZuo
  • KouZuoKouKouZuo
  • 2017-12-24 21:49
  • 65

JAVA程序设计(12.1)---- JFrame 监听器使用 内部类 匿名内部类 接口

要用窗口都直接继承JFrame  为了使用监听器 可以选择  1使用内部类 内部类有监听器接口 2 主类直接加监听器接口 3匿名内部类 直接实现 package com.lovo; /** ...
  • Anubies
  • Anubies
  • 2014-10-31 22:13
  • 1216

Java集合框架上机练习题(泛型、JFrame)用户分别从两个文本框输入学术的姓名和分数,程序按成绩排序将这些学生的姓名和分数显示在一个文本区中。

2 编写一个应用程序,用户分别从两个文本框输入学术的姓名和分数,程序按成绩排序将这些学生的姓名和分数显示在一个文本区中。 程序运行效果如图:
  • sunnnnh
  • sunnnnh
  • 2017-12-03 12:16
  • 141
    个人资料
    • 访问:6703次
    • 积分:185
    • 等级:
    • 排名:千里之外
    • 原创:10篇
    • 转载:10篇
    • 译文:0篇
    • 评论:1条
    文章分类