Передача текста JTextArea в Listener и JScrollPane в нулевом расположении - Java
Формулировка задачи:
В приложении 3 класса
1: FormStart (основной)
2:MainFormAppearance (внешний вид)
3: TestActionListener (сам слушатель)
Как передать в TestActionListener текст из JTextArea на данный момент? или вернее будет задать вопрос: как в слушателе работать с данными на панели, ведь в дальнейшем придется работать не только с кнопками и текстареями?
И почему-то при написании класса MainFormAppearance с setLayout(null):
То TextArea не появляется, если же не прикреплять JScrollPane то все прекрасно работает
package TestForm;
import javax.swing.JFrame;
public class FormStart {
public static void main(String[] args) {
JFrame.setDefaultLookAndFeelDecorated(true); // устанавливае стандартный внешний вид
JFrame frame = new JFrame("Заголовок окна"); // желаемый заголовок
//Далее создаём поверхность (панель) для размещения компонентов
MainFormAppearance demo = new MainFormAppearance(); // внешность формы
frame.setContentPane(demo.createContentPane()); // передаем как параметр в коструктор
// задаём операцию, которая выполниться при закрытии
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(400, 300); // задаём размер окна
frame.setVisible(true); // форма будет видимой
}
}package TestForm;
import TestActions.*;
import javax.swing.*; // импортируем SWING
import java.awt.*; // импортируем все подпакеты AWT
import java.awt.event.ActionListener;
public class MainFormAppearance {
public JPanel createContentPane (){
// We create a bottom JPanel to place everything on.
// сначала создаётся "панель", на которой и размещаюся
// остальные компоненты
JPanel totalGUI = new JPanel(); // создаём "поверхность"
totalGUI.setLayout(new FlowLayout());
JTextArea newText = new JTextArea(5,10);
//newText.setLocation(10,10);
//newText.setSize(100,200);
newText.setWrapStyleWord(true);
newText.setLineWrap(true);
totalGUI.add(new JScrollPane(newText));
// Создаём кнопку---------------
JButton redButton = new JButton("Кнопка 1");
//redButton.setLocation(120, 200); // расположение кнопки
//redButton.setSize(200,50 ); // размер кнопки
// создаём объект-обработчик события
ActionListener actionListener = new TestActionListener(); // создаём создаём действие
// назначаем этот обработчик кнопке
redButton.addActionListener(actionListener);// прикрепляем действие к кнопке (срабоет по нажатии на неё)
totalGUI.add(redButton); // добавляем кнопку на поверхность
totalGUI.setOpaque(true);
return totalGUI; // возвращаем внешний вид
}
}package TestActions;
import TestForm.MainFormAppearance;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class TestActionListener implements ActionListener { // наследуемся от стандартного класса ActionListener
public void actionPerformed(ActionEvent e) {
// выведем сообщение из нескольких строк
// одну из них в кавычках
String message = "Кнопка нажата";
JOptionPane.showMessageDialog(new JFrame(), message, "Внимание",
JOptionPane.ERROR_MESSAGE);
}
}package TestForm;
import TestActions.*;
import javax.swing.*; // импортируем SWING
import java.awt.*; // импортируем все подпакеты AWT
import java.awt.event.ActionListener;
public class MainFormAppearance {
public JPanel createContentPane (){
// We create a bottom JPanel to place everything on.
// сначала создаётся "панель", на которой и размещаюся
// остальные компоненты
JPanel totalGUI = new JPanel(); // создаём "поверхность"
totalGUI.setLayout(new FlowLayout());
JTextArea newText = new JTextArea(5,10);
newText.setLocation(10,10);
newText.setSize(100,200);
newText.setWrapStyleWord(true);
newText.setLineWrap(true);
totalGUI.add(new JScrollPane(newText));
// Создаём кнопку---------------
JButton redButton = new JButton("Кнопка 1");
redButton.setLocation(120, 200); // расположение кнопки
redButton.setSize(200,50 ); // размер кнопки
// создаём объект-обработчик события
ActionListener actionListener = new TestActionListener(); // создаём создаём действие
// назначаем этот обработчик кнопке
redButton.addActionListener(actionListener);// прикрепляем действие к кнопке (срабоет по нажатии на неё)
totalGUI.add(redButton); // добавляем кнопку на поверхность
totalGUI.setOpaque(true);
return totalGUI; // возвращаем внешний вид
}
}Решение задачи: «Передача текста JTextArea в Listener и JScrollPane в нулевом расположении»
textual
Листинг программы
JScrollPane scrollPane = new JScrollPane(newText); totalGUI.add(scrollPane); scrollPane.setBounds(150, 100, 50, 50);