如何在一个标签上绘制多个 类? (Java)
How can I draw on one Label with multiple classes? (Java)
我目前正在编写一款包含大量图形元素的游戏。目前代码如下所示:
protected void paintComponent(Graphics g)
{
super.paintComponent(g);
Graphics2D g2d = (Graphics2D) g;
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
g.drawImage(ImageLoader.gui_iconbar, xToRel(480), yToRel(810), xToRel(960), yToRel(270), null);
g.drawImage(ClientVariables.getSplashart(Main.selectedCharacter, 0), xToRel(495), yToRel(825), xToRel(135), yToRel(240), null);
//... (don't get confused with xToRel, it just makes changes to the drawing position if you move the camera)
}
问题是:这些 g.draw(whatever);
行有很多。我想将它们分成多个 类 但只制作 4 类 并复制粘贴 gameFrame.add(GraphicclassXY);从逻辑上讲,这是行不通的。有谁知道如何解决这个问题? (例如,如果解决方案包括将 jlabel 更改为 canvas,这不是问题)
创建逻辑非组件 classes(不扩展 JLabel、JPanel、JFrame、JComponent 或其他 Swing 组件),给它们一个 public void draw(Graphics g)
方法,给 class 那 做 你的逻辑 classes 的绘图实例,也许在某种集合中,并遍历集合并在你的实例上调用 draw
paintComponent 方法。
我目前正在编写一款包含大量图形元素的游戏。目前代码如下所示:
protected void paintComponent(Graphics g)
{
super.paintComponent(g);
Graphics2D g2d = (Graphics2D) g;
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
g.drawImage(ImageLoader.gui_iconbar, xToRel(480), yToRel(810), xToRel(960), yToRel(270), null);
g.drawImage(ClientVariables.getSplashart(Main.selectedCharacter, 0), xToRel(495), yToRel(825), xToRel(135), yToRel(240), null);
//... (don't get confused with xToRel, it just makes changes to the drawing position if you move the camera)
}
问题是:这些 g.draw(whatever);
行有很多。我想将它们分成多个 类 但只制作 4 类 并复制粘贴 gameFrame.add(GraphicclassXY);从逻辑上讲,这是行不通的。有谁知道如何解决这个问题? (例如,如果解决方案包括将 jlabel 更改为 canvas,这不是问题)
创建逻辑非组件 classes(不扩展 JLabel、JPanel、JFrame、JComponent 或其他 Swing 组件),给它们一个 public void draw(Graphics g)
方法,给 class 那 做 你的逻辑 classes 的绘图实例,也许在某种集合中,并遍历集合并在你的实例上调用 draw
paintComponent 方法。