|
| Newbie og drawImage Fra : stk | Vist : 572 gange 50 point Dato : 19-12-01 11:24 |
|
Hejsa. Jeg er ved at lave en applikation med en jMenuBar. Menuen er blevet som den skal være, og nu vil jeg gerne have et baggrundsbillede. I klassens konstruktør har jeg tilføjet linierne:
toolkit = getToolkit();
image = toolkit.getImage("jul.jpg")
I selve klassen har jeg tilføjet paint metoden:
public void paint(Graphics gr){
gr.drawImage(image, 0, 0, this);}
Det virker også fint. Lige botset fra at menuen forsvinder. Jeg har også prøvet at flytte billedet lidt ned, men ligefedt hjælper det. Hvad gør jeg forkert?
mvh Stefan
| |
| Accepteret svar Fra : Nyhedsbruger | Modtaget 50 point Dato : 19-12-01 13:58 |
|
> Hejsa. Jeg er ved at lave en applikation med en jMenuBar. Menuen er
> blevet som den skal være, og nu vil jeg gerne have et baggrundsbillede.
> I klassens konstruktør har jeg tilføjet linierne:
> toolkit = getToolkit();
> image = toolkit.getImage("jul.jpg")
> I selve klassen har jeg tilføjet paint metoden:
> public void paint(Graphics gr){
> gr.drawImage(image, 0, 0, this);}
>
> Det virker også fint. Lige botset fra at menuen forsvinder. Jeg har også
> prøvet at flytte billedet lidt ned, men ligefedt hjælper det. Hvad gør
> jeg forkert?
Hej Stefan
prøv at tilføje linjen "[jMenuBar-objekt].repaint();" i paint så den får
følgende udseende:
public void paint(Graphics gr){
gr.drawImage(image, 0, 0, this);
menu.repaint(); //antager her at dit jMenuBar objekt er kaldt menu
}
problemet er at paint() funktionen gentegner hele billedet forfra og derfor
skal menuen repaintes.
Håber det virker
Hansen
| |
| Godkendelse af svar Fra : stk |
Dato : 19-12-01 14:18 |
|
Det virker. Jeg er jo en VB spasser, der er vant til at få såddan nogle banaliteter forærende af systemet
Go' jul.
stefan
| |
| Kommentar Fra : stk |
Dato : 19-12-01 14:23 |
|
Hmm... Der var jeg lidt for hurtig. Både billede og menu bliver vist fint nok. Men menupunkterne blive vist _bag_ billedet. Knapt så fedt når det skal være et baggrundsbillede...
Kan man sætte noget layer eller lignende?
stefan
| |
|
stk wrote:
> Det virker. Jeg er jo en VB spasser, der er vant til at få såddan
nogle
> banaliteter forærende af systemet
Det er sådan nogle "banaliteter" som gør at man ikke gider programmere
i VB, for så har man ikke selv fuld kontrol. Det kunne jo ske at man
engang fik brug for at den _ikke_ repaintede af sig selv.
> Go' jul.
I lige måde...
Mvh.
Martin Ehmsen (som også selv har programmeret i VB i sine unge dage)
--
"Life is good for only two things,
discovering mathematics and teaching mathematics"
Siméon Poisson
| |
| Kommentar Fra : stk |
Dato : 19-12-01 14:55 |
|
> Det er sådan nogle "banaliteter" som gør at man ikke gider programmere
> i VB, for så har man ikke selv fuld kontrol. Det kunne jo ske at man
> engang fik brug for at den _ikke_ repaintede af sig selv.
Nu er jeg jo evigt nysgerrig. Kan du komme med et (simpelt) eksempel?
stefan
| |
|
stk wrote:
>> Det er sådan nogle "banaliteter" som gør at man ikke gider
programmere
>
>> i VB, for så har man ikke selv fuld kontrol. Det kunne jo ske at man
>> engang fik brug for at den _ikke_ repaintede af sig selv.
> Nu er jeg jo evigt nysgerrig. Kan du komme med et (simpelt) eksempel?
> stefan
Måske ikke lige i det tilfælde (ikke noget jeg selv har været ude
for...) men jeg vil kunne komme med en alen lang list over ting du kan
lave i fx Java som du ikke kan lave i VB.
Fx hvis du vil have et helt vindue til at være et billede, altså uden
title-bjælken, så er det udfatteligt let i Java, men umuligt i VB.
Mvh.
Martin Ehmsen
--
"Life is good for only two things,
discovering mathematics and teaching mathematics"
Siméon Poisson
| |
| Kommentar Fra : stk |
Dato : 19-12-01 17:26 |
|
> Måske ikke lige i det tilfælde (ikke noget jeg selv har været ude
> for...) men jeg vil kunne komme med en alen lang list over ting du kan
> lave i fx Java som du ikke kan lave i VB.
Det er jeg ikke i tvivl om. Men det kræver også mere af programmøren.
> Fx hvis du vil have et helt vindue til at være et billede, altså uden
> title-bjælken, så er det udfatteligt let i Java, men umuligt i VB.
Bårp, bårp, bårk ikk'. ControlBox = False løser _det_ problem
For nu at vende tilbage til Java: Hvad med en lille forklaring på hvornår show, paint, repaint ol. forekommer? Jeg har som nævnt min menu og et billede. Når jeg trykker på et menupunkt i baren, vises listen af pankter bag ved billedet, men hvis jeg fører musen hen over et af underpunkterne, tegnes de foran billedet...
stefan
| |
|
stk wrote:
> For nu at vende tilbage til Java: Hvad med en lille forklaring på
> hvornår show, paint, repaint ol. forekommer? Jeg har som nævnt min
menu
> og et billede. Når jeg trykker på et menupunkt i baren, vises listen
af
> pankter bag ved billedet, men hvis jeg fører musen hen over et af
> underpunkterne, tegnes de foran billedet...
Jeg vil foreslå dig at læse i API'en, der står det hele faktisk ret
godt:
Læs: java.awt.Container's paint()
Læs: java.awt.Component's repaint()
API'en er din ven...
Mvh
Martin Ehmsen
--
"Life is good for only two things,
discovering mathematics and teaching mathematics"
Siméon Poisson
| |
|
"Martin Ehmsen" <thames@get2net.dk> wrote in message
news:9vqveb$1rm$1@sunsite.dk...
> stk wrote:
> Jeg vil foreslå dig at læse i API'en, der står det hele faktisk ret
> godt:
> Læs: java.awt.Container's paint()
> Læs: java.awt.Component's repaint()
>
> API'en er din ven...
Nixen! - Jeg bliver ofte uvenner med den! ;)
/Brian Matzon
| |
|
Brian Matzon wrote:
>> API'en er din ven...
>
> Nixen! - Jeg bliver ofte uvenner med den! ;)
Men hvis man ikke har andre venner er den da god nok (jeg taler _ikke_
af erfaring)...
Martin
--
"Life is good for only two things,
discovering mathematics and teaching mathematics"
Siméon Poisson
| |
| Kommentar Fra : stk |
Dato : 20-12-01 13:04 |
|
Skal vi ikke gå på kompromis og sige at den _kan_ være et rart bekendtskab? Men jeg kan ikke gennemskue mit problem alligevel. Jeg har forsøgt med
public paint(Graphics gr){
super.paint(gr);
gr.drawImage(image, 0, 80, this);}
Men så blive billedet tegnet oven på mine JMenu'er (logisk nok, når billedet tegnes efter menuen?)
Hvis jeg bytter om på de to sætningerm vises billedet ikke, da det bliver slættet af super.paint()?.
Skal jeg implementere noget repaint i en actionListener i JMenu eller JMenuItem eller noget helt tredie?
stefan
| |
| Kommentar Fra : stk |
Dato : 21-12-01 14:54 |
|
> public void paint(Graphics gr){
> gr.drawImage(image, 0, 0, this);
> menu.repaint(); //antager her at dit jMenuBar objekt er kaldt menu
> }
Det var den ene del af det. Den anden del er, at menuen skal gøres til 'heavyweight' for at kunne vises oven på et billede: http://java.sun.com/products/jfc/tsc/articles/mixing/index.html
stefan
| |
|
After I finished the 3 Pan Galactic Gargle Blasters, "stk"
<stk.news@kandu.dk> just offered me, he muttered some weird stuff, and
I had to correct this gibberish:
>Det var den ene del af det. Den anden del er, at menuen skal gøres til
>'heavyweight'
huh? - Hvorfor ikke bare tegne menuen oven på?
--
Martin Mouritzen.
The truth is out there! Does anyone know the URL?
| |
| Kommentar Fra : stk |
Dato : 02-01-02 10:25 |
|
Det kan man ikke. Eller rettere sagt: Resultatet er uacceptabelt. De enkelte menupunkter bliver først tegnet, når musen føres hen over dem, og baggrunden bliver ikke tegnet.
stefan
| |
| Du har følgende muligheder | |
|
Eftersom du ikke er logget ind i systemet, kan du ikke skrive et indlæg til dette spørgsmål.
Hvis du ikke allerede er registreret, kan du gratis blive medlem, ved at trykke på "Bliv medlem" ude i menuen.
| |
|
|