关于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的功能没有用?
展开
 我来答
198901245631
推荐于2018-05-11 · TA获得超过3.5万个赞
知道大有可为答主
回答量:9037
采纳率:92%
帮助的人:1740万
展开全部
因为list是有顺序的,先add的编号就小(从0开始),这样就可以通过remove(编号)的形式进行删除,之后后面的会编号依次变小(也就是说编号总是连续的)。举例:
List list = new linkedList();
list.add("0");
list.add("1");
list.remove(0);
结果就是:list.get(0) =1;
备注:如果在一次“list.remove(0);”那么list对象就是个空。
wh猎人
2015-04-14 · TA获得超过1125个赞
知道大有可为答主
回答量:1157
采纳率:89%
帮助的人:664万
展开全部

在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上边的小虫子图标就可以了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式