zoukankan      html  css  js  c++  java
  • 第十三周学习总结&实验报告(八)

    图像界面

    件处理及监听处理

    1.键盘事件(KeyEvent)及监听处理(KeyListener)
    1.1加入事件监听

    super.addWindowListener(new WindowAdapter(){
    

    1.2 KeyListener接口方法

    void keyTyped(KeyEvent e)                           //键入某个键时调用
    void keyPressed(KeyEvent e)                        //键盘按下时调用
    void keyReleased(KeyEvent e)                       //键盘松开时调用
    

    1.3 KeyEvent 事件的常用方法

    public int getKeyCode()                                                //返回键入字符的键码
    public static String getKeyText(int keyCode)                           // 返回键入的信息,如“HOME”、“F1”等
    

    使用KeyAdapter适配器对键盘事件的监听

    2.鼠标事件及监听处理
    2.1 MouseListener 接口方法

    void mouseReleased(MouseEvent e)                                            //鼠标松开时调用
    void mouseExited(MouseEvent e)                                             //鼠标离开组件时调用
    

    2.2 MouseEvent 事件的常用方法

    public static final int BUTTON1/BUTTON2/BUTTON3                             //   表示鼠标左键/滚轴/右键的常量
    public int getButton()                                                      //以数字形式返回按下的鼠标键                                                                        
    public int getClickCount()                                                  //返回鼠标的单击次数      
    public int getX()/getY()                                                    //返回鼠标操作的X/Y坐标
    

    通过MouseAdapter实现对指定鼠标操作的监听

    3.单选按钮(JRadioButton)
    3.1 JRadioButton 类的常用方法

    public JRadioButton(Icon icon,boolean selected)                             //建立一个单选钮,并指定图片和其是否被选定
    public JRadioButton(String text)                                            //建立一个单选钮,并指定文字,默认为不选定
    public JRadioButton(String text,Icon icon,boolean selected)                 //建立一个单选钮,并指定图片、文字和其是否选定
    public void setText(String text)                                            // 设置显示文本
    public void setIcon(Icon defaultIcon)                                       // 设置图片
    

    3.2 将所有单选钮加入一个组中

    ButtonGroup group = new ButtonGroup();
    group.add(this.jrb1);
    group.add(this.jrb2);
    group.add(this.jrb3);
    

    3.3 JRadioButton 事件处理(ItemListener)
    3.3.1 ItemListener接口方法

    void itemStateChanged(ItemEvent e)                         // 当用户取消或选定某个选项时调用
    

    3.3.2 ItemEvent 类的常用方法及常量

    public static final int SELECTED/DESELECTED                    // 选项被选中/未被选中
    public Object getItem()                                      // 返回受事件影响的选项
    public int getStateChange()                                 // 返回选定状态的类型(已选择或已取消)
    

    4 复选框 JCheckBox

    4.1 JCheckBox 类常用方法

    public JCheckBox(Icon icon,boolean selected)                        //创建一个带图标的对象,并指定其是否选定
    public JCheckBox(String text,boolean selected,Icon icon)           //创建一个带文本和图标的对象,并指定其是否被选定
    

    5.菜单组件(JMenu 与 JMenuBar)

    5.1 JMenubar 的常用方法

    public JMenuBar()                                                   //创建新的JMenuBar对象
    
    public JMenu add(JMenu c)                                            //将指定的JMenu 加入到JMenuBar 中
    public JMenu getMenu(int index)                                      //返回指定位置的菜单
    public int getMenuCount()                                            // 返回菜单栏上的菜单数
    

    5.2 JMenu 的常用方法

    public JMenuItem add(JMenuItem menuItem)                           // 增加新的菜单项
    public void addSeparator()                                          //加入分割线
    

    5.3 JMenuItem 类的常用方法

    newItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,InputEvent.CTRL_DOWN_MASK))     //设置新建快捷键的组合键
    newItem.setMnemonic(KeyEvent.VK_N)                                                         // 添加新建项的助记符
    

    6 文件选择框 JFileChooser
    6.1 JFileChooser 类的常用方法

    public JFileChooser(String currentDirectoryPath)                                          //指定文件选择的目录
    public int showSaveDialog(Component parent throws HeadlessException                        //打开保存对话框,返回保存状态
    public void setApproveButtonText(String approveButtonText)                                  //设置文件选择的接收按钮内容
    

    实验报告 简易记事本的开发
    源代码:

    package Java;
    
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.awt.event.InputEvent;
    import java.awt.event.KeyEvent;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.PrintStream;
    
    import javax.swing.*;
    
    public class TextPad implements ActionListener{
    	JFrame frame;
    	JMenuBar bar;
    	JMenu fileMenu,editMenu;
    	JMenuItem  newItem,openItem,saveItem,keepItem,closeItem;
    	ImageIcon newIcon,openIcon,saveIcon,keepIcon,closeIcon;
    	JScrollPane scroll;
    	JTextArea area;
    	JFileChooser chooser;
    	File file;
    	private Object label;
    	
    public TextPad() {
    	frame = new JFrame("YZ");
    	bar = new JMenuBar();
    	fileMenu =new JMenu("文件");
    	editMenu = new JMenu("编辑");
    	newIcon = new ImageIcon("c:"+File.separator+"Users"+File.separator+"Jeff"+File.separator+"Desktop"+File.separator+"新建.jpg");
    	openIcon = new ImageIcon("c:"+File.separator+"Users"+File.separator+"Jeff"+File.separator+"Desktop"+File.separator+"打开.jpg");
    	saveIcon = new ImageIcon("c:"+File.separator+"Users"+File.separator+"Jeff"+File.separator+"Desktop"+File.separator+"另存为.jpg");
    	keepIcon = new ImageIcon("c:"+File.separator+"Users"+File.separator+"Jeff"+File.separator+"Desktop"+File.separator+"保存.jpg");
    	closeIcon = new ImageIcon("c:"+File.separator+"Users"+File.separator+"Jeff"+File.separator+"Desktop"+File.separator+"关闭.jpg");
    	
    	newItem = new JMenuItem("新建(N)",newIcon);
    	openItem = new JMenuItem("打开(O)",openIcon);
    	saveItem = new JMenuItem("另存为(A)",saveIcon);
    	keepItem = new JMenuItem("保存(S)",keepIcon);
    	closeItem = new JMenuItem("关闭(X)",closeIcon);
    	
    	area = new JTextArea();
    	scroll = new JScrollPane(area);
    	
    	newItem.setMnemonic(KeyEvent.VK_N);
    	openItem.setMnemonic(KeyEvent.VK_O);
    	saveItem.setMnemonic(KeyEvent.VK_A);
    	keepItem.setMnemonic(KeyEvent.VK_S);
    	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_A,InputEvent.CTRL_DOWN_MASK));
    	keepItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,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(keepItem);
    	fileMenu.addSeparator();
    	fileMenu.add(closeItem);
    	
    	newItem.addActionListener(this);
    	openItem.addActionListener(this);
    	saveItem.addActionListener(this);
    	keepItem.addActionListener(this);
    	closeItem.addActionListener(this);
    	
    	bar.add(fileMenu);
    	bar.add(editMenu);
    	
    	frame.setJMenuBar(bar);
    	frame.add(scroll);
    	frame.setSize(400,300);
    	frame.setVisible(true);
    	
    }
    
    @Override
    public void actionPerformed(ActionEvent event) {
    	
    	Object obj = event.getSource();
    	JMenuItem item = null;
    	JMenuItem memoryItem = null;
    	if(obj instanceof JMenuItem) {
    		JMenuItem item1=(JMenuItem) obj;
    		if(item1==newItem) {
    			new TextPad();
    		}else if (item1==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) {
    				// TODO Auto-generated catch block
    				e.printStackTrace();
    			}
    			
    		}else if(item1 ==saveItem) {
    			
    			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 (FileNotFoundException e) {
    			
    			e.printStackTrace();
    		} catch (IOException e) {
    			
    			e.printStackTrace();
    		}
    		}else if(item == closeItem) {
    			
    			System.exit(1);
    		}else if(item==memoryItem) {
    			if(file!=null) {
    				try {
    					PrintStream out = new PrintStream(new FileOutputStream(file));
    					out.print(this.area.getText());
    					out.close();
    				} catch (Exception e) {
    				((AbstractButton) this.label).setText("文件保存失败");
    					e.printStackTrace();
    				}
    			}
    		}
    	}
    }
    
    package Java;
    
    public class TestPad {
    	public static void main(String args[]) {
    		new TextPad();
    	}
    }
    

    程序运行截图:
    总结:这只是一个最基本的记事本,结合老师上课所讲的,很容易实现简单操作。学到了一些监视器的运用。要想开发功能更全面的记事本还需要加倍努力学习相关知识。

  • 相关阅读:
    JsonParse类
    vs2013提交项目到github
    js选中select
    按每20条分组查询
    批量修改图片格式
    当前日期后10天日期
    C#生成不重复随机数的方法
    接收端通过Request.InputStream读取流
    C#文件流的读写
    C#中HttpWebRequest的用法详解
  • 原文地址:https://www.cnblogs.com/ImportantMagic/p/11906985.html
Copyright © 2011-2022 走看看