Java中自定义图形的最佳方法

时间:2011-05-22 17:39:04

标签: java graphics 2d

几天前我问了一个关于如何绘制一些自定义图形的问题here。当我与不同的人谈论它时,他们建议不要通过编码绘制我的图形,而是使用png文件。所以我想知道我的选择是什么以及行业中常用的是什么。

对我的问题的快速解释:我正在制作德州扑克扑克赔率计算器,主要用于训练。我想当我点击一张卡片时,会出现一个圆形对话框,在那里我可以选择卡片的套装和价值。想象一下,中间的一个圆形切入4,套件选项和围绕该圆圈的环有13个可能的卡值。

我想到的选项:

  • 为每个可能的组合制作png(1个空,13个仅限卡片选择,4个仅限套件选择,52个套件和价值的每个可能组合)
  • 为套件和值创建独立的png(1个空套件,4个选定套件,1个空值,13个值)并将它们分层。
  • 为套件和值选择/取消选择png并在其上呈现文本(1个选定套件,1个取消选择套件,1个选定值,1个取消选择值)

当然第三种选择似乎更具吸引力,但这是正确的方法吗?我应该做多大的尺寸,因为它们将是静态的我猜...

3 个答案:

答案 0 :(得分:1)

我自己使用过公共领域的扑克牌图片。例如Playing Cards。我还发表了对你之前发表的评论的评论。

答案 1 :(得分:1)

说实话,车轮的套装理念很好,但我可能不想要一个带有13个选项的车轮,可能是收音机选择,或者是一个简单的滑块(你可以编写自己的事件监听器来显示上面的值)所以你可以有j,q,k,a等...),或者更可能是一个简单的列表:http://download.oracle.com/javase/tutorial/uiswing/components/list.html

除非它非常专业,否则制作图像可能毫无意义。我会诚实的,如果你的编程不是很好,很容易画出漂亮的画面;但是,如果你对编程很有好处,你可以制作漂亮的渐变和非常漂亮的选择器而不需要任何png ....

这实际上取决于你在设计方面做得更好。我个人认为png可能对于一个轮子来说可能更难,但对我来说它更难,因为我花时间绘制渐变等......

以下是渐变和优质应用的良好链接:http://nadeausoftware.com/node/82。请记住,你可以在ascii或paint中绘制套装符号,在这里查看一些例子:http://www.java-forums.org/java-2d/25333-drawing-heart-valentine.html(比其他人更复杂,以了解你可能会遇到什么)。

标准的专业应用程序通常只是因为使用png,因为他们有工作人员的图形设计师。 pngs的优点是它们通常更容易创建和添加。编程的好处是可以通过编程方式更改它们,这意味着在选择更改颜色等时....使用png仍然可以实现,但并不总是更容易。

顺便说一下,这里也看一下如何制作一个漂亮的径向渐变的例子,因为你可能需要这样的东西,无论你是否选择使用png。

长话短说,我会通过编码来绘制它,虽然这是主观的,最后我会为价值和套装做出不同的选择。

答案 2 :(得分:1)

我使用(可能是分层的)上下文菜单,如How to Use Menus: Bringing Up a Popup Menu中所述。 Action,也提到there,会使键盘替代品变得特别容易。在菜单中,您可以使用相应的Miscellaneous Symbols,可以按照here缩放和着色。

如果您使用圆形JComponent,则会出现相关几何体here的示例。

附录:

  

我想用更多图片......

然后选择归结为向custom layout添加组件或在custom component中进行命中测试。