Farbverlauf im Labelhintergrund

Status
Nicht offen für weitere Antworten.

jakob

Aktives Mitglied
Hi zusammen,

mir gefaellt das sehr gut.

Wie bekomme ich es hin, dass mein Fensterhintergund einen Farbverlauf darstellt?
startpanel.gif


Wie bekomme ich den Farbverlauf in der Titelleiste hin?
directorychooser.gif



Danke fuer die Hilfe.

Liebe Gruesse,

Jakob
 

dieta

Top Contributor
Dazu überschreibst du einfach die paintComponent des JPanels:
Code:
public void paintComponent(Graphics g)
{
	super.paintComponent(g);
	g.setPaint(new java-awt.GradientPaint(0F, 0F, new Color(255, 255, 255), (float)getSize().getWidth(), (float) getSize().getHeight(), new java.awt.Color(0, 0, 0)));
	g.fillRect(0, 0, (int)getSize().getWidth(), (int)getSize().getHeight());
}
Die Komponenten kannst du dann ganz normal dem Label hinzufügen.
 
B

Beni

Gast
Swing ist auf AWT aufgebaut, daher kann man einiges von AWT in Swing verwenden. Der Code da oben gehört dazu.

Es lohnt sich vielleicht das alte Paint von g zu speichern, bzw. eine Kopie von g (siehe Graphics#create) zu machen. Sonst könnten unschöne Artefakte zu sehen sein, wenn an einer anderen Stelle gezeichnet wird.
 

jakob

Aktives Mitglied
Hallo Dieta,

so klappts bei mir:

Code:
public class GradPanel extends JPanel{

	Color c1;
	Color c2;
	
	public GradPanel(Color c1, Color c2) {
		this.c1 = c1;
		this.c2 = c2;
	}
	
	@Override
	public void paintComponent(Graphics g) { 
		Graphics2D g2 = (Graphics2D)g;
		g2.setPaint(new GradientPaint(
				0, 
				0, 
				c1,
				(float)getSize().getWidth(), 
				(float) getSize().getHeight(), 
				c2)				
		); 
		g.fillRect(0, 0, (int)getSize().getWidth(), (int)getSize().getHeight()); 
	}

}

Ich uebergebe dem GradPanel 2 JLabels mit Text, einer der beiden Texte soll ganz links, der andere ganz rechts stehen, leider pappt mir das JPanel die 2 zusammen.

Wie bekomm ich das hin?

Liebe Gruesse,

Jakob
 

JPKI

Top Contributor
Was die Titelleiste angeht: Das ist ja betriebssystemspezifisch, da kannst du mit Java keinen Einfluss drauf nehmen.
Eine Möglichkeit wäre es evtl. einem undekorierten Fenster eine eigene Titelleiste zu verpassen.
 

jakob

Aktives Mitglied
Hallo,

ich meine nicht die Titelleiste des Fensters, sondern das Label, das ich mit dem Gradienten angelegt habe.

Liebe Gruesse,

Jakob
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen


Oben