2014-02-09 2 views
0

Я пытаюсь наложить фоновое изображение с помощью образца .png, и я не знаю, как это работает. Я попытался создать 2 JPanels, но не узнал, как их наложить, тогда я попытался создать 2 JLabels и еще раз, они просто остаются раздельными.Наложение изображений Java

Есть ли у вас какие-либо идеи? Спасибо!

+0

Что _exactly_ вы имеете в виду _ "overlay" _? Пожалуйста, объясните более четко, а также покажите нам свою попытку и проблемы, с которыми вы столкнулись. –

ответ

0

Вы можете использовать один метод jPanel.Override paint или paintComponent и нарисовать изображение графическим объектом.

public class MyCustomPanel extends JPanel{ 

    private Image img; 

    public MyCustomPanel(// use constructor to get img or load it directly from below){ 
    //load image 
    } 

    public void paintComponent(Graphics g) 
     { 
      super.paintComponent(g); 
      // Draws the img to the BackgroundPanel. 
      g.drawImage(img, 0, 0, this); 
     } 


} 

Затем вы можете перейти к главному классу и использовать этот JPanel

MyCustomPanel mcp=new MyCustomPanel(//img path); 
mcp.add(new JLabel("Hello"),BorderLayout.CENTER); 
add(mcp),BorderLayout.CENTER); 

// и т.д.

Я надеюсь, вы понимаете

В следующий раз пост некоторые кода, если вы хотите имеют более быстрый и более сложный/более подходящий для вашего случая.

+1

'g.drawImage (img, 0, 0, null);' должно быть 'g.drawImage (img, 0, 0, this);'. Каждый ['Компонент'] (http://docs.oracle.com/javase/7/docs/api/java/awt/Component.html) ** является ** [' ImageObserver'] (http: // docs .oracle.com/javase/7/docs/api/java/awt/image/ImageObserver.html), поэтому мы можем использовать его как таковой. –

+1

О, плюс ответ нарушает цепь живописи. Он должен переопределить 'paintComponent' и сразу вызвать метод' super'. –

+1

«Программы Swing должны переопределять' paintComponent() 'вместо переопределения' paint() '." - [* Живопись в AWT и Swing: методы Paint *] (http://www.oracle.com/technetwork/java/painting-140037.html#callbacks), для [пример] (http://stackoverflow.com/a/2658663/230513). – trashgod

Смежные вопросы