如何在小程序中使用面板?
How to use panels in applets?
我需要编写一个战略游戏,其中包含awt panel
。
场景:-
首先,我需要从 txt
文件(我的地图)中读取并根据 txt
文件绘制图像。 (我在下面的代码中做到了)。
public class temp extends JApplet implements Runnable,MouseListener {
public void init() {
setSize(1400,800 );
setBackground(Color.BLACK);
}
@Override
public void start() {
tilemap = new int[60][75];
filereader();
Thread thread = new Thread(this);
thread.start();
}
@Override
public void paint(Graphics g) {
for (int i = 0; i < rows; i++) {
for (int j = 0; j < columns; j++) {
int mod_i = 100*i;
int mod_j = 50*j;
g.setColor(Color.red);
String str = String.valueOf(tilemap[i][j]);
g.drawString(str,mod_i,mod_j);
switch (tilemap[i][j]) {
case 1:
g.drawImage(asfalt,mod_i,mod_j,this);
break;
case 2://it means everywhere u read 2, so draw a tree
g.drawImage(tree,mod_i,mod_j,this);
break;
}
}
}
其次,我要把我的window分成三部分! (一个最大的部分,用于主要背景,2个小部分(一个用于显示我在大地图中的位置的小地图,一个用于显示信息))
问题:-
怎么分呢?我应该使用面板还是边框??
我还必须使用容器,因为我的地图太大,我必须滚动它。
对这种情况有什么建议吗?谢谢
将所有内容写成一个 class 可能不是最好的主意。您绝对应该将您的 Filereader 存储在另一个 class.
顺便说一句,不要混用awt和Swing。使用 JApplet 和 JPanel 或 Applet 和面板。
为什么要使用边框?您可以额外使用Borders,但这与您的结构无关。
创建一个新的 JPanel,您可以在其中执行所有 "main background"-paintig 操作。调用 JApplet 的 setContentPane 以添加此 JPanel。
例如为此 JPanel 使用 BorderLayout。为地图和信息再创建 2 个 JPanel,然后将这些 JPanel 添加到主 JPanel。
如果您需要 JPanel 的透明背景,请使用 JPanel 的 setOpaque 方法。
如果您的地图(或您的迷你地图)是静态的,将您的图像绘制一次到 BufferedImage 并只绘制 BufferedImage 可能是个好主意。
我需要编写一个战略游戏,其中包含awt panel
。
场景:-
首先,我需要从 txt
文件(我的地图)中读取并根据 txt
文件绘制图像。 (我在下面的代码中做到了)。
public class temp extends JApplet implements Runnable,MouseListener {
public void init() {
setSize(1400,800 );
setBackground(Color.BLACK);
}
@Override
public void start() {
tilemap = new int[60][75];
filereader();
Thread thread = new Thread(this);
thread.start();
}
@Override
public void paint(Graphics g) {
for (int i = 0; i < rows; i++) {
for (int j = 0; j < columns; j++) {
int mod_i = 100*i;
int mod_j = 50*j;
g.setColor(Color.red);
String str = String.valueOf(tilemap[i][j]);
g.drawString(str,mod_i,mod_j);
switch (tilemap[i][j]) {
case 1:
g.drawImage(asfalt,mod_i,mod_j,this);
break;
case 2://it means everywhere u read 2, so draw a tree
g.drawImage(tree,mod_i,mod_j,this);
break;
}
}
}
其次,我要把我的window分成三部分! (一个最大的部分,用于主要背景,2个小部分(一个用于显示我在大地图中的位置的小地图,一个用于显示信息))
问题:- 怎么分呢?我应该使用面板还是边框?? 我还必须使用容器,因为我的地图太大,我必须滚动它。
对这种情况有什么建议吗?谢谢
将所有内容写成一个 class 可能不是最好的主意。您绝对应该将您的 Filereader 存储在另一个 class.
顺便说一句,不要混用awt和Swing。使用 JApplet 和 JPanel 或 Applet 和面板。
为什么要使用边框?您可以额外使用Borders,但这与您的结构无关。
创建一个新的 JPanel,您可以在其中执行所有 "main background"-paintig 操作。调用 JApplet 的 setContentPane 以添加此 JPanel。
例如为此 JPanel 使用 BorderLayout。为地图和信息再创建 2 个 JPanel,然后将这些 JPanel 添加到主 JPanel。
如果您需要 JPanel 的透明背景,请使用 JPanel 的 setOpaque 方法。
如果您的地图(或您的迷你地图)是静态的,将您的图像绘制一次到 BufferedImage 并只绘制 BufferedImage 可能是个好主意。