G
Gast2
Gast
Hallo,
Ich habe ein hintergrundbild und wenn ich ein panel drüber lege soll das Bild nicht angezeigt werden...
meine frage wie bekomm ich den effekt weg,dass das bild alle komponenten überdeckt?Ziel soll sein dass ich später den hintergrund gerne führ textfelder und areas benutze nicht aber für buttons....aber wenn der hintergrund alle komponenten überdeckt bringt des ja nichts...
Muss ich ein extra hintergrundpannel anlegen???
Ich habe ein hintergrundbild und wenn ich ein panel drüber lege soll das Bild nicht angezeigt werden...
Code:
import java.awt.AlphaComposite;
import java.awt.BorderLayout;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.BorderFactory;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLayeredPane;
import javax.swing.JPanel;
import javax.swing.JProgressBar;
import javax.swing.JTextField;
public class Test extends JFrame
{
private Image img=new ImageIcon("icon1.png").getImage();
public Test()
{
super("Frame mit Hintergrund");
setSize(500,600);
setLocationRelativeTo(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
add(new MeinPanel(),BorderLayout.CENTER);
validate();
setVisible(true);
}
public void paint(final Graphics g){
super.paint(g);
Graphics2D graphics2D = (Graphics2D) g;
//graphics2D.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.4f));
graphics2D.drawImage(img,0,0,500,500,null);
}
public class MeinPanel extends JPanel implements ActionListener
{
JButton transparent;
JButton nichtTaransparent;
private JProgressBar bar;
public MeinPanel()
{
setOpaque(true);
setBorder(BorderFactory.createTitledBorder("Test"));
transparent =new JButton("Transparent");
transparent.setOpaque(false);
bar=new JProgressBar();
nichtTaransparent=new JButton("Nicht Transparent");
nichtTaransparent.addActionListener(this);
add(transparent);
add(nichtTaransparent);
add(bar);
}
public void actionPerformed(ActionEvent arg0) {
bar.setIndeterminate(true);
}
}
public static void main(String[] args) {
new Test();
}
}
meine frage wie bekomm ich den effekt weg,dass das bild alle komponenten überdeckt?Ziel soll sein dass ich später den hintergrund gerne führ textfelder und areas benutze nicht aber für buttons....aber wenn der hintergrund alle komponenten überdeckt bringt des ja nichts...
Muss ich ein extra hintergrundpannel anlegen???