Fensterrand überdeckt Hintergrund

Status
Nicht offen für weitere Antworten.

java.chaos

Mitglied
Hallo,

ich habe derzeit folgendes Problem:

Ich möchte ein Bild in ein AWT Fenster zeichnen. Diese soll aber nicht durch den Rand bzw. die Titelleiste überdeckt werden.

testht5.jpg


testwindowka2.jpg


Gibt es eine Möglichkeit die X und Y Positionen der Ecken oben links bzw. unten rechts der eigentlich sichtbaren Fensteroberfläche auszulesen?

Eine Google Suche war bei mir leider erfolglos - ggf. habe ich die falschen Keywords benutzt.

Ich bin für hilfreiche Hinweise sehr dankbar.

Der Sourcecode für das Programm:

Code:
import java.awt.*;

public class TestWindow 
extends Frame
{
	private Image testImage;
	
	public TestWindow()
	{
		super("TestWindow");
		testImage = this.getToolkit().createImage("test.jpg");
		this.setBounds(10,10,192,192);
		this.setVisible(true);
	}
	
	public void paint( Graphics g )
	{
		g.drawImage(testImage, 0, 0, this);
	}
	
	public static void main(String[] args) 
	{
		TestWindow t = new TestWindow();
	}

}
 

0x7F800000

Top Contributor
mach's dir nicht so schwer, erstelle lieber ein separates JComponent, überschreib dort die paintComponent methode, und füg dieses component dann ins fenster ein, dann hast du sicherlich keinen stress mit irgendwelchen ecken...
 

André Uhres

Top Contributor
Wir können uns eine Klasse "DrawingArea" machen (extends Canvas oder Component) wo wir unsere paint Methode reintun.
Wir fügen dann einfach eine Instanz dieser Klasse dem Frame hinzu, etwa so:
Code:
add(new DrawingArea(), BorderLayout.CENTER);
 

java.chaos

Mitglied
@André Uhres:

Okay habe das gerade mal probiert (Quellcode siehe unten) und die Komponente wird wie gewünscht in der linken oberen Ecke der sichtbaren Fensterfläche angezeigt:

testwindow2oo3.jpg


Insofern schon einmal Danke für die Antwort :)



:?: Nun habe ich aber noch eine Frage:

Wenn ich den Hintergrund mit einem Bild der Größe 200x200 füllen wollte und dieses genau durch den Rand begrenzt sein soll, wie müsste ich das anstellen?

Mit Frame.setBounds() kann ich ja nur die gesamte Fenstergröße inklusive Rahmen, dessen Größen ich nicht kenne, setzen.



Quellcode:

Klasse TestComponent
Code:
import java.awt.*;

public class TestComponent 
extends Component
{

	private Image testImage;
	
	public TestComponent() 
	{
		this.setBounds(0,0,128,128);
		this.setVisible(true);
		testImage = this.getToolkit().createImage("test.jpg");
	}
	
	public void paint( Graphics g )
	{
		g.drawImage(testImage, 0, 0, this);
	}

}

Klasse TestWindow
Code:
import java.awt.*;

public class TestWindow 
extends Frame
{
	
	public TestWindow()
	{
		super("TestWindow");
		this.setBounds(10,10,192,192);
		this.setVisible(true);
		
		add(new TestComponent(), BorderLayout.CENTER );
	}
	
	public static void main(String[] args) 
	{
		TestWindow t = new TestWindow();
	}

}
 

java.chaos

Mitglied
Auch diese Lösung funktioniert super! :)

testwindow3as9.jpg


Vielen Dank :)




Quellcode Klasse TestComponent:

Code:
import java.awt.*;

public class TestComponent 
extends Component
{

	private Image testImage;
	
	public TestComponent() 
	{
		this.setVisible(true);
		this.setPreferredSize(new Dimension(128,128));
		testImage = this.getToolkit().createImage("test.jpg");
	}
	
	public void paint( Graphics g )
	{
		g.drawImage(testImage, 0, 0, this);
	}

}
 

Wildcard

Top Contributor
1. Nimm Swing, kein AWT (JComponent)
2. Sobald du auf Swing umgestellt hast, überschreib paintComponent, nicht mehr paint
3. Lieber ImageIO statt Toolkit#createImage
 

André Uhres

Top Contributor
Wildcard hat gesagt.:
1. Nimm Swing, kein AWT (JComponent)
Obgleich wir empfehlen, daß Entwickler für die meisten GUI Bedürfnisse Gebrauch von Swing machen, ist es nützlich,
AWTs Malmechanismus zu verstehen, weil derjenige von Swing darauf aufbaut (darum heisst dieses Unterforum auch AWT...).
 

java.chaos

Mitglied
André Uhres hat gesagt.:
Wildcard hat gesagt.:
1. Nimm Swing, kein AWT (JComponent)
Obgleich wir empfehlen, daß Entwickler für die meisten GUI Bedürfnisse Gebrauch von Swing machen, ist es nützlich,
AWTs Malmechanismus zu verstehen, weil derjenige von Swing darauf aufbaut (darum heisst dieses Unterforum auch AWT...).

Gut - Das stimmt dann auch mit dem überein, was in meinem "Handbuch der Java Programmeirung" angedeutet wird, weshalb ich erst angefangen habe mir ein Überblick von AWT zu verschaffen, bevor ich mir Swing anschaue. Allerdings sind beide in den Grundfunktionen scheinbar recht ähnlich zu handeln, sodass mir die Modifikationen (s.o.) keine Schwierigkeiten bereiteten.

