我正在创建一个单一的软件。不要认为这个词是" Singlish" : - 。)
这是我的代码,
private void txt_titleKeyTyped(java.awt.event.KeyEvent evt) {
char c = evt.getKeyChar();
switch (c) {
case 'a':
txt_body.setText(txt_body.getText() + "අ");
break;
case 's':
txt_body.setText(txt_body.getText() + "ස");
break;
}
}
在这个应用程序中,当我输入字母" a"程序打印一个特定的字符。我有两个问题,
如果我按下#34; a"程序打印正确的字符("අ")并打印" a"
(像这样"අa")。
只有我需要"අ"。如何防止打印" a"。
如果我输入" aa" ,我需要打印另一个角色。所以我试过了
case 'aa':
txt_body.setText(txt_body.getText() + "ආ");
break;
但是有一个错误"未公开的字符文字"
有没有办法为javaScript
中的字符分配两个字符。
答案 0 :(得分:0)
对于第一个问题,我认为你应该删除最后打印的字符,以便去除不需要的字符,即
...
char c = evt.getKeyChar();
int index = txt_body.getText().lastIndexOf(c);
if(index >= 0) {
txt_body.setText(txt_body.getText().substring(0, index));
}
switch (c) {
...
至于第二个问题,答案是:你做不到。 Javascript所做的是静默地将您的char转换为字符串,这也是您应该在Java中执行的操作。
答案 1 :(得分:0)
字符是单个字母,包含字符串联的数据结构是字符串。在Java中,你可以对字符串执行switch语句,如here所示,但是,如上所述,你有两个问题:
txt_titleKeyTyped
事件将在每次按键时触发,这意味着键入aa
将同时触发同一事件两次。 aa
和后续两个a
字符?你可以有一个计时器,在没有按键的情况下触发一段时间,比如说500毫秒并尝试解析字符串。然后,您可以在末尾添加evt.consume();
,以确保键入的字符不会在文本框中结束。