如果不采用JTextField和JTextArea组件,使用什么swing可以实现和那个命令行程序一样的功能呢?
解决方案 »
- prepareStatement在关闭的时候,连接会自动关闭吗?
- 菜鸟线程问题。
- java换行及中文显示问题
- 谁碰到过这样的问题啊?怎么解决!!!分不够,我再加
- 报这错误什么原因,走过路过来瞧瞧!!!!
- !!!使用EXE4J生成JAVA可执行文件,总是报错,明天就交论文了.!!!
- ::::::怎样在俄eclipse工具栏中添加"重建工程"的按钮?:::::
- JAVA的程序如何设置为中文显示
- 有谁能够告诉我,为什么JB9里连接sql server2000时只能连接系统自带的那些库(如pubs)
- 一个很简单的问题
- 有要请教大家,真是不好意思,是关于applet和jsp的!!!!!
- 对象的转换问题,请指教
JTextField jt = new JTextField(20);
JTextArea ja = new JTextArea(20, 20);
jt.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String text = jt.getText();
if(text.equals("link"))
ja.setText("What host are you linking to?");
jt.setText("");
}
});
cmd = msg;......... if (cmd.equals("talk")) {
}
else if (cmd.equals("link")) {
}
else if (cmd.equals("create")) {
}
.......
}
link{ }中第1句,但是接下来,我再从JTextArea中输入host name的时候,再调用interpretCommand(),便无法识别host name这个命令了.我感觉楼上的方法不太可行,可能是没明白我的意思,还是谢谢,继续顶
JTextArea ja = new JTextArea(20, 20);
jt.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String text = jt.getText();
if(text.equals("link")){
ja.setText("What host are you linking to?");
String host=ja.readLine();
ja.setText("...")
String me=......
添加其他的用来接受参数
然后调用interpretCommand(host,me,,,),
}
if (text.equals("me")){
定义其他的...
}
});
static BufferedReader in =
new BufferedReader(new InputStreamReader(System.in));
public static String getLine(String prompt) {
String line = null;
do { // Loop until a non-empty line is entered
try {
System.out.print(prompt); // Display prompt
System.out.flush(); // Display it right away
line = in.readLine(); // Get a line of input
if (line != null) line = line.trim(); // Strip off whitespace
} catch (Exception e) {} // Ignore any errors
} while((line == null) || (line.length() == 0));
return line;
}现在其实我要解决的问题,就是在swing组件中用什么样的方法可以代替命令行中的这个readLine()方法
在Gui这个类中仿照命令行模式中的getLine(){}写一个方法,
当按下会车的时候,便回从JTextField中获取输入的内容,并返回line,如果没有回车,该方法一直处于等待状态,不返回.提醒一下:并不是传统的事件模型那样,当回车按下的时候,调用readLine()这个方法.这个readLine()方法是被其他类中的interpretCommand(){ }方法块中调用的.
public int getSelectionEnd() 获得选定文本的结束位置。
public int getSelectionStart() 获得选定文本的开始位置。
public String getSelectedText() 获得TextComponent中被选择的文本。
public String getText() 获得TextComponent的文本。
public void select(int start,int end) 选择TextComponent中介于选定位置之间的文本。
public void selectAll() 选择TextComponent中所有的文本。
public void setEditable(boolean e) setEditable:设定TextComponent是否可以编辑,若设定为true表示可以编辑;若设定为false表示不可以编辑。
public void setText(String text) 设定文本字符串为TextComponent的内容。
回复人: abcdhy(程旭) 当按下会车的时候,便回从JTextField中获取输入的内容,并返回line,如果没有回车,该方法一直处于等待状态,不返回晕,使用多线程就可以了啊!你不使用事件模型,就是怕 read() 不返回,把整个GUI都卡住了.你可以在JTextField里开启另一个线程,在里另一个线程调用 read() 方法就可以了啊!
具体你自己实现吧!
看到点希望了,但是使用线程的话如何判断用户是否输入完一条信息,并且按了回车键?继续讨论,顶