Topic: 文本编辑器的问题(运行时提示数组越界)

  Print this page

1.文本编辑器的问题(运行时提示数组越界) Copy to clipboard
Posted by: liyan5953
Posted on: 2005-06-22 13:53

请使用准确的文字描述作为标题
Have you used a debugger to locate where 数组越界?



我在做一个文本编辑器是遇到一些问题,请高手指点一下
代码如下:

事件处理
package liyanpro;

import java.awt.event.*;

/**
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Copyright Coffee 2005</p>
* <p>Company: </p>
* @author not attributable
* @version 1.0
*/

public class Context_C implements KeyListener {
int x,y;
Context_M context_m;
Context_V context_v;
char c;

public Context_C() {
}

public void init(Context_M m,Context_V v){
context_m=m;
context_v=v;
}

public void getxy(){
x=context_v.getX();
y=context_v.getY();
}

/**
* keyPressed
*
* @param e KeyEvent
*/
public void keyPressed(KeyEvent e) {
c=e.getKeyChar();
if(c!='\n'){
this.getxy();
if(x>80){
context_v.jTextArea1.append("\n");
this.getxy();
}
context_m.setchar(y,x,c);
}
}

/**
* keyReleased
*
* @param e KeyEvent
*/
public void keyReleased(KeyEvent e) {
}

/**
* keyTyped
*
* @param e KeyEvent
*/
public void keyTyped(KeyEvent e) {
}
}

数据处理
package liyanpro;

import java.util.*;

public class Context_M {
Vector rows;
char[] line = null;
static final int linelength = 80;

public Context_M() {
rows = new Vector();
creatLine();
}

public void creatLine(){
line = new char[linelength];
rows.add(line);
}

public void setchar(int row,int col,char c){
if(rows.size()-1<row){
this.creatLine();
}
line=(char[])rows.get(row);
line[col - 1] = c;
rows.set(row, line);
}
}
显示
package liyanpro;

import java.awt.*;
import javax.swing.*;

/**
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Copyright Coffee 2005</p>
* <p>Company: </p>
* @author not attributable
* @version 1.0
*/

public class Context_V extends JPanel {
BorderLayout borderLayout1 = new BorderLayout();
JTextArea jTextArea1 = new JTextArea();
Context_C context_c;
Context_M context_m;
public Context_V() {
}

public void init(Context_C c,Context_M m) {
context_c=c;
context_m=m;
this.setLayout(borderLayout1);
jTextArea1.addKeyListener(context_c);
this.add(jTextArea1, BorderLayout.CENTER);
}
}

运行的时候提示我数组越界,那里不对,请高手指点一下,谢谢~~~


   Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent
Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1
客服电话 18559299278    客服信箱 714923@qq.com    客服QQ 714923