上机题目(初级)- 用数组实现记事本+光标和删除(Java)
2016-03-06 09:46
483 查看
上一节实现了记录字符的功能,本节将实现光标和键盘左右键删除功能。代码如下:
运行实例如下:
这个功能还蛮有意思,按左键删除,按右键被删除的字符会重现。
package com.java.test; import java.awt.Graphics; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import javax.swing.JFrame; import javax.swing.JPanel; public class Book { public static void main(String[] args) { JFrame jFrame=new JFrame(); jFrame.setSize(300, 500); MyPanel myPanel=new MyPanel(); jFrame.add(myPanel); jFrame.addKeyListener(myPanel); myPanel.addKeyListener(myPanel); jFrame.show(); } } class MyPanel extends JPanel implements KeyListener{ char[] chars=new char[1000]; int size=0; @Override public void paint(Graphics g) { super.paint(g);//清除屏幕 for (int i = 0; i < size; i++) { g.drawString(chars[i]+"", 10+8*i, 10); } g.drawLine(10+size*8, 0, 10+size*8, 10);//加入光标 } @Override public void keyPressed(KeyEvent e) { if(e.getKeyCode()>=KeyEvent.VK_A&&e.getKeyCode()<=KeyEvent.VK_Z){ chars[size]=e.getKeyChar(); size++; }if(e.getKeyCode()==KeyEvent.VK_LEFT){ if(size>0){ size--; } }if(e.getKeyCode()==KeyEvent.VK_RIGHT){ if(size<1000){ size++; } } repaint(); } @Override public void keyReleased(KeyEvent e) { } @Override public void keyTyped(KeyEvent e) { } }
运行实例如下:
这个功能还蛮有意思,按左键删除,按右键被删除的字符会重现。
相关文章推荐
- java之jms简介
- 把Java数组转换为List时的注意事项
- 上机题目(初级)- 用数组实现记事本(Java)
- 在web service间传递java bean
- Spring工作流程
- Java小练习
- 2016蓝桥杯假期任务之《买不到的数目》
- 怎么解决eclipse报PermGen space异常的问题
- spring aop报错:Cannot proxy target class because CGLIB2 is not available.
- 【代码笔记】Java基础:Java的方法和类
- 使用Java的Lucene搜索工具对检索结果进行分组和分页
- struts实现MVC
- Java你可能不知道的事系列1
- 在Spring中配置使用commons-logging的simplelog来输出日志
- java 爬虫
- java 爬虫
- 关于JAVA中的Synchronization和interface误用
- Java定义class
- Java SE7新特性之try-with-resources语句
- 20145240《Java程序设计》第一周学习总结