Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javaapplet中的多个绘图区域_Java_Swing_Applet - Fatal编程技术网

javaapplet中的多个绘图区域

javaapplet中的多个绘图区域,java,swing,applet,Java,Swing,Applet,我有一个我编写的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); dra

我有一个我编写的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);
   }
}
画一块瓷砖效果很好,但我想做的是有一个绘制区域的网格,每个区域都可以画一块瓷砖

对不起,我不确定我是否正确地解释了它,但我想使用swing将空间分割成一个格子,格子大小的面板可以在玩家回合中放置一块瓷砖,当这种情况发生时,它会用新瓷砖重新绘制棋盘

我只是在计算绘制方法的工作原理时遇到了一些问题,是否可以对多个面板使用相同的绘制方法?我是否需要为每个面板提供一个单独的图形对象,以便它们可以拥有自己的局部坐标系

无论如何,任何帮助将不胜感激,如果需要任何澄清,请让我知道


谢谢

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

1)请在句子开头添加大写字母。也可以用大写字母表示I,缩写和首字母缩略词如JEE或WAR。这使得人们更容易理解和帮助。2) 为了更快地获得更好的帮助,请发布一个帖子。谢谢,我没有想到要这么做,这实际上让事情变得简单多了。如果我使用JButton,按下按钮后是否可以更改按钮上的图形?或者,是否使用按钮对图纸进行了初始化,并且一旦初始化就无法更改?我想将它们用于板上的瓷砖,当单击时可以旋转。
paintComponent
在每次重新绘制组件时都会被调用。您可以使用
repaint()
重新绘制。这意味着您可以随时更改控件的外观。