私は徐々にユーザーの入力に基づいてイメージを構築しようとしています。私がしようとしているのは、たくさんのグラフィックスを作成してレイヤーとして追加することですが、表示されないのでいくつか問題があります。私が使用しているコードは次のとおりです。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
に追加しようとしましたが、どちらもうまくいきませんでした。
誰かが私を助けてくれますか?
:
はまた、時にはあなたは、推奨サイズを設定する必要があります。あなたの問題のもう一つの解決策には、BufferedImagesを重ね合わせることが含まれます。 –
ありがとうございました。グラフィックを追加するときに 'JLayeredPane.DEFAULT_LAYER'を使用していることに気付きました。私は、グラフィックを追加したい場合に、何が最善のものかを考えていただけです。 –
私はどのロジックを使っても最高の結果を出すことができます。私が知っていることが底にあるとすれば、それをDefaultレイヤーに入れます。 –