Java - нужна помощь с использованием JScrollPane в JTextArea [дубликат]

Ошибка в компиляторе / IDE

У меня недавно возникла эта проблема, и оказалось, это ошибка в Visual Studio Express 2013 . Мне пришлось удалить исходный файл из проекта и повторно добавить его для устранения ошибки.

. Попробуйте, если вы считаете, что это может быть ошибка в компиляторе / среде IDE:

  • Очистите проект (некоторые IDE имеют возможность сделать это, вы также можете вручную сделать это, удалив объектные файлы)
  • Попробуйте запустить новый проект, скопировав весь исходный код из оригинала.

2
задан 28 January 2014 в 04:03
поделиться

1 ответ

Ваша проблема возникает здесь ...

consolePanel.add(console);
consolePanel.add(scrollBar);

В принципе, компонент может принадлежать только одному родителю, добавляя console к consolePanel, который вы удаляете из панели прокрутки .

console уже содержится в контейнере, поэтому вам просто нужно добавить родительский контейнер (панель прокрутки) в consolePane ...

//consolePanel.add(console);
consolePanel.add(scrollBar);

На боковой ноте вы должны быть осторожны с Tookit#getScreenSize, так как она возвращает экран целиком, а не размер экрана, видимого для просмотра (область, которую приложение может безопасно использовать). Поэтому вместо ...

Toolkit tk = Toolkit.getDefaultToolkit();
Dimension dim = tk.getScreenSize();

//sets the size of the GUI
this.setSize(600, 400);

//centers the GUI
int xPos = (dim.width / 2) - (this.getWidth() /2);
int yPos = (dim.height / 2) - (this.getHeight() /2);

this.setLocation(xPos, yPos);

Вы можете использовать setLocationRelativeTo(null) и добиться лучшего результата

. Я бы также предложил размер компонента после добавления содержимого и перед вами сделать его видимым, например ...

this.pack();
this.setLocationRelativeTo(null);
this.setVisible(true);

Это гарантирует, что окно учитывает разницу между различными платформами более точно ...

4
ответ дан MadProgrammer 28 August 2018 в 05:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: