我目前正在为我正在制作的游戏开发TiledMap编辑器。我现在处于需要实现tile选择器的部分。我很确定我能够在画布上做到这一点并单独绘制每个瓷砖并在所选瓷砖周围画一个框但是我想知道在我开始制作之前是否有更简单,更专业的方式已经在java swing中实现我自己的。
这是我想要的基本图画:
瓷砖选择器中的绿色框是单独的瓷砖,而粗体蓝色的瓷砖是选定的瓷砖(只是一个基本的例子,颜色对我来说无关紧要。)
附加信息:每个磁贴都有自己的对象,因此如果解决方案涉及ArrayList或其他东西,它将非常有效。此外,我希望能够操纵选择器中显示的对象与否。我有一个搜索栏,我想用它来缩小显示的图块。
提前致谢,如果您需要更多详情,请询问。
答案 0 :(得分:2)
JList可以很好地显示平铺图像的集合,并且可能是左侧平铺选择器组件的候选者。
好看起来很不错。如何告诉JList您希望显示列表中每个项目的内容。对于我的情况,我希望JList显示一个简单的图像,而不是文本,这可能吗?
如果将图标添加到JList,它们将自动正确显示。如果您需要微调显示,那么您将需要根据教程和API编写ListCellRenderer。
此外,它可以使用多列进行列表吗?
如果你的意思是同一个事物的多个列,例如一个4x4的图像网格,那么是的,JList可以处理这个很棒,你可以调用setLayoutOrientation(JList.HORIZONTAL_WRAP)
(如果需要,可以垂直换行)。如果您指的是每个包含不同数据类型的列,例如图像,文本,复选框,那么请使用JTable。