我正在制作类似于狂热的游戏。我正在使用╔════╦════════════╦════════════╦═════════════╦════════════╗
║ id ║ field_1 ║ field_2 ║ field_n ║ time ║
╠════╬════════════╬════════════╬═════════════╬════════════╣
║ 1 ║ data_field ║ data_field ║ data_field ║ 1369748934 ║
║ 2 ║ data_field ║ data_field ║ data_field ║ 1369748935 ║
║ 3 ║ data_field ║ data_field ║ data_field ║ 1369748936 ║
║ 4 ║ data_field ║ data_field ║ data_field ║ 1369748936 ║
║ 5 ║ data_field ║ data_field ║ data_field ║ 1369748938 ║
║ 6 ║ data_field ║ data_field ║ data_field ║ 1369748939 ║
╚════╩════════════╩════════════╩═════════════╩════════════╝
在mouseMotionListener
周围移动JLabel
。与此同时,还有其他JFrame
作为其他鱼类被鼠标控制的JLabels
吃掉。每当JLabel
(不受鼠标控制)移入和移出屏幕时,鼠标控制的JLabel fish
将返回屏幕上的标准位置,即上半部分的中心位置。屏幕。我该怎么做才能阻止这种情况发生?
JLabel
答案 0 :(得分:1)
首先:
类名以大写字母开头。通过实例学习。只需查看Java API,您将看到所有类名都以大写字符开头。
不要在绘画方法中执行I / O.只要Swing确定需要重新绘制组件,就会调用绘制方法。每次读取文件效率都不高。创建课程时阅读图像。
不要对帧的大小进行硬编码 - board.setSize(1300, 700);
并非所有人都使用相同的分辨率。要最大化框架,您可以使用:board.setExtendedState(JFrame.MAXIMIZED_BOTH);
返回屏幕上方的标准位置,即屏幕上半部分的中心
默认情况下,JPanel
使用FlowLayout
。当您更改其他标签的位置时,布局管理器将被调用到布局管理器确定的位置中的组件。
如果由于使用鼠标拖动组件而随机放置组件,则需要在面板上使用“null布局”。执行此操作时,您现在负责手动设置添加到面板的每个组件的“大小和位置”。