У меня недавно возникла эта проблема, и оказалось, это ошибка в Visual Studio Express 2013 . Мне пришлось удалить исходный файл из проекта и повторно добавить его для устранения ошибки.
. Попробуйте, если вы считаете, что это может быть ошибка в компиляторе / среде IDE:
Ваша проблема возникает здесь ...
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);
Это гарантирует, что окно учитывает разницу между различными платформами более точно ...