Как поместить текстовую область (JTextArea) в окно (JFrame)? - PullRequest
0 голосов
/ 31 января 2010

У меня есть рабочий код, который создает окно с текстовой областью. Код здесь . Я пытаюсь выяснить, как работает этот код. Многое ясно:

  1. Основной метод создает экземпляр класса TextAreaDeom (который является подклассом JFrame). Другими словами, метод main создает окно.
  2. В main-методе мы устанавливаем некоторые «параметры» окна и делаем его видимым.

Мне не ясно, в каком месте мы помещаем текстовую область в окне. Я вижу, что текстовая область создается прямо перед конструктором. Я также вижу, что в конструкторе мы устанавливаем некоторые «параметры» текстовой области (setText). Я также вижу, что в конструкторе мы создаем область прокрутки и устанавливаем для нее некоторые параметры. Я вижу, что область прокрутки «связана» с текстовой областью (поскольку мы используем экземпляр текстовой области для создания области прокрутки). Я также вижу, что мы создаем объект с именем «content» (используя текущее окно) и «добавляем» область прокрутки к «content».

Но в каком месте текстовая область добавляется в окно? Может быть, я могу сказать, что текстовая область добавляется в область прокрутки, а область прокрутки добавляется к «контенту», а контент является частью объекта окна?

Ответы [ 3 ]

2 голосов
/ 31 января 2010

в строке 16 вы создаете JScrollPane, который оборачивается вокруг вашего объекта JTextArea. В строке 21 вы добавляете этот JScrollPane, который содержит вашу TextArea, в ContentPane JFrame. Когда вы вызываете getContentPane () вместо создания нового, ContentPane уже является частью JFrame.
Все элементы ContentPane будут отображаться как часть JFrame. Метод add JFrame предназначен только для удобства и перенаправляет вызов в JFrames ContentPane.

0 голосов
/ 01 февраля 2010

Элементы GUI должны быть построены на EDT . Вот более надежный main() метод для программы , приведенный выше .

public static void main(String[] args) {
    EventQueue.invokeLater(new Runnable() {
        @Override
        public void run() {
            JFrame win = new TextAreaDemo();
            win.setTitle("TextAreaDemo");
            win.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            win.pack();
            win.setVisible(true);
        }
    });
}
0 голосов
/ 31 января 2010

Область прокрутки scrollingArea создается с текстовой областью внутри. scrollPane , был создан с текстовой областью m_resultArea (см. Документацию для JScrollPane * конструктор ). затем добавляется на панель содержимого фрейма.

...