Передача текста JTextArea в Listener и JScrollPane в нулевом расположении - Java

Узнай цену своей работы

Формулировка задачи:

В приложении 3 класса 1: FormStart (основной)
Листинг программы
  1. package TestForm;
  2. import javax.swing.JFrame;
  3. public class FormStart {
  4. public static void main(String[] args) {
  5. JFrame.setDefaultLookAndFeelDecorated(true); // устанавливае стандартный внешний вид
  6. JFrame frame = new JFrame("Заголовок окна"); // желаемый заголовок
  7. //Далее создаём поверхность (панель) для размещения компонентов
  8. MainFormAppearance demo = new MainFormAppearance(); // внешность формы
  9. frame.setContentPane(demo.createContentPane()); // передаем как параметр в коструктор
  10. // задаём операцию, которая выполниться при закрытии
  11. frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  12. frame.setSize(400, 300); // задаём размер окна
  13. frame.setVisible(true); // форма будет видимой
  14. }
  15. }
2:MainFormAppearance (внешний вид)
Листинг программы
  1. package TestForm;
  2. import TestActions.*;
  3. import javax.swing.*; // импортируем SWING
  4. import java.awt.*; // импортируем все подпакеты AWT
  5. import java.awt.event.ActionListener;
  6. public class MainFormAppearance {
  7. public JPanel createContentPane (){
  8. // We create a bottom JPanel to place everything on.
  9. // сначала создаётся "панель", на которой и размещаюся
  10. // остальные компоненты
  11. JPanel totalGUI = new JPanel(); // создаём "поверхность"
  12. totalGUI.setLayout(new FlowLayout());
  13. JTextArea newText = new JTextArea(5,10);
  14. //newText.setLocation(10,10);
  15. //newText.setSize(100,200);
  16. newText.setWrapStyleWord(true);
  17. newText.setLineWrap(true);
  18. totalGUI.add(new JScrollPane(newText));
  19.  
  20. // Создаём кнопку---------------
  21. JButton redButton = new JButton("Кнопка 1");
  22. //redButton.setLocation(120, 200); // расположение кнопки
  23. //redButton.setSize(200,50 ); // размер кнопки
  24. // создаём объект-обработчик события
  25. ActionListener actionListener = new TestActionListener(); // создаём создаём действие
  26. // назначаем этот обработчик кнопке
  27. redButton.addActionListener(actionListener);// прикрепляем действие к кнопке (срабоет по нажатии на неё)
  28. totalGUI.add(redButton); // добавляем кнопку на поверхность
  29. totalGUI.setOpaque(true);
  30. return totalGUI; // возвращаем внешний вид
  31. }
  32. }
3: TestActionListener (сам слушатель)
Листинг программы
  1. package TestActions;
  2. import TestForm.MainFormAppearance;
  3. import javax.swing.JFrame;
  4. import javax.swing.JOptionPane;
  5. import java.awt.event.ActionEvent;
  6. import java.awt.event.ActionListener;
  7. public class TestActionListener implements ActionListener { // наследуемся от стандартного класса ActionListener
  8. public void actionPerformed(ActionEvent e) {
  9. // выведем сообщение из нескольких строк
  10. // одну из них в кавычках
  11. String message = "Кнопка нажата";
  12. JOptionPane.showMessageDialog(new JFrame(), message, "Внимание",
  13. JOptionPane.ERROR_MESSAGE);
  14. }
  15. }
Как передать в TestActionListener текст из JTextArea на данный момент? или вернее будет задать вопрос: как в слушателе работать с данными на панели, ведь в дальнейшем придется работать не только с кнопками и текстареями? И почему-то при написании класса MainFormAppearance с setLayout(null):
Листинг программы
  1. package TestForm;
  2. import TestActions.*;
  3. import javax.swing.*; // импортируем SWING
  4. import java.awt.*; // импортируем все подпакеты AWT
  5. import java.awt.event.ActionListener;
  6. public class MainFormAppearance {
  7. public JPanel createContentPane (){
  8. // We create a bottom JPanel to place everything on.
  9. // сначала создаётся "панель", на которой и размещаюся
  10. // остальные компоненты
  11. JPanel totalGUI = new JPanel(); // создаём "поверхность"
  12. totalGUI.setLayout(new FlowLayout());
  13. JTextArea newText = new JTextArea(5,10);
  14. newText.setLocation(10,10);
  15. newText.setSize(100,200);
  16. newText.setWrapStyleWord(true);
  17. newText.setLineWrap(true);
  18. totalGUI.add(new JScrollPane(newText));
  19.  
  20. // Создаём кнопку---------------
  21. JButton redButton = new JButton("Кнопка 1");
  22. redButton.setLocation(120, 200); // расположение кнопки
  23. redButton.setSize(200,50 ); // размер кнопки
  24. // создаём объект-обработчик события
  25. ActionListener actionListener = new TestActionListener(); // создаём создаём действие
  26. // назначаем этот обработчик кнопке
  27. redButton.addActionListener(actionListener);// прикрепляем действие к кнопке (срабоет по нажатии на неё)
  28. totalGUI.add(redButton); // добавляем кнопку на поверхность
  29. totalGUI.setOpaque(true);
  30. return totalGUI; // возвращаем внешний вид
  31. }
  32. }
То TextArea не появляется, если же не прикреплять JScrollPane то все прекрасно работает

Решение задачи: «Передача текста JTextArea в Listener и JScrollPane в нулевом расположении»

textual
Листинг программы
  1. JScrollPane scrollPane = new JScrollPane(newText);
  2.         totalGUI.add(scrollPane);
  3.         scrollPane.setBounds(150, 100, 50, 50);

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4.333 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут