gpt4 book ai didi

Java 按键事件

转载 作者:行者123 更新时间:2023-12-02 05:55:11 26 4
gpt4 key购买 nike

我正在尝试使用 Java Swing 创建孟加拉语键盘。我正在访问按键事件并用相关的孟加拉语字符替换特定字符。我遇到的问题是原始英文字符仍然附加在末尾。怎么阻止呢?这是代码。

public void keyPressed(KeyEvent e)
{
if(e.getKeyCode() == 54)
{
textField.setText(textField.getText()+(char)2433);
}
if(e.getKeyCode() == 65)
{
textField.setText(textField.getText()+(char)2438);
}
}

输出像“আa”,应该只是“আ”。

提前致谢。

这是完整的代码:

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

public class Phonetic extends JFrame
{
public Phonetic()
{
setTitle("Antaryāmī");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
getContentPane().setLayout(null);

textField = new JTextField();
textField.setFont(new Font("Mukti Narrow", Font.PLAIN, 20));
textField.setBounds(12, 33, 614, 383);
getContentPane().add(textField);
textField.setColumns(10);

textField.addKeyListener(new KeyListener()
{
@Override
public void keyPressed(KeyEvent e)
{
if(e.getKeyCode() == 54)
{
textField.setText(textField.getText()+(char)2433);
}
if(e.getKeyCode() == 65)
{
textField.setText(textField.getText()+(char)2438);
}
}
@Override
public void keyTyped(KeyEvent e)
{
}

@Override
public void keyReleased(KeyEvent e)
{
}
});

this.setSize(650, 450);
this.show();
}
/**
*
*/
private static final long serialVersionUID = 1L;
private JTextField textField;

public static void main(String args[])
{
new Phonetic();
}

}

最佳答案

不要使用 KeyListener。

而是使用DocumentFilter。当文本插入文本字段时,将调用 DocumentFilter。此时,您应该将键入的字符转换为要插入到 Document 中的字符,然后调用 super 方法。您将需要重写 insertString() 和 Replace() 方法。

阅读 Swing 教程中关于 Implementing a Document Filter 的部分了解更多信息和入门示例。

关于Java 按键事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23165748/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com