zoukankan      html  css  js  c++  java
  • 第十七周周总结 Swing

    考试系统
    1.登录功能 用户和密码存在在哪里? 文件
    2.考试功能 考试题目和答案存在哪? 文件
    3.展示功能 GUI Graphical User Interface图形用户接口
    #GUI
    Java集合 String
    I/O
    文件
    c--->桌面应用程序
    c/s--->client Server 客户端/服务器 QQ
    *B/S-->Browser Server 浏览器/服务器 淘宝

       GUI
       Graphical  User  Interface
       图形用户接口
       就是采用图形的方式,进行操作页面的展示
       AWT     (Abstract  Window toolkit)
       Swing   摆动,悬挂的意思
                AWT             Swing
       窗体     Frame           JFrame
       面板     Panel           JPanel  
       组件     Button          JButton      按钮
                Label           JLabel      标签
                TextField       JTextField  文本框
                PasswordField               密码框
                                 
                TextArea        JTexArea 文本域
                JMenuBar 菜单条    JMenu 菜单      JMenuItem 菜单项 
       事件     ActionListener   动作/响应事件
                KeyListener      键盘事件
    

    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.awt.event.InputEvent;
    import java.awt.event.KeyEvent;
    import java.io.*;
    import javax.swing.*;
    
    public class Bz implements ActionListener {//ActionListener用于接收操作事件的侦听器接口
    	JFrame frame;      //窗体   
        JMenuBar bar;      //菜单条  
        JMenu fileMenu, editMenu;  //菜单
        JMenuItem newItem, openItem, saveItem, saveasItem, closeItem;  //菜单项
        ImageIcon newIcon, openIcon, saveIcon, saveasIcon, closeIcon;//图标
        JScrollPane scroll;         //滚动条
        JTextArea area;             //文本域
        JFileChooser chooser;       //文件选择器
        File file;                  //与电脑上的文件或文件夹产生一 一对应的的映射关系
        
        public Bz() {
            frame = new JFrame("记事本");   //创建“记事本”窗体
            bar = new JMenuBar();           //创建菜单条
            fileMenu = new JMenu("文件");   //创建“文件”菜单
            editMenu = new JMenu("编辑");   //创建“编辑”菜单
            newIcon = new ImageIcon("f:" + File.separator + "tupian" + File.separator + "1.png");//添加图标
            openIcon = new ImageIcon("f:" + File.separator + "tupian" + File.separator + "2.png");
            saveIcon = new ImageIcon("f:" + File.separator + "tupian" + File.separator + "3.png");
            saveasIcon = new ImageIcon("f:" + File.separator + "tupian" + File.separator + "4.png");
            closeIcon = new ImageIcon("f:" + File.separator + "tupian" + File.separator + "5.png");
            newItem = new JMenuItem("新建(N)", newIcon);         //创建“新建”菜单项
            openItem = new JMenuItem("打开(O)", openIcon);       //创建“打开”菜单项
            saveItem = new JMenuItem("保存(S)", saveIcon);       //创建“保存”菜单项
            saveasItem = new JMenuItem("另存为(A)", saveasIcon); //创建“另存为”菜单项
            closeItem = new JMenuItem("关闭(X)", closeIcon);     //创建“关闭”菜单项
            area = new JTextArea();                              //创建文本域
            scroll = new JScrollPane(area);                      //创建滚动条
            
            newItem.setMnemonic(KeyEvent.VK_N);      //设置组合键ctrl
            openItem.setMnemonic(KeyEvent.VK_O);
            saveItem.setMnemonic(KeyEvent.VK_S);
            saveasItem.setMnemonic(KeyEvent.VK_A);
            closeItem.setMnemonic(KeyEvent.VK_X);
            
            newItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N, InputEvent.CTRL_DOWN_MASK));//将组合键和“新建”指令菜单项结合
            openItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O, InputEvent.CTRL_DOWN_MASK));
            saveItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S, InputEvent.CTRL_DOWN_MASK));
            saveasItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A, InputEvent.CTRL_DOWN_MASK));
            closeItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X, InputEvent.CTRL_DOWN_MASK));
            
            fileMenu.add(newItem);           //将“新建”菜单项加入“文件”菜单
            fileMenu.add(openItem);          //将“打开”菜单项加入“文件”菜单
            fileMenu.add(saveItem);          //将“保存”菜单项加入“文件”菜单
            fileMenu.add(saveasItem);        //将“另存为”菜单项加入“文件”菜单
            fileMenu.addSeparator();         //将“文件”菜单添加到窗口
            fileMenu.add(closeItem);         //将“关闭”菜单项加入“文件”菜单
            
            newItem.addActionListener(this); //观察者模式,接收到指令就开始执行方法
            openItem.addActionListener(this);
            saveItem.addActionListener(this);
            saveasItem.addActionListener(this);
            closeItem.addActionListener(this);
            
            bar.add(fileMenu);     //将“文件”菜单加入到菜单条
            bar.add(editMenu);     //将“编辑”菜单加入到菜单条
    
            frame.setJMenuBar(bar); //将菜单条添加到窗口上
            frame.add(scroll);      //将滚动条加入到窗体
            frame.setSize(600, 450);//设置窗体出现时的位置和自身的宽高
            frame.setVisible(true); //设置点击关闭按钮  窗体执行完毕
    
    }
        //绑定事件监听器 
        public void actionPerformed(ActionEvent event){
            
            Object obj=event.getSource();//接收的指令
            if(obj instanceof JMenuItem) {
                JMenuItem item=(JMenuItem) obj;//(强制向下转型)如果点击的是菜单条
                if(item == newItem) {
                    new Bz();//新建
                }else if(item == openItem) {
                    chooser = new JFileChooser();//打开
                    chooser.showOpenDialog(null);
                    file = chooser.getSelectedFile();//与硬盘内的文件产生映射
                    try {
                        FileInputStream fis= new FileInputStream(file);
                            byte[] b = new byte[fis.available()];
                            fis.read(b);//读取
                            area.append(new String(b));
                            fis.close();//关闭流
                        
                    } catch (FileNotFoundException e) {
                        
                        e.printStackTrace();
                    } catch (IOException e) {
                        
                        e.printStackTrace();
                    }
                }else if(item == saveItem) {//保存
                    if(file!=null) {
                        try {
                            PrintStream out = new PrintStream(new FileOutputStream(file));
                            out.print(this.area.getText());
                            out.close();
                        } catch (FileNotFoundException e) {
                            
                            e.printStackTrace();
                        }
                    }
    
         }else if(item == saveasItem) {//另存为
        	                chooser.showSaveDialog(null);
        	                file = chooser.getSelectedFile();	                 
        	                    try {
        	                        if(!file.exists()) {
        	                        file.createNewFile();
        	                        }
        	                        FileOutputStream fos=new FileOutputStream(file);
        	                        byte[] b = area.getText().getBytes();
        	                        fos.write(b);
        	                        fos.close();
        	                    } catch (IOException e) {                        
        	                        e.printStackTrace();	                 
        	            }
        	        }else if(item == closeItem) {
        	            System.exit(1);
        	        }
        	    }
        	  }
        
        
        	public static void main(String[] args) {
                       new Bz();
                       }
    }
    
  • 相关阅读:
    python基础语法3 元组,字典,集合
    python基础语法3 整形(进制转换),浮点,字符串,列表
    python基础语法2 流程控制 if,while,for
    python基础语法1 用户交互,基本数据类型,格式化输出,运算符
    编程语言和python介绍, 变量,小整数池,垃圾回收机制
    计算机基础
    python奇闻杂技06 基于百度大脑AI的人工智能,百度颜值检测,语音合成与识别
    python奇闻杂技05 爬虫初步学习+jieba分词+词云库+哔哩哔哩弹幕爬取示例(数据分析pandas)
    python奇闻杂技04 列表,元祖,统计值计算示例,py文件转为EXE文件,爬虫初步学习
    python 基础 字符串格式化
  • 原文地址:https://www.cnblogs.com/shsy/p/12045995.html
Copyright © 2011-2022 走看看