したがって、私はJLayeredPane(技術的にはJLayeredPaneをサブクラス化するクラス)を持っています。その上にJPanelがあります。JpanelにBufferedImageを追加したい。
public class BigMap extends JLayeredPane implements MouseListener
JPanel mapPanel;
BufferedImage theMap;
public BigMap (BufferedImage m){
theMap = m;
mapPanel = new JPanel();
add(mapPanel, 0);
mapPanel.setBounds(0, 0, 640, 640);
//other unimportant stuff
}
@Overrride
public void paintComponent (Graphics g){
super.paintComponent(g);
Graphics2D gmap = (Graphics2D) mapPanel.getGraphics();
gmap.drawImage(theMap, null, 0, 0);
//some other stuff which is working just fine
}
問題は、BufferedImageが表示されないことです。JPanelは、backgroundColourを設定して、必要に応じて表示できるため、間違いなく存在します。JLayeredPaneにはレイアウトマネージャーがなく、JPanelの境界を設定する必要があったことはわかっていますが、それはJPanel自体の問題ではないはずです。また、BufferedImageにはサイズを直接制御するメソッドがないため、それを克服する方法がわかりません。
助けていただければ幸いです。