输入时,在行尾加一串字。

问题描述 投票:0回答:1

在我下面的java代码中,它产生了一个带有jtextrea的框架。这样就可以进行简单的文本处理。我想做的就是添加 "Sam"。也就是5个空格,最后加上Sam。每当用户点击回车时。你也可以看到我在下面添加的gif,这正是我想要的。

enter image description here

import java.awt.event.*; 
import java.awt.*; 
import javax.swing.*; 
class text11 extends JFrame implements ActionListener { 



    // JFrame 
    static JFrame f; 



    // text area 
    static JTextArea jt; 

    // main class 
    public static void main(String[] args) 
    { 
        // create a new frame to store text field and button 
        f = new JFrame("textfield"); 

        // create a label to display text 




        // create a object of the text class 
        text11 te = new text11(); 



        // create a text area, specifying the rows and columns 
        jt = new JTextArea(" ", 20, 20); 

        JPanel p = new JPanel(); 

        // add the text area and button to panel 
        p.add(jt); 

        f.add(p); 
        // set the size of frame 
        f.setSize(300, 300); 

        f.show(); 
    }

    @Override
    public void actionPerformed(ActionEvent e) {
        // TODO Auto-generated method stub

    } 

} 
java string return append jtextarea
1个回答
-2
投票

要想获得输入,从而知道用户何时点击回车,你必须创建你自己的 KeyListener 类。如果你不知道如何使用它,这里有一个来自文档的方便链接,你可以使用。https:/docs.oracle.comjavasetutorialuiswingeventskeylistener.html。.

但简单地说,一个 KeyListener 是一个接口,你必须指定一些方法,但在你的情况下,我认为你唯一需要的方法是 keyPressed(KeyEvent e)(这就叫按)。如果你对其他的感兴趣。keyReleased(KeyEvent e) 是当一个键被释放时,而 keyType(KeyEvent e) 是当它被按下并迅速释放。然后,使用 JFrames addKeyListener(KeyListener k) 来添加您的自定义动作监听器。

做完这些后,你可以使用 JTextArea's setText()getText() 方法来追加 "sam "到结尾(5个空格会被堆栈溢出删除,我知道你想要5个空格)。

@Override
public void keyPressed(KeyEvent e) {
    if(e.getKeyCode() == KeyEvent.VK_ESCAPE) {
        jt.setText(jt.getText() + "     sam");
    }
}

如果你添加了 KeyListener 正确的,你应该是好的!


2
投票
    String actionKey = "ADD_SAM";
    InputMap inputMap = jt.getInputMap(JComponent.WHEN_FOCUSED);
    KeyStroke enterPressed = KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0);
    inputMap.put(enterPressed, actionKey);
    jt.getActionMap().put(actionKey, new TextAction(actionKey) {
        @Override
        public void actionPerformed(ActionEvent e) {
            jt.append(" Sam\n");
        }
    });
© www.soinside.com 2019 - 2024. All rights reserved.