gpt4 book ai didi

java - 按下分号时将光标置于下一行

转载 作者:行者123 更新时间:2023-11-30 08:22:01 25 4
gpt4 key购买 nike

当用户按下分号键时,我希望分号保持在同一行但将光标向下移动。例如,

我想要什么

example text; <-- semi-colon been pressed and entered

| <--- cursor moved to here

我现在的代码,分号向下移动,光标放在它旁边,像这样:

我有什么

example text

;| <-- cursor and semi-colon go to a new line

谢谢。

SSCCE:

import java.awt.Font;
import javax.swing.InputMap;
import javax.swing.JFrame;
import javax.swing.JTextPane;
import javax.swing.KeyStroke;
import javax.swing.WindowConstants;

public class Example {

private final JFrame frame = new JFrame();
private final JTextPane editor = new JTextPane();

public Example() {
frameStuff();
newLineOnSemiColonPress();
}

private void newLineOnSemiColonPress() {
InputMap input = editor.getInputMap();
String INSERT_BREAK = "insert-break";
KeyStroke semi = KeyStroke.getKeyStroke("SEMICOLON");
input.put(semi, INSERT_BREAK);
}

private void frameStuff() {
editor.setFont(new Font("Arial", 0, 13));
frame.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
frame.setSize(new Dimension(500, 400));
frame.getContentPane().add(editor);
frame.setVisible(true);
}

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

最佳答案

你只需要在你释放分号键时绑定(bind)添加中断,而不是在你第一次按下它时:

private void newLineOnSemiColonPress() {
InputMap input = editor.getInputMap();
String INSERT_BREAK = "insert-break";
KeyStroke semi = KeyStroke.getKeyStroke("released SEMICOLON");
input.put(semi, INSERT_BREAK);
}

如果你还没有读过,这里有一个很好的 tutorial here以及有关如何使用键绑定(bind)的更多信息。

关于java - 按下分号时将光标置于下一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24701273/

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