Danke nochmal für die nette Hilfe :wink:
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Swing Komponenten mit fester Größe an Fensterrand(JFrame) AWT, Swing, JavaFX & SWT 2
N Swing nach Fensterrand Action ausführen? HILFE AWT, Swing, JavaFX & SWT 7
R JScrollPane überdeckt JPanel? AWT, Swing, JavaFX & SWT 7
M JButton wird von JTree überdeckt AWT, Swing, JavaFX & SWT 4
I swing fenster neu zeichnen, wenn überdeckt AWT, Swing, JavaFX & SWT 8
B AWT Canvas überdeckt nach repaint() JComboBox-Optionen AWT, Swing, JavaFX & SWT 2
C Swing Info-Ebene überdeckt Spielfeld-Ebene komplett AWT, Swing, JavaFX & SWT 5
A paintComponent überdeckt ... AWT, Swing, JavaFX & SWT 13
Kidao Das Hintergrundbild überdeckt die Swing-Komponente AWT, Swing, JavaFX & SWT 5
M Textfeld überdeckt Combobox :autsch: AWT, Swing, JavaFX & SWT 3
R JMenu einträge werden überdeckt AWT, Swing, JavaFX & SWT 3
frager2345 Bild aus Dateien lesen und als Hintergrund verwenden AWT, Swing, JavaFX & SWT 2
1 2D-Grafik Flackerndes Hintergrund AWT, Swing, JavaFX & SWT 1
ralfb1105 JavaFX HTTP Download task im Hintergrund innerhalb GUI AWT, Swing, JavaFX & SWT 70
Drachenbauer Swing Wie ändere ich den Hintergrund vom Anzeigefeld einer JComboBox, die nicht zum Hineinschreiben offen steht? AWT, Swing, JavaFX & SWT 32
A Fehler beim Hintergrund AWT, Swing, JavaFX & SWT 17
C Java Hintergrund funktioniert nicht AWT, Swing, JavaFX & SWT 9
A Bilder als Hintergrund AWT, Swing, JavaFX & SWT 2
BobbGott durchsichtiges JTextField mit Hintergrund AWT, Swing, JavaFX & SWT 12
L JPanel zeichnet im Konstrukter erzeugten Hintergrund nicht AWT, Swing, JavaFX & SWT 10
P Jframe Bild einfügen, Hintergrund Farbe ändern, und Button schrift Größe ändern AWT, Swing, JavaFX & SWT 2
T Hintergrund für GUI AWT, Swing, JavaFX & SWT 1
I 2D-Grafik Bilder Eingefügt, button jetzt im Hintergrund AWT, Swing, JavaFX & SWT 2
F JTable Zellen-Hintergrund ändern AWT, Swing, JavaFX & SWT 7
D JButton - Nur Icon anzeigen / transparenter Hintergrund AWT, Swing, JavaFX & SWT 2
H Textfield bleibt im Hintergrund AWT, Swing, JavaFX & SWT 2
E JTable Hintergrund von geklickter Zelle ändern AWT, Swing, JavaFX & SWT 2
wolfgang63 JavaFX Transparenter Hintergrund aber sichtbare Buttons AWT, Swing, JavaFX & SWT 6
F 2D-Grafik Den Hintergrund loopen AWT, Swing, JavaFX & SWT 3
V LookAndFeel JSpinner Hintergrund Farbe mit Nimbus LaF AWT, Swing, JavaFX & SWT 0
O 2D-Grafik Bild abgeschnitten nach Rotation mit Affine Transform und Hintergrund Schwarz AWT, Swing, JavaFX & SWT 8
O Hintergrund von AffineTransfom (rotation) ändern AWT, Swing, JavaFX & SWT 0
D paintComponent() mit transparentem Hintergrund. AWT, Swing, JavaFX & SWT 0
C JFrame paint ohne hintergrund nutzen AWT, Swing, JavaFX & SWT 6
A Swing Paint mit Button Clear den Hintergrund säubern um wieder zeichnen zu können AWT, Swing, JavaFX & SWT 2
S Swing, Button benutzen zum Hintergrund wechseln AWT, Swing, JavaFX & SWT 3
N Swing microba - DatePicker: Feld-Hintergrund anpassen AWT, Swing, JavaFX & SWT 2
M Tastatureingabe im Hintergrund (JTable) AWT, Swing, JavaFX & SWT 2
B Hintergrund laden AWT, Swing, JavaFX & SWT 3
B Swing Zähler im Hintergrund falsch berechnet - Warum? AWT, Swing, JavaFX & SWT 3
J JButton Hintergrund AWT, Swing, JavaFX & SWT 5
L Gradient Hintergrund malen und durchscheinen lassen AWT, Swing, JavaFX & SWT 8
K Swing JTable Text im Hintergrund einer leeren Tabelle AWT, Swing, JavaFX & SWT 3
L Beim Neuzeichnen einer Swing GUI kurz Schwarzer Hintergrund AWT, Swing, JavaFX & SWT 8
D Swing Probleme bei transparenten Hintergrund im JTextField AWT, Swing, JavaFX & SWT 6
J Swing Malen auf JPanel mit transparentem Hintergrund AWT, Swing, JavaFX & SWT 21
S 2D-Grafik Bild bleibt im Hintergrund bei Diashow AWT, Swing, JavaFX & SWT 3
D Applet hintergrund wird nicht weiß AWT, Swing, JavaFX & SWT 2
B JList transparenter Hintergrund AWT, Swing, JavaFX & SWT 2
J Speichern, Event, Hintergrund getAppletContext AWT, Swing, JavaFX & SWT 2
E Swing JPanel mit Hintergrund AWT, Swing, JavaFX & SWT 3
L Bilder im JPanel als Hintergrund - Swing AWT, Swing, JavaFX & SWT 2
kniffel GUI-Applet JTable füllt Hintergrund völlig aus AWT, Swing, JavaFX & SWT 4
J Hintergrund Label-Frame AWT, Swing, JavaFX & SWT 3
A Hintergrund von einem Frame ändern AWT, Swing, JavaFX & SWT 3
T Hintergrund AWT, Swing, JavaFX & SWT 4
T Hintergrund für 3D Erde AWT, Swing, JavaFX & SWT 4
G 2D-Grafik BufferedImage Hintergrund immer schwarz AWT, Swing, JavaFX & SWT 4
P Swing Zeichnung auf Tab im Hintergrund wird nicht gezeichnet AWT, Swing, JavaFX & SWT 3
J Label mit transparentem hintergrund - geht das? AWT, Swing, JavaFX & SWT 21
B AWT Bild als Hintergrund im Applet AWT, Swing, JavaFX & SWT 2
R Bedeckter Hintergrund AWT, Swing, JavaFX & SWT 17
D Komponenten um weitere Hintergrund- bzw. Vordergrundfarbe erweitern AWT, Swing, JavaFX & SWT 11
M JFrame (Mausrad, Hintergrund) AWT, Swing, JavaFX & SWT 13
Dragonfire Swing Hintergrund aller Komponenten verändern AWT, Swing, JavaFX & SWT 2
DStrohma Swing JPanel mit Bild als Hintergrund AWT, Swing, JavaFX & SWT 2
B Swing Image als Hintergrund im JInternalFrame - Problem AWT, Swing, JavaFX & SWT 3
N GridBagLayout, leere grids (Hintergrund) transparent? AWT, Swing, JavaFX & SWT 3
J Swing JPanel mit Hintergrund zeigt componente nicht AWT, Swing, JavaFX & SWT 6
E einfache Frage:warum ist Hintergrund grau ? AWT, Swing, JavaFX & SWT 24
algorismi JCompnent mit transparentem Hintergrund AWT, Swing, JavaFX & SWT 4
T Schließen eines JDialogs setzen den JFrame in den Hintergrund AWT, Swing, JavaFX & SWT 2
J CellRenderer einzelne zellen Hintergrund AWT, Swing, JavaFX & SWT 9
R JTable Hintergrund der Zeile abhängig von Inhalt einer Zelle verändern AWT, Swing, JavaFX & SWT 3
E Progress Bar mit Bild als Hintergrund AWT, Swing, JavaFX & SWT 2
N Swing Hintergrund Bild in JAR Datei AWT, Swing, JavaFX & SWT 2
N im fenster ein hintergrund bild einfügen AWT, Swing, JavaFX & SWT 18
A Swing Mit Graphics2D auf transparentem Hintergrund zeichnen AWT, Swing, JavaFX & SWT 7
A Hintergrund erstellen AWT, Swing, JavaFX & SWT 13
J Layer von JLayeredPane unsichtbar durchsichtig in den Hintergrund AWT, Swing, JavaFX & SWT 5
T GridLayout Zeilen Hintergrund AWT, Swing, JavaFX & SWT 5
P Swing JComboBox beschädigt hintergrund AWT, Swing, JavaFX & SWT 4
S JButton - Hintergrund verändern AWT, Swing, JavaFX & SWT 7
K JTable hintergrund AWT, Swing, JavaFX & SWT 12
SebSnake Animiertes GIF auf JPG Hintergrund darstellen? AWT, Swing, JavaFX & SWT 3
G Label auf Panel auf Panel mit Grafiken als Hintergrund (awt) AWT, Swing, JavaFX & SWT 7
G TextField im Hintergrund AWT, Swing, JavaFX & SWT 2
O Zweifarbiger Hintergrund in einer TableCell? AWT, Swing, JavaFX & SWT 4
R Bilder als Hintergrund für Swing - Komponenten AWT, Swing, JavaFX & SWT 3
R HTML Hintergrund für Swing - Componenten AWT, Swing, JavaFX & SWT 2
0 JTable - Hintergrund Tabellen statt Grau AWT, Swing, JavaFX & SWT 5
V JButton in Hintergrund zwingen? AWT, Swing, JavaFX & SWT 14
G Hintergrund AWT, Swing, JavaFX & SWT 5
M Hintergrund Transparent machen? AWT, Swing, JavaFX & SWT 3
F Farbe für den Hintergrund eine BorderLayout-Teils AWT, Swing, JavaFX & SWT 5
C Fenster rücken beim Drucken in den Hintergrund AWT, Swing, JavaFX & SWT 6
B Programm im Hintergrund - JFrame AWT, Swing, JavaFX & SWT 5
D Robot: Screenshot vom Desktop Hintergrund möglich ? AWT, Swing, JavaFX & SWT 3
F JDialog im Hintergrund lassen AWT, Swing, JavaFX & SWT 2
G schwarzen hintergrund von png transparent machen AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen

Neue Themen


Oben