Лучший подход к пользовательской графике в Java - PullRequest
1 голос
/ 22 мая 2011

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

Краткое объяснение моей проблемы: я делаю техасский покерный калькулятор шансов для тренировок в основном. Я хочу, чтобы при нажатии на карточку появлялось круглое диалоговое окно, в котором я мог выбрать масть и стоимость карточки. Представьте круг в середине разреза в 4 с опциями набора и кольцо вокруг этого круга с 13 возможными значениями карт.

Опции, о которых я думал:

  • Создание png для каждой возможной комбинации (1 пусто, 13 для выбора только карты, 4 для выбора только набора, 52 для каждой возможной комбинации набора и значения)
  • Создание независимого png для набора и значения (1 пустой набор, 4 для выбранного набора, 1 пустое значение, 13 для значений) и слой их.
  • Сделать выбранный / отмененный выбор png для набора и значения и отобразить на них текст (1 выбранный набор, 1 отмененный выбор, 1 выделенное значение, 1 отмененное выделение)

Конечно, третий вариант кажется более привлекательным, но правильный ли это путь? Какого размера я должен сделать эти png, потому что они будут статичными, я думаю ...

Ответы [ 3 ]

1 голос
/ 22 мая 2011

Если честно, идея костюма колеса хороша, но я, вероятно, не хотел бы колесо с 13 опциями на нем, возможно, выбор радио или простой слайдер (где вы пишете свой собственный слушатель событий, чтобы показать значение вышетак что вы можете иметь j, q, k, a и т. д.) или, скорее, простой список: http://download.oracle.com/javase/tutorial/uiswing/components/list.html.

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

Это действительно зависит от того, что вы умеете лучше проектировать.Лично я предполагаю, что png может быть более сложным для колеса, но для меня это сложнее, поскольку я потратил время на рисование градиентов и т. Д. *

Вот хорошая ссылка для градиентов и полированных приложений.: http://nadeausoftware.com/node/82. Имейте в виду, что, кстати, вы можете рисовать символы костюма в ascii или в красках, посмотрите здесь несколько примеров: http://www.java -forums.org / java-2d / 25333-drawing-heart-valentine.html (некоторые сложнее, чем другие, чтобы понять, с чем вы можете столкнуться).

Стандартный профессиональный набор приложений обычно использует png просто потому, что у них есть графический дизайнерв штате.Преимущество png в том, что их обычно проще создавать и добавлять.Преимуществом программирования является простота их программного изменения, то есть когда выбрано изменение цвета и т. Д. ... Это все еще возможно с помощью png, но не всегда проще.

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

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

1 голос
/ 23 мая 2011

Я бы использовал (возможно, иерархическое) контекстное меню, как описано в Как использовать меню: вызов всплывающего меню .Action, также упомянутый там , сделает альтернативы клавиатуры особенно простыми.В меню вы, вероятно, можете использовать соответствующий Miscellaneous Symbols, который можно масштабировать и раскрасить, как показано здесь .

Если вы идете с круговой JComponent, вот пример соответствующей геометрии здесь .

Приложение:

Я хотел бы пойти с чем-то более графическим ...

Затем выбор сводится к добавлению компонентов в настраиваемый макет или выполнению тестирования попаданий в настраиваемом компоненте .

1 голос
/ 22 мая 2011

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

...