2013-12-05 3 views
0

У меня возникла проблема с выдачей определенной информации на мой jTextArea. На данный момент, когда я нажимаю кнопку, информация выводится из arrayString и выводится с использованием System.out.print. У меня есть другая панель, которая содержит jTextArea и вместо того, чтобы получать информацию для печати на System.out.print, я бы хотел, чтобы она была напечатана на jTextArea. Я уверен, что это достаточно просто, я просто не знаю, как это сделать.Java jButton и jTextArea

Это мой ActionListener для моей кнопки:

jbPlay.addActionListener(new ActionListener() { 

     @Override 
     public void actionPerformed(ActionEvent e) { 
      jbPlay.addActionListener(this); 

      System.out.println(MyFrame.shape1.getArrayList()); 


     } 
    }); 

А вот мой класс для панели, которая содержит JTextArea

ublic ActionPanel() { 
    initComponents(); 


    jtaWoof = new JTextArea(); 
    jtaWoof.setVisible(true); 

    jtaWoof.setEditable(true); 
    jtaWoof.setSize(900,400); 
    jtaWoof.setBackground(Color.white); 
    this.add(jtaWoof);} 

Я также создал методы получения и установки для jtaWoof; не уверен, нужен ли мне или нет!

public JTextArea getJtaWoof() { 
    return jtaWoof; 
} 

public void setJtaWoof(JTextArea jtaWoof) { 
    this.jtaWoof = jtaWoof; 
} 

Заранее благодарю вас за помощь, мы очень благодарны!

+0

Почему Вы добавляете тот же 'ActionListener' несколько раз кнопку' jbPlay'? – disrvptor

ответ

0

Замените эту строку

System.out.println(MyFrame.shape1.getArrayList()); 

с

SwingUtilities.invokeLater(new Runnable() { 
    public void run() { 
     jtaWoof.setText(jtaWoof.getText()+"\n"+MFrame.shape1.getArrayList()); 
     // or use append() 
     //jtaWoof.append(MFrame.shape1.getArrayList()+"\n"); 
    } 
} 

Это заменит текст JTextArea с текстом JTextArea плюс символ новой строки плюс новый текст. Я бы предупредил вас о том, чтобы быть осторожным, поскольку, если количество текста не ограничено каким-либо образом, вы можете столкнуться с проблемами производительности. Тем более, что это выполняется на EDT (с помощью метода invokeLater(..).

+0

Привет, большое спасибо. Он все еще говорит, что он не может найти переменную jtaWoof? – user3062664

+0

Вы не показываете достаточно своего кода, чтобы узнать, находится ли 'jtaWoof' в области действия ActionListener. – disrvptor

+0

Класс jtfWoof является закрытым. Есть ли способ использовать это в другом классе? Я очень новичок в программировании, поэтому сожалею о нехватке информации. – user3062664

1

или вы можете просто использовать добавить ..

общественных недействительной Append (String ул)

Добавляет заданный текст к концу . документ ничего не делает, если модель является недействительным или строка является нулем или пустой

Параметры: ул - текст для вставки См. также: вставка (java.lang.String, Int)

Пример

jtaWoof.append(MyFrame.shape1.getArrayList().toString()); 
Смежные вопросы