Java. JFrame, pack(), setResizable()

202
05 февраля 2018, 05:07

Здравствуйте!

Вот смотрите, когда не запрещаю менять размеры окна, тогда в 100% случаев выводится корректно, но мне это не нужно. Если устанавливаю Resizable - false, то случайным образом, что странно, может получиться, что окно растягивается чрезмерно, но всегда на 10px справа и снизу. Если вызывать setResizable() после pack() то "полосы" появятся со 100% шансом.


Как пофиксить это?

// Размер background картинки 320x320
private final short SIZE_IMAGE = 80;
Handler.countItems = 4; // Статическая переменная
    ...
    panel.setPreferredSize(new Dimension(Handler.countItems * SIZE_IMAGE, Handler.countItems * SIZE_IMAGE));
 // Но если даже вручную написать new Dimension(320, 320) - будет то же самое
    add(panel);
  }
// Естественно метод вызывается в конструкторе класса, наследующий JFrame. Причем последним.
    private void initWindow() {
        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        setTitle("Barley-Break");
        setResizable(false);
        pack();
        setVisible(true);
        setLocationRelativeTo(null);
    }

Answer 1

Я дебил...надо было поменять местами pack() и setVisible()...Столько времени потратил, а всё так просто. Мне показалось немного странным что надо раскидывать оптимально все компоненты только после отображения окна, я и парился всё это время.

READ ALSO
Стоит ли использовать Spring с Kotlin

Стоит ли использовать Spring с Kotlin

Интересует вопрос, совместимы ли Java ee спецификации и Spring с Kotlin?

209
Почему не работает Notification?(push уведомление)

Почему не работает Notification?(push уведомление)

Есть у меня Service класс который в какой то момент показывает PushNotification и он прописан в BroadcastReceiverпроверяю на android 4

250
Android Video chat and server

Android Video chat and server

Я хочу написать что-то типо видеочата между несколькими Android телефонамиПри этом чтобы видеопоток шел напрямую между телефонами(Клиентами),...

194