PNG als Background Picture

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hallo.

Ich habe hier ein PNG, welches einen roten Kreis in der Mitte hat und rundherum transparent ist.

ist es möglich dieses als Hintergrundbild zu integrieren, so dass auch nur der Kreis und oben die Leiste (kleiner, grösser, schliessen) dargestellt wird, oder funktioniert das nicht?

im Moment versuche ich es mit:
Code:
JLabel label = new JLabel(new ImageIcon("kreis.png"));

aber das will nicht so...
 

Quaxli

Top Contributor
Google mal nach "Killer Game Programming" (ist aber auf Englisch). In den PDF's die man dort runter laden kann, ist beschrieben, wie man einen transparenten Hintergrund simuliert. Das müßtest Du dann nur noch etwas abändern.

Von der Umsetzung hier ist es so, daß man mit Robot einen Screenshot in der Größe des Fenster als Hintergrund-Bild einfügt. Das muß man dann halt jedes mal machen, wenn man das Fenster verschiebt, die Größe verändert, etc.
 
G

Guest

Gast
Moin nochmal.

Habe noch ein wenig gesucht und diese Datei gefunden Klick mich

jetzt habe ich dieses Konstrukt:

Main:
Code:
public class Main 
{ 
   static JFrame frame;    
   public static void main(String[] args) 
   {       
       
      frame = new Test();
      frame.setBounds(10,35,295,770); 
      frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); 
      frame.setVisible(true); 
   }
}

Test:
Code:
public class Test extends JFrame implements MouseListener
{

	JTextField info = new JTextField();
	{
		this.getContentPane().add(info);
		info.setBounds(5,5,125,22);
		info.setOpaque(true);
		info.setEditable(false);
		info.setHorizontalAlignment(SwingConstants.CENTER);		
		info.setText("TEST");
	};
	...
	public Test() 
	{
		super("Test");
		{
			
		    JLabel label = new JLabel(new ImageIcon(getClass().getResource("kreis.png")));
		    label.setFocusable(true);
		    JPanel panel = new JPanel();
		    panel.add(label);
		    //panel.setBackground(Color.blue);
		    label.setFocusable(true);
		    this.getContentPane().add(panel);
		    ...
		}
	}
}

Wie bekomme ich nun das Frame transparent?
Bei dem kreis.png ist ja der Hintergrund transparent?

Das Demo zu der oberen Datei lautet so:
Code:
public class BGTest1 
{

    public static void main(String[] args) 
    {
        JFrame frame = new JFrame("Transparent Window");        
        TransparentBackground bg = new TransparentBackground(frame);
        bg.setLayout(new BorderLayout());
        JButton button = new JButton("This is a button");
        bg.add("North",button);
        JLabel label = new JLabel(new ImageIcon("kreis.png"));
        bg.add("South",label);        
        frame.getContentPane().add("Center",bg);
        frame.pack();
        frame.setBounds(50,50,377+3,822+35);
        frame.show();
    }
}

wobei ich das
new ImageIcon("kreis.png")
selbst rein gemacht habe...
Und in dem Demo geht es auch, nur wie model ich das auf mein Konstrukt um???

Danke schonmal für eure Bemühungen...
 
G

Guest

Gast
hm, danke für den Tip, jedoch funktioniert es so nicht...
 
G

Gast

Gast
habe es soweit hinbekommen(erstmal...)
das Zeug aus dem Demo einfach in die Main übernehmen, wichtig hierbei ist das Layout, weil ohne gehts nicht....

Einen "Fehler" habe ich da aber noch und zwar wird mir das Hintergrundbild (aus der Test()) nicht angezeigt, kann da machen was ich will...
Es wird erst angezeigt, wenn ich es in die Main schreibe...

Kann mir einer weiterhelfen, damit ich es in der Test belassen kann?

Danke schoneinmal...
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben