我想在一个窗口中放置两个绘图板(一个用于游戏,另一个用于小地图)。到目前为止,我可以将一个 Canvas 直接添加到 JFrame 并在其上绘画。
我坚持添加另一个画布。我尝试将 LayoutManager 添加到框架并将这些添加到画布到特定位置但没有成功。也像这里一样使用 JPanel 和 LayoutManager:How to display two canvas in a JFrame java 但它对我不起作用,我得到空窗口。
老实说,使用 JPanel 向 JFrame 添加一个 Canvas 也不起作用(再次获得空窗口)所以我怀疑这里有一些错误,但我不知道那可能是什么。
package display;
import java.awt.*;
import javax.swing.*;
@SuppressWarnings("serial")
public class MainWindow extends JFrame
{
Menu myMenu;
SpaceMap mySpaceMap;
JPanel generalPanel;
public MainWindow()
{
myMenu = new Menu();
mySpaceMap = new SpaceMap();
generalPanel = new JPanel();
generalPanel.setLayout(new FlowLayout());
this.getContentPane().add(generalPanel);
generalPanel.add(myMenu);
generalPanel.add(mySpaceMap);
this.setSize(500,500);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setTitle("Title");
this.setLayout(new BorderLayout());
this.setVisible(true);
}
}
Menu 和 SpaceMap 是这样定义的(现在 Menu 有黄色填充,而 SpaceMap 有黑色):
package display;
import java.awt.*;
@SuppressWarnings("serial")
public class SpaceMap extends Canvas
{
public void paint(Graphics g)
{
setSize(200,200);
g.setColor(Color.BLACK);
g.fillRect(0,0,getWidth(),getHeight());
}
}
我的 Java 版本是 14。
我想它们的大小之间的比例必须定义为每个大小之间的比例。一般来说,我想实现这样的目标:
+------------------------+
| | |
| | |
| Canvas1 |Canvas2|
| | |
| | |
+------------------------+