簡體   English   中英

如何在 JTextField 中多次捕獲用戶輸入

[英]How to capture user input multiple times in a JTextField

你能幫我解決這個小問題嗎? 我正在嘗試制作一個菜單系統,在 JEditorPane 中顯示選項,它是這樣的:

歡迎

選擇一個選項。 1.) 新注冊。 2.) 新輸入。 3.) 退出。

選項由用戶通過 JTextField 選擇,當輸入“1”時,它會顯示另一個菜單:

新注冊

1.) 選項 X。 2.) 選項 Y。 3.) 返回。

等等,問題是我不知道如何捕獲用戶的輸入,前進到下一個菜單,並在 JTextField 中重新捕獲用戶的輸入。

textField.addActionListener(new ActionListener () {

        public void actionPerformed(ActionEvent e) {
            String cap = "";

            cap = textField.getText();

            switch(cap) {

            case "1":
                paintEditorPane("Welcome");

                    // here is my problem, I don't know how to re-capture JTextField input
                 switch(cap){

                 case "1":
                       paintEditorPane("NewRegister");
                       break;
                    }
            break;
            }
        }
    });

這是基本的。 現在你必須制作很多案例來判斷狀態。

public static class MainPanel extends JPanel{
    private JTextArea textArea;

    public MainPanel() {
        this.setLayout(new BorderLayout());
        this.textArea = new JTextArea();// you can use constructor to set Text but I like use method "setText".
        this.textArea.addKeyListener(new keyHandler());
        this.textArea.setText("Welcome\r\nSelect an option. 1.) New register. 2.) New input. 3.) Exit.\r\n");
        this.textArea.setCaretPosition(this.textArea.getText().length());// move caret to last
        this.add(this.textArea, BorderLayout.CENTER);
    }

    public void addText(String text) {textArea.setText(textArea.getText() + "\r\n" + text +"\r\n");}

    public class keyHandler extends KeyAdapter{
        @Override
        public void keyReleased(KeyEvent e) {
            switch(e.getKeyCode()){
            case KeyEvent.VK_1 : addText("New register"); break;
            case KeyEvent.VK_2 : addText("New input"); break;
            case KeyEvent.VK_3 : addText("Exit"); break;
            }
        }
    }
}

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM