2017-08-02 88 views
-2

在我开始之前,我想说我已经研究过其他类似的问题,但他们没有回答我的问题。如何使用变量将JTextField输入传输到JTextArea?

大家好, 我想要一个Swing程序,需要在JTextField(变量名:输入)中输入的文本,并通过使用“字符串放在JTextArea(变量名称:输出) reversedText“来存储JTextField的文本。一旦我按下“Reverse”,我希望它传输文本按钮(变量名称:reverseButton)。

JFrame f = new JFrame();//creating instance of JFrame 

JLabel text = new JLabel("Enter some text to be reversed:"); 
static JTextField input = new JTextField(); 
static JTextArea output = new JTextArea(); 
JButton reverseButton = new JButton("Reverse!"); 

String reveresedText = ""; 

正如你可以看到下面,我尝试使用一个ActionListener这样做,但是当我按什么也没发生“逆转”!按钮。

public Main(){ 

    setBounds(); 
    setButtonAction(); 

    f.add(text); 
    f.add(input); 

    f.add(output); 
    output.setEditable(false); 

    f.add(reverseButton); 

    f.setSize(400,400); 
    f.setLayout(null); 
    f.setVisible(true); 
    f.setResizable(false); 
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

    refreshText(); 
} 

private void setButtonAction(){ 
    reverseButton.addActionListener(new ActionListener() { 
     @Override 
     public void actionPerformed(ActionEvent e) { 
      reveresedText = input.getText(); 
     } 
    }); 
} 

private void refreshText() { 
    output.setText(reveresedText); 

    f.repaint(); 
} 

一些帮助将不胜感激。 在此先感谢!

回答

1

只需将文本直接附加到JTextArea;

private void setButtonAction(){ 
    reverseButton.addActionListener(new ActionListener() { 
     @Override 
     public void actionPerformed(ActionEvent e) { 
      String txt = new StringBuilder(input.getText()).reverse().toString(); 
      output.append(txt); 
     } 
    }); 
} 
+0

这样做的伎俩,非常感谢。 – Coder