(Dieses Thema ist ein Duplikat des Themas http://www.java-forum.org/java-basi...textpane-bewegungsloses-hintergrundsbild.html. Ich bitte um die Löschung des Themas, wenn Duplikate verboten sind, da ich dieses Thema hier doch passender finde.)
Guten Tag, liebe Programmierschaft.
Folgendes Anliegen möchte ich euch verkünden:
Ich habe ein JTextPane und möchte ein Image als Hintergrundsbild festlegen. Dieses soll jedoch fix sein, sich also weder bewegen noch zerren lassen. Beim Scrollen soll allerdings das gleiche Hintergrundsbild erhalten bleiben, ohne sich zu bewegen - nur der Text soll gescrollt werden, nicht aber das Bild (wichtig). Wenn das JTextPane vergrößert wird und somit das Hintergrundsbild für einen gesichteten Punkt außer Reichweite ist - sprich: das Hintergrundsbild ist kleiner als das JTextPane - dann soll ein neues Exemplar von diesem Bild angefertig werden und dort abgebildet aufzufinden sein.
Welcher Weg wäre denn der beste, um dies zu bewerkstelligen?
Eigene Gedanken vorweg:
1. Ich muss irgendwie machen, dass beim Erzeugen des Bilds nicht die Koordinate (0|0) des JTextPanes in Bezug auf den Scrollbalken-Punkt relevant ist, sondern die linke obere Ecke des Panes als Ursprung festgelegt wird. Sprich: beim Scrollen wird der Text in die Leere geschoben, in einen unsichtbaren Bereich, der einen weißen Hintergrund hat. Das Bild bewegt sich nicht. Nur wie, ist die Frage.
2. Bei jedem Neuzeichnen muss abgefragt werden, ob das Pane so groß ist / wird, dass die momentane Anzahl der Hintergrundsbilder zur Füllung des Sichtbereichs nicht genügen. Ist dies der Fall, muss ein neues Exemplar erzeugt werden und rechts bzw. unten angehängt werden.
Nummer 2 ist sehr einfach, ein Problem stellt hier lediglich Nummer 1 dar. Ich bedanke mich für eure Mithilfe. Habe ich mich nicht klar genug ausgedrückt? Dann bitte ich um Fragen.
Ein kleiner Auszug aus dem Quellcode (auch wenn er meines Erachtens nichts bringen wird):
Ich verbleibe mit vorzüglicher Hochachtung,
Mujahiddin
Guten Tag, liebe Programmierschaft.
Folgendes Anliegen möchte ich euch verkünden:
Ich habe ein JTextPane und möchte ein Image als Hintergrundsbild festlegen. Dieses soll jedoch fix sein, sich also weder bewegen noch zerren lassen. Beim Scrollen soll allerdings das gleiche Hintergrundsbild erhalten bleiben, ohne sich zu bewegen - nur der Text soll gescrollt werden, nicht aber das Bild (wichtig). Wenn das JTextPane vergrößert wird und somit das Hintergrundsbild für einen gesichteten Punkt außer Reichweite ist - sprich: das Hintergrundsbild ist kleiner als das JTextPane - dann soll ein neues Exemplar von diesem Bild angefertig werden und dort abgebildet aufzufinden sein.
Welcher Weg wäre denn der beste, um dies zu bewerkstelligen?
Eigene Gedanken vorweg:
1. Ich muss irgendwie machen, dass beim Erzeugen des Bilds nicht die Koordinate (0|0) des JTextPanes in Bezug auf den Scrollbalken-Punkt relevant ist, sondern die linke obere Ecke des Panes als Ursprung festgelegt wird. Sprich: beim Scrollen wird der Text in die Leere geschoben, in einen unsichtbaren Bereich, der einen weißen Hintergrund hat. Das Bild bewegt sich nicht. Nur wie, ist die Frage.
2. Bei jedem Neuzeichnen muss abgefragt werden, ob das Pane so groß ist / wird, dass die momentane Anzahl der Hintergrundsbilder zur Füllung des Sichtbereichs nicht genügen. Ist dies der Fall, muss ein neues Exemplar erzeugt werden und rechts bzw. unten angehängt werden.
Nummer 2 ist sehr einfach, ein Problem stellt hier lediglich Nummer 1 dar. Ich bedanke mich für eure Mithilfe. Habe ich mich nicht klar genug ausgedrückt? Dann bitte ich um Fragen.
Ein kleiner Auszug aus dem Quellcode (auch wenn er meines Erachtens nichts bringen wird):
Java:
public void paintComponent(Graphics g)
{
if(backgroundImage != null)
g.drawImage(backgroundImage, 0, 0, this); //das ist momentan der falsche Weg
super.paintComponent(g);
}
Mujahiddin