Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Java: GUI и Java FX приложения > Простое обычное окошко |
Автор: Cheese 19.3.2009, 20:52 | ||
Господа, я тут столкнулся с какой-то глупостью. Мне надо вывести через Swing окно, чтобы - Были известны размеры рабочей области (то есть "внутренне содержимое", без рамок и украшений) - Нельзя было менять размеры. - Работало и под Linux и под Windows. Суть понятна - надо кинуть на форму JPanel нужного размера, а потом применить pack() и окно само сожмётся, но не работает, каналья! Точнее, результаты из под разных ОС различаются, размеры окна не те. Например, вот этот код выдаёт нужные результаты под виндой, а в линуксе окошко прямоугольное.
Что делать, люди? |
Автор: frodo5 20.3.2009, 08:11 |
frame.setSize(200,200) религия не позволяет? |
Автор: Connie 20.3.2009, 08:59 | ||
|
Автор: Turinets 20.3.2009, 10:39 | ||
Попробуй так:
Т.е. если вызвать pack() после SetResizable(), вроде всё нормально получается. А насчёт использовать setSize(), ну так изменять надо не размеры понели, а размеры фрейма. Помоему Вы не правильно поняли задачу. Нужна рабочая область фиксированного размера, и нужен фрейм, который будет подогнан под эту область. Именно pack() она и решается. Так что правильная вещь - религия. |
Автор: Turinets 20.3.2009, 10:54 | ||
Хотя на всякий случай можно проверить дело так:
Т.е. сделать один pack, если размеры получились не те, то вычислить попровку и задать новые размеры с последующим pack(). |
Автор: Cheese 20.3.2009, 16:51 |
Не работает, однако. В линуксе окно вытягивается вширь. |
Автор: Turinets 20.3.2009, 17:31 |
А можешь рассказать что в линухе происходит? Какие размеры получается у панели\ фрейма? Может просто у фрейма минимальные размеры есть скажем 300.100 поэтому и получается размеры 300,200. Скажи что происходит. 1) какие размеры при задании размера 200,200. 2) какие размеры при задании размера 300,300 .. вобщем как меняется ситуация при изменении размера. |
Автор: Cheese 20.3.2009, 17:37 |
Я сам не понимаю толком, как там всё получается. В линуксе окно вытянуто по вертикали, пикселей на 30, панелька тоже почему-то вытянута. |
Автор: Turinets 20.3.2009, 17:41 |
Размеры можешь сказать? И даже спрасить стесняюсь: какое разрешение в линухе у тебя? может там масштаб (dx/dy) иной? |
Автор: Connie 20.3.2009, 20:42 | ||
Вот только что под linux сделал
|
Автор: Turinets 21.3.2009, 08:14 |
А чем этот код отличается от предыдущего? Или это намер, что у автора Линукс какой-то не такой?(Точнее Java на нем). У меня под виндой такая фигня была: если ракать после setResizable(false), то размеры получается 200, 200. А если до, то 202, 202 (т.е. на 2 пиксела больше). |
Автор: Connie 21.3.2009, 10:39 | ||
Ничем, и мой и пример выше дают одинаковые результаты и перестановка pack не меняет размер |