我試圖逐步建立一個基於用戶輸入的圖像。我想要做的是創建一堆圖形並將它們添加爲圖層,但是我遇到了一些問題,因爲它們不會顯示出來。下面是我使用的代碼:JLayeredPane中沒有顯示圖形(java swing)
public class ClassA
{
protected final static int dimesionsY = 1000;
private static int dimesionsX;
private static JFrame window;
private static JLayeredPane layeredPane;
public void init()
{
window = new JFrame("Foo");
dimesionsX = // some user input
window.setPreferredSize(new Dimension(dimesionsX, dimesionsY));
window.setLayout(new BorderLayout());
layeredPane = new JLayeredPane();
layeredPane.setBounds(0, 0, dimesionsX, dimesionsY);
window.add(layeredPane, BorderLayout.CENTER);
ClassB myGraphic = new ClassB();
myGraphic.drawGraphic();
layeredPane.add(myGrpahic, new Integer(0), 0);
window.pack();
window.setVisible(true);
}
}
public class ClassB extends JPanel
{
public void drawGraphic()
{
repaint();
}
public void paintComponent(Graphics g)
{
super.paintComponent(g);
g.setColor(Color.BLACK);
g.fillRect(10, 10, 100, 100);
}
}
但是我的圖形似乎並沒有顯示出來,我不明白爲什麼。我也嘗試將其添加到JPanel
首先,將JPanel
添加到JLayeredPane
但是,這也不起作用。
請有人可以幫我嗎?
此外,如果你對不透明設置爲false對方,希望你照顧的頂部鋪設JPanels。針對您的問題的另一個解決方案包括將BufferedImages分層疊加。 –
謝謝你對此的幫助。我注意到添加圖形時使用了'JLayeredPane.DEFAULT_LAYER'。我只是想知道什麼是最好的使用情況下,我想添加額外的圖形? –
我會使用任何邏輯指令來最好地工作。如果我知道某些東西在底部,我會將它放在默認層中。 –