2015-12-03 3 views
0

У меня есть следующий класс:JPanel размер авто меняет

public class Projector extends JPanel{ 
    public Projector(){ 
    this.setPreferredSize(new Dimension(1024, 704)); 
    } 
} 

Если я печатаю измерение проектора внутри конструктора, я имею право измерения, но когда я печатаю размер где-то за пределами конструкторы, я получаю, как (1018, 675)

любые идеи, почему это происходит и как я могу это исправить?

+1

Этот код не компилируется, вам не хватает ')' на 'this.set ...'. *, но когда я печатаю измерение где-то вне конструктора * Как вы его печатаете? Пожалуйста, напишите [Runnable example] (http://stackoverflow.com/help/mcve) – Frakcool

+0

общий, это просто опечатка .. this.getSize(). ToString() как я получаю измерение –

+1

Снова, пожалуйста, прочитайте ссылку, которую я предоставил, и опубликовать [Минимальный, полный и проверенный пример] (http://stackoverflow.com/help/mcve) или [Short, Self Contained, Correct (Compilable), Example (SSCCE)] (http: //sscce.org/), что мы можем скопировать вставку и посмотреть ту же проблему, что и вы. * Обычный, это просто опечатка .. * Я видел массу вопросов здесь, которые не сработали из-за опечатки ... – Frakcool

ответ

0

Это связано с тем, что Java не учитывает пиксели, используемые для границы окна, которую рисует ваша ОС, включая кнопки «Свернуть», «Развернуть» и «Закрыть». (Вот почему разница больше по оси Y) Существует еще один способ получить пиксели впустую из-за этого.

Смежные вопросы