我想用Java制作这样的棋盘(地图)。
每个小六边形都是图像。
假设我有两个Java类。帆布(大六边形)和六边形。首先是整板,我随机生成所有小六边形。这两个类都派生自JPanel。现在我有GridLayout。我该如何安排这样的布局?
答案 0 :(得分:3)
为什么需要小六边形面板?
我宁愿只定义每个具有所需位置的列表(六边形列表),只需覆盖主paintComponent()
的{{1}}方法。您可以使用此http://java-sl.com/shapes.html创建六边形。
要跟踪鼠标单击,您可以使用Shape的contains()方法。
答案 1 :(得分:3)
你可以
1)常用方式
JPanel/JComponent
绘制到paintComponent()
(我认为有Image/BufferedImage/Icon/ImageIco
n) 2)将Icon/ImageIcon
放在JLabel
您已查看JLayer (since Java7)或使用(以前)JXLayer
OverlayLayout或@camick的OverlayLayout自定义
答案 2 :(得分:1)
布局管理的目的是使布局能够在组件改变其大小或窗口时自动调整。
看起来你的六边形总是大小相同,所以你真的不需要布局管理器,绝对定位六边形应该没问题。