2013-07-23 2 views
1

Я сделал игру с концентрационными парами, используя netbeans. Подробнее о игре здесь http://en.wikipedia.org/wiki/Concentration_(game).Любой способ изменить размер моих компонентов на моей Java-игре?

Перед началом игры у пользователя есть возможность выбора версии игры (компьютер против человека, человека и человека), их имена и память карт, которые компьютер должен помнить в компьютере по сравнению с версией человека, а также выбирать размеры и шутники. Он может выбрать определенный размер и джокеров или его собственные предпочтительные размеры (столбцы, строки, шутники). Конечно, у меня есть предел для строк и столбцов: 52. Но игра с setResizable вообще не помогает, когда пользователь использует, например, 52x52 или 50x3 в качестве размеров для игры ... это выглядит ужасно (Btw изображения 73x97 пикселей).

Мои компоненты не являются кнопками, они являются объектами моего собственного класса gui относительно карточек (и имеют связь с логикой карты из другого пакета). Так что я должен попробовать gridbaglayout вместо gridlayout? Gridbadlayout может стать настоящей головной болью, потому что я уже использовал ее для своих радиолюбителей.

прямо сейчас я использую GridLayout, но когда я был setEnabled (правда), так что, например, 10 строк фактически умещается на экране, графическая карта будет оставаться небольшим и не «заполнить» весь компонент ...

http://postimg.org/gallery/53g9ag0i/667f8271/ Что я имею в виду здесь

Должен ли я изменять размеры всех моих компонентов или лимит слишком большой, и я должен сделать его меньше?

ответ

0

GridLayout обычно прекрасно, если вы хотите, чтобы компоненты имели одинаковые размеры. Я рекомендую просто положить вашу сетку карт внутри JScrollPane.

В качестве альтернативы, если игровая зона, прокручиваемая при больших размерах сетки, неприемлема, вы можете взглянуть на ответ на этот вопрос: How to lock aspect ratio of a gridLayout in Java?.

Еще одна возможность распространяется на GridLayout, так что она пытается сохранить фиксированное соотношение сторон для карт. (Для этого вам, очевидно, нужны карты, которые способны правильно рисовать на разных размерах).

0

Почему вы не рассчитали лучший размер? Вычислите, какое максимальное значение для карт в строке. Затем оцените минимальный размер значка карты, чтобы кто-нибудь мог ее прочитать. Тогда вам просто нужно вычислить: ScreenDimensions/mininmalCardSize. А затем вы можете отрегулировать желаемый размер от пользователя. Вот как я это сделаю. Но я бы хотел использовать Null Layout.