java高手帮忙看下

来源:百度知道 编辑:UC知道 时间:2024/05/24 16:41:54
import java.awt.*;
import java.awt.event.*;
import java.io.BufferedReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.StringTokenizer;

import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JTextArea;

public class Cedit {
public static void main(String[] args) {
Edit edit = new Edit();
edit.ini();
}

}

class Edit extends JFrame {
JFrame frame = new JFrame("汉字行编辑器");
static JTextArea InTxt;
static JTextArea EditTxt;
static int judge ;
static String content;
public void ini(){
frame.setSize(600, 600);
frame.setVisible(true);
frame.setLayout(null);
InTxt = new JTextArea("", 8, 20);
EditTxt = new JTextArea("", 8, 20);
InTxt.setLineWrap(true);
EditTxt.setLineWrap(true);
frame.add(InTxt);
frame.add(EditTxt);

你一起来的时候judge 为0,InTxt.addKeyListener(new TxtIn());这个监听就加上去了。你在TxtIn的keypress方法里也没有对judge 进行判断,所以你后面的键盘事件他照样相应。
把你TxtIn的keypress方法的判断条件该成这样就只调用一次了。if (e.getKeyCode() == KeyEvent.VK_ENTER && Edit.judge == 0)
建议如果你不休要某个监听就remove掉

你这算是屏蔽了什么呢? 只不过是加了些判断在里面而已呀.

InTxt.addKeyListener(new TxtIn());
System.out.println("输入被执行了");
}
if(judge == 1){
InTxt.addKeyListener(new TxtEdit());

仔细看看这个地方, 你有两个 事件监听, 你能确定两个地方都关闭监听了吗?

一旦在空行时打Enter,出现INPUT!,以后每输入一行打Enter时会出现INPUT!。

if(judge == 0){
InTxt.addKeyListener(new TxtIn());
System.out.println("输入被执行了");
}
if(judge == 1){
InTxt.addKeyListener(new TxtEdit());
System.out.println("编辑被执行了");
}
这俩个if,最好写成if跟else if ,而且你的judge没初始化过吧?