关于java linkedList 的remove方法 5
importjava.awt.*;importjava.awt.event.*;importjava.util.*;importjavax.swing.*;publicc...
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import javax.swing.*;
public class MyNote {
public static void main(String args[]){
JFrame w = new JFrame() ;
w.setSize(300, 400);
MyPanel mp = new MyPanel();
w.add(mp);
w.addKeyListener(mp);
mp.addKeyListener(mp);
w.setVisible(true);
}
}
class MyPanel extends JPanel implements KeyListener {
LinkedList ll = new LinkedList() ;
int cursor = 0 ;
public void paint(Graphics g) {
super.paint(g);
for(int i = 0 ; i < ll.size() ; i ++){
g.drawString(ll.get(i).toString(), 10+i*8, 10) ;
}
g.drawLine(10+cursor*8, 0, 10+cursor*8, 10) ;
}
public void keyPressed(KeyEvent e) {
if(e.getKeyCode()>=KeyEvent.VK_A&&e.getKeyCode()<=KeyEvent.VK_Z){
ll.add(cursor, e.getKeyChar()) ;
cursor ++ ;
}
if (e.getKeyCode() == KeyEvent.VK_LEFT) {
if(cursor>0){
cursor -- ;
}
}
if (e.getKeyCode() == KeyEvent.VK_RIGHT) {
if(cursor<ll.size()){
cursor ++ ;
}
}
if(e.getKeyCode()==KeyEvent.VK_DELETE){
if(cursor<ll.size()){
ll.remove(cursor) ;
}
}
repaint();
}
public void keyReleased(KeyEvent arg0) {
}
public void keyTyped(KeyEvent arg0) {
}
}
运行中为什么delete的功能没有用? 展开
import java.awt.event.*;
import java.util.*;
import javax.swing.*;
public class MyNote {
public static void main(String args[]){
JFrame w = new JFrame() ;
w.setSize(300, 400);
MyPanel mp = new MyPanel();
w.add(mp);
w.addKeyListener(mp);
mp.addKeyListener(mp);
w.setVisible(true);
}
}
class MyPanel extends JPanel implements KeyListener {
LinkedList ll = new LinkedList() ;
int cursor = 0 ;
public void paint(Graphics g) {
super.paint(g);
for(int i = 0 ; i < ll.size() ; i ++){
g.drawString(ll.get(i).toString(), 10+i*8, 10) ;
}
g.drawLine(10+cursor*8, 0, 10+cursor*8, 10) ;
}
public void keyPressed(KeyEvent e) {
if(e.getKeyCode()>=KeyEvent.VK_A&&e.getKeyCode()<=KeyEvent.VK_Z){
ll.add(cursor, e.getKeyChar()) ;
cursor ++ ;
}
if (e.getKeyCode() == KeyEvent.VK_LEFT) {
if(cursor>0){
cursor -- ;
}
}
if (e.getKeyCode() == KeyEvent.VK_RIGHT) {
if(cursor<ll.size()){
cursor ++ ;
}
}
if(e.getKeyCode()==KeyEvent.VK_DELETE){
if(cursor<ll.size()){
ll.remove(cursor) ;
}
}
repaint();
}
public void keyReleased(KeyEvent arg0) {
}
public void keyTyped(KeyEvent arg0) {
}
}
运行中为什么delete的功能没有用? 展开
3个回答
展开全部
在paint中加上System.out.println("paint...."+ll.size());
在remove前后加两句:
System.out.println("B rmv...."+ll.size());
ll.remove(cursor) ;
System.out.println("A rmv...."+ll.size());
看看集合大小有没有变
追问
可以了,谢谢。
再问下KeyEvent_VK.DELETE对应的键是键盘的哪个键?
追答
应该就是del键吧?不然还能是哪个?
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2015-04-14
展开全部
你断点调试一下看看delete这个地方是什么值
更多追问追答
追问
我是新手,调试不来- -
追答
在里面的java页面左边显示多少行的地方双击一下,会出来一个小圆点,那就是断点,然后点一下eclipse上边的小虫子图标就可以了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询