Netbeans IDE 6.91 по центру по горизонтали не кликабельный

Я неплохо разбираюсь в программировании на Java, но очень новичок в разработке графического интерфейса. Я хотел превратить консольную игру в блэкджек, которую я сделал много лет назад, в игру, в которую люди могли бы играть через графический интерфейс, который я создал с помощью netbeans. я думаю, что без графического интерфейса большинство людей не воспримут игру всерьез, когда я добавлю ее в свое рабочее портфолио.

Я создал JFRAME с размером, установленным на 1000X700 пикселей, а поверх него — JPanel с темно-зеленым фоном для имитации стола для игры в блэкджек.

поверх темно-зеленой JPanel у меня есть небольшая JLabel 60X93 со значком, установленным на оборотной стороне игральной карты. это представляет дилера, и я хотел отцентрировать его по горизонтали и вертикали поверх JPanel, на котором он опирается.

однако на панели инструментов netbeans для конкретного графического интерфейса параметры «центрировать по горизонтали» и «центрировать по вертикали» отображаются серым цветом и не активны, даже когда я выбираю JLabel, который является дилером. я даже пытался щелкнуть Shift, чтобы выбрать как JLabel, так и JPanel, на котором он лежит, но все же параметры «центрировать по горизонтали» и «центрировать по вертикали» неактивны.

может кто-нибудь, пожалуйста, помогите мне или предложите руководство, пожалуйста? спасибо ... я потратил 2 дня на гугление и не понимаю, как другие не столкнулись с этой же проблемой.


person Martin    schedule 08.10.2010    source источник
comment
Пожалуйста, помогите мне понять, чего вы на самом деле хотите достичь. Вы хотите, чтобы компонент оставался в центре, даже если пользователь изменит размер кадра? или вы просто хотите центрировать компонент во время разработки в середине кадра?   -  person Tushar Joshi    schedule 08.10.2010
comment
даже если изменить размер... я хочу, чтобы это выглядело как можно более профессионально.   -  person Martin    schedule 11.10.2010


Ответы (2)


Интересный вопрос. Я много лет работаю с NetBeans и, честно говоря, никогда раньше не замечал этих значков, пока вы на них не указали. Я тоже не могу заставить их что-либо сделать.

Однако, если вы новичок в разработке GUI на Java... вам следует прочитать о менеджерах по расположению и провести некоторое время с руководство по GridBagLayout. GridBagLayout на сегодняшний день является самым популярным менеджером компоновки в разработке Swing. Вы могли бы использовать его исключительно, если хотите, поскольку на самом деле существует лишь несколько реальных ситуаций, в которых имеет смысл использовать другой менеджер компоновки.

Для ваших непосредственных целей: в представлении Inspector щелкните правой кнопкой мыши JPanel и выберите «Set Layout -> Grid Bag Layout». Теперь вы увидите свой менеджер компоновки в древовидном представлении инспектора прямо под панелью JPanel. Щелкните по нему правой кнопкой мыши и выберите «Настроить». Появится всплывающее окно, и там вы можете щелкнуть любой интересующий вас компонент и настроить всевозможные параметры (например, поля, отступы и т. д.). Интересующий вас параметр — «Привязка», а желаемое значение — «Центр». Выбрав JLabel, вы можете настроить этот параметр либо в раскрывающемся меню в верхнем левом углу..., либо графически в верхнем нижнем углу.

Так или иначе, если вы собираетесь заниматься какой-либо разработкой графического интерфейса Java, помимо самых тривиальных примеров "Hello World"... вы очень скоро будете использовать GridBagLayout. Так что можно и нырнуть!

person Steve Perkins    schedule 08.10.2010
comment
хммм, этот gridbaglayout кажется сложным... мне нужно добавить все компоненты, которые я хочу, на холст ПЕРЕД установкой панели как GridBagLayout? ИЛИ могу ли я сначала иметь одну метку... установить GridBagLayout, а затем добавить дополнительные компоненты, а затем продолжить настройку параметров GridBag? - person Martin; 11.10.2010
comment
эта вещь кажется кошмаром для изучения, но со всеми вещами стоит, я думаю, мне придется вложить немного крови, пота и слез в эту вещь, чтобы наконец получить ее. очень жаль, что нет конкретных руководств, которые помогут вам что-то сделать, поскольку раздел справки - это только определения значений ... эххх, я запишу это и выучу, даже если это убьет меня. - person Martin; 11.10.2010
comment
@Martin: Это намного проще, когда вы используете NetBeans, а не пишете код вручную. На самом деле не имеет значения, объявите ли вы сначала компоненты, а затем менеджер компоновки, или наоборот... NetBeans просто разберется. Но если я правильно следую вашему первому комментарию выше, ответ будет последним. Использование GridBagLayout очень похоже на работу с таблицами в HTML... при добавлении новых элементов (то есть строк и столбцов) вам, возможно, придется немного изменить существующие строки и столбцы. - person Steve Perkins; 11.10.2010
comment
невероятно... так как у меня есть приличное знание HTML, я точно знаю, о чем вы говорите. - person Martin; 11.10.2010
comment
@Martin: Вы всегда можете принять ответ, если он будет полезен! :) - person Steve Perkins; 11.10.2010

Позвольте мне дать некоторые пояснения относительно параметров кнопки инструмента «Центрировать по горизонтали» и «Центрировать по вертикали».

Все шесть кнопок панели инструментов в Matisse Designer предназначены для выравнивания компонентов, связанных друг с другом. Эти кнопки активируются только тогда, когда вы выбираете более одного компонента в конструкторе.

Когда мы выбираем два или более компонента в окне конструктора, будь то JPanel или JFrame, и нажимаем кнопку «Центрировать по горизонтали», все выбранные элементы управления (компоненты) выравниваются один под другим, так что центральные точки всех компонентов находятся в одну вертикальную линию. Это означает, что они перемещаются в горизонтальном направлении, чтобы выровняться точно друг под другом.

Кнопка «Центрировать по вертикали» выполняет выравнивание по вертикали. Итак, чтобы ответить на ваш вопрос, инструменты, которые вы используете для центрирования компонента в JFrame, являются неправильными инструментами. Они предназначены для выравнивания компонентов относительно друг друга, а не контейнера.

Если вы выберете JPanel и компонент внутри JPanel, кнопки инструментов будут отключены. Кнопки настройки выравнивания доступны только тогда, когда компоненты выбраны в одном контейнере, другими словами, компоненты, находящиеся в одном контейнере.

Чтобы разместить компонент в центре JFrame, вам может потребоваться добавить некоторый пользовательский код или использовать какой-либо другой менеджер компоновки, отличный от группового макета, который используется дизайнером по умолчанию.

с уважением
Тушар Джоши, Нагпур

person Tushar Joshi    schedule 08.10.2010
comment
@Мартин, ваши вопросы касались центра по горизонтали, и если мое объяснение ответило на ваши вопросы, примите это как ответ. - person Tushar Joshi; 15.10.2010