Замена одной JTextArea на другую - PullRequest
1 голос
/ 26 апреля 2011

В моем графическом интерфейсе есть JTextArea в пределах JScrollPane, который присоединен к контейнеру.

        ta = new JTextArea();
        jsp = new JScrollPane(ta);

        container.add(jsp);

Я хочу иметь возможность заменить эту JTextArea другой JTextArea, например

JTextArea ta1 = new JTextArea("New text area");
ta = ta1;
ta.repaint();

Однако, когда я переназначаю этот JTextArea, в GUI ничего не меняется. Есть ли лучший / правильный способ сделать это?

Ответы [ 2 ]

1 голос
/ 26 апреля 2011
ta = ta1; 

Если вы хотите, чтобы компонент отображался в графическом интерфейсе, вам нужно добавить (...) компонент в графический интерфейс.

panel.add(ta1);
panel.revalidate();
panel.repaint();

При изменении ссылки компонент не добавляетсяв GUI.

Это ваш второй вопрос, который пытается воспроизвести ссылку на переменную, чтобы получить доступ к компоненту GUI.Я снова задаю вопрос, почему ты это делаешь.Это не требовалось в вашем последнем вопросе, и я сомневаюсь, что требуется в этом вопросе.У вас какая-то проблема с дизайном.

1 голос
/ 26 апреля 2011

Вы должны просто заменить текст textarea на новый.

newTextArea.setText(oldTextArea.getText())

или просто введите новый текст

newTextArea.setText("new text")
...