gpt4 book ai didi

java - 如何设置转换为字母的符号列表?

转载 作者:行者123 更新时间:2023-12-02 06:36:32 28 4
gpt4 key购买 nike

我正在制作一个将莫尔斯电码转换为英文字母的系统。我使用名为“write”的 JTextfeild 来键入文本,并使用另一个名为“View”的 JTextfeild 来查看写入时键入的内容。

但我一次只能设置一根莫尔斯电码。

举个例子,如果我在“Write”文本框上输入 A ,它只会打印“.-”。当我再次输入“B”时,然后查看 textfield 设置“-...”。我想打印字母的数量。

下面给出的是我的源代码。

private void writeKeyReleased(java.awt.event.KeyEvent evt) {                                  

if (evt.getKeyCode() == 65) {
view.setText(".-");
} else if (evt.getKeyCode() == 66) {
view.setText("-...");
} else if (evt.getKeyCode() == 67) {
view.setText("-.-.");
} else if (evt.getKeyCode() == 68) {
view.setText("-..");
} else if (evt.getKeyCode() == 69) {
view.setText(".");
} else if (evt.getKeyCode() == 70) {
view.setText("..-.");
} else if (evt.getKeyCode() == 71) {
view.setText("--.");
} else if (evt.getKeyCode() == 72) {
view.setText("....");
} else if (evt.getKeyCode() == 73) {
view.setText("..");
} else if (evt.getKeyCode() == 74) {
view.setText(".---");
} else if (evt.getKeyCode() == 75) {
view.setText(".-.-");
} else if (evt.getKeyCode() == 76) {
view.setText(".-..");
} else if (evt.getKeyCode() == 77) {
view.setText("--");
} else if (evt.getKeyCode() == 78) {
view.setText("-.");
} else if (evt.getKeyCode() == 79) {
view.setText("---");
} else if (evt.getKeyCode() == 80) {
view.setText(".--.");
} else if (evt.getKeyCode() == 81) {
view.setText("--.-");
} else if (evt.getKeyCode() == 82) {
view.setText(".-.");
} else if (evt.getKeyCode() == 83) {
view.setText("...");
} else if (evt.getKeyCode() == 84) {
view.setText("-");
} else if (evt.getKeyCode() == 85) {
view.setText("..-");
} else if (evt.getKeyCode() == 86) {
view.setText("...-");
} else if (evt.getKeyCode() == 87) {
view.setText(".--");
} else if (evt.getKeyCode() == 88) {
view.setText("-..-");
} else if (evt.getKeyCode() == 89) {
view.setText("-.--");
} else {
view.setText("--..");
}

}

最佳答案

I'm making a system to convert Mose cord to English alphabet. I'm using jtextfeild called "write" to type text and another jtextfeild call "View" to view which is typed on write.

  • JTextComponent 使用 DocumentListener 而不是 low_level KeyListener,否则您将无法从以下位置输入字符序列(例如)Ctrl+C(SystemClipBoard),或删除选定的字符,然后输出到另一个JComponents卡住,不做任何更改,不做任何更改,因为KeyListener 只能从单个 Char 触发 Event

  • 此外,如果您想要替换、删除、修改单个charchars序列类型,您可以使用DocumentFilter由用户输入 JTextField

例如

enter image description here

import java.awt.GridLayout;
import javax.swing.*;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;

public class TextLabelMirror {

private JPanel mainPanel = new JPanel();
private JTextField field = new JTextField(20);
private JTextField field1 = new JTextField(20);

public TextLabelMirror() {
field.getDocument().addDocumentListener(new DocumentListener() {

@Override
public void changedUpdate(DocumentEvent e) {
updateLabel(e);
}

@Override
public void insertUpdate(DocumentEvent e) {
updateLabel(e);
}

@Override
public void removeUpdate(DocumentEvent e) {
updateLabel(e);
}

private void updateLabel(DocumentEvent e) {
java.awt.EventQueue.invokeLater(new Runnable() {

@Override
public void run() {
field1.setText(field.getText());
}
});
}
});

mainPanel.setLayout(new GridLayout(1, 0, 10, 0));
mainPanel.add(field);
mainPanel.add(field1);
}

public JComponent getComponent() {
return mainPanel;
}

private static void createAndShowUI() {
JFrame frame = new JFrame("TextLabelMirror");
frame.getContentPane().add(new TextLabelMirror().getComponent());
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}

public static void main(String[] args) {
java.awt.EventQueue.invokeLater(new Runnable() {

@Override
public void run() {
createAndShowUI();
}
});
}
}

关于java - 如何设置转换为字母的符号列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19584313/

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