Как сделать так, чтобы кнопка J добавляла текст из одной области JTextArea в другую область JTextArea

#java #swing #awt

Вопрос:

Я хочу иметь возможность вводить текст в область JTextArea «t1», а затем нажимать кнопку JTextArea «b1″, которая добавит текст из » t1 «в область JTextArea «t2». У меня уже есть некоторый код в методе actionPerformed, но он, похоже, не работает, и я не уверен, почему. Там нет сообщения об ошибке, вместо этого код просто не работает вообще. В моем примере кода здесь я включил только метод, который создает кнопку, области JText и метод прослушивателя действий. Извините, если я не совсем правильно задал этот вопрос, это мой первый вопрос на этой платформе.

 private JTextArea t1, t2;
private JButton b1, b2;
private final static String newline = "n";

UserInterface()
{
    t1 = new JTextArea();
    t1.setBorder(BorderFactory.createCompoundBorder(border, BorderFactory.createEmptyBorder(15, 15, 15, 15)));
    t1.setLineWrap(true);
    t1.setBounds(470, 25, 280, 330);
    t2 = new JTextArea("Enter Addresses Here");
    t2.setBorder(BorderFactory.createCompoundBorder(border2, BorderFactory.createEmptyBorder(15, 15, 15, 15)));
    t2.setLineWrap(true);
    
    b1 = new JButton("Click");
    b1.setBackground(Color.decode("#95edc5"));
    b1.setBorderPainted(false);
    b1.setOpaque(true);
    b1.setText("View Addresses");
    b1.setForeground(Color.decode("#2f4d3f"));
    b1.setFont(new Font("Helvetica", Font.PLAIN, 18));
    b1.addActionListener(this);
    b1.setBounds(470, 395, 280, 63);
}

@Override
public void actionPerformed(ActionEvent e)
{
    String text = t2.getText();
    
    if (e.getActionCommand().equals("Click"))
    {
        t1.append(text   newline);
    }
}
 

Ответ №1:

Возьмите строку: b1.setText(«Просмотр адресов»), поскольку теперь это имя кнопки, но не щелчок, из-за равенства событий actionCommand, которое вы проверяете

Или иначе, этот подход должен решить вашу проблему

   @Override
  public void actionPerformed(ActionEvent e)
  {
       String text = t2.getText();

       if (e.getSource() == b1)
       {
         t1.append(text    newline);
       }
   }