【问题标题】:multiple drawing areas in java appletjava小程序中的多个绘图区域
【发布时间】:2013-12-27 07:36:32
【问题描述】:

我有一个我编写的 java 小程序,它绘制游戏图块的表示。

代码如下:

import javax.swing.*;
import java.awt.*;

public class TestApplet extends JApplet
{
   Tile tile01;
   Drawer drawer;

   public void init()
   {
      tile01 = new Tile("tile01", 4, 2, 1, 7, 0, 6, 5, 3);
      drawer = new Drawer();
   }

   public void paint(Graphics g)
   {
      drawer.drawTile(g, tile01);
   }
}

绘制一个图块一切正常,但我想要做的是有一个绘图区域网格,可以在每个图块上绘制一个图块。

抱歉,我不确定我的解释是否正确,但我想使用摇摆将空间划分为一个瓷砖大小的面板网格,可以在玩家转弯时放置一个瓷砖,以及何时发生这种情况,它会用那里的新图块重新绘制棋盘。

我只是在弄清楚绘画方法的工作原理时遇到了一些麻烦,是否可以对多个面板使用相同的绘画方法?我是否必须为每个面板有一个单独的图形对象,以便它们可以拥有自己的本地坐标系?

无论如何,我们将不胜感激,如果需要任何澄清,请告诉我。

谢谢

【问题讨论】:

  • 1) 请在句首加一个大写字母。还要为单词 I 使用大写字母,以及 JEE 或 WAR 等缩写词和首字母缩略词。这使人们更容易理解和帮助。 2) 为了尽快获得更好的帮助,请发帖SSCCE

标签: java swing applet


【解决方案1】:

只需创建一个自定义控件(最简单的方法是扩展 JPanel、JLabel 或 JButton,具体取决于您需要对其进行的操作)并将绘图代码放入该自定义控件中。然后,您可以将该自定义控件的多个副本放入您的布局中。

【讨论】:

  • 谢谢,我没想过这样做,这实际上让它变得简单多了。如果我要使用 JButton,是否可以在按下按钮后更改按钮上的图形?还是用按钮初始化绘图并且一旦初始化就无法更改?我想将它们用于板上的瓷砖,单击时可以旋转。
  • paintComponent 每次重绘组件时都会被调用。您可以使用repaint() 重新绘制。这意味着您可以随时更改控件的外观。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-21
  • 1970-01-01
  • 1970-01-01
  • 2022-10-17
  • 2011-09-02
相关资源
最近更新 更多