Avatar billede kezzelski Nybegynder
17. august 2001 - 00:17 Der er 7 kommentarer og
1 løsning

Ændring af look & feel i java awt

Jeg er igang med at skrive et lille spil i java, hvor jeg MEGET gerne ville kunne bruge de fleste af awt\'s komponenter (deres funktionalitet), dog med et helt andet design..! Indtil videre har jeg måttet klare mig med at lave mine egne komponenter, men da det er en applet der skal downloades (og da de på sun allerede har lavet nogle fine komponenter) kunne jeg meget godt tænke mig at kunne bruge fx en knap´med et billede i stedet for??? Jeg ved at det er muligt at ændre i det såkaldte java look & feel, men jeg har ikke kunnet finde ud af hvordan? Jeg ville være meget glad hvis der er en derude der kunne fortælle mig hvordan?

Avatar billede logical Nybegynder
17. august 2001 - 08:00 #1
Du bruger ikke awt komponenter, men Swing komponenter, hvis du vil have de mere udvidede komponenter. Det er dem, der starter med J.. og ligger i pakken javax.swing.*;

Lav f.eks. en button med image således:

JButton b = new JButton(new ImageIcon(\"c:/image.jpg\"));
Avatar billede logical Nybegynder
17. august 2001 - 08:14 #2
P.s. Kig i dit java bibliotek efter SwingSet2 demoen, og kør den, ex:

C:\\jdk1.3\\demo\\jfc\\SwingSet2>java -jar SwingSet2.jar

Så kan du se nogle af de muligheder, som swing tilbyder (heriblandt forskelligt look-and-feel, men det er lidt overkill i dit tilfælde)
Avatar billede half_d Nybegynder
20. august 2001 - 10:15 #3
lige et sidespørgsmål,
hvis man f.eks. laver en JButton med et billede, compiler Java så billedet med i koden, eller skal man selv smide billedet med når man distrubuerer programmet?

// Halfdan
Avatar billede logical Nybegynder
20. august 2001 - 10:24 #4
Du skal selv lægge det ved, men hvis du bundler det i en jar fil, er det nemmest at hente med:

    URL iconURL =
    ClassLoader.getSystemResource(relativePathToFile);
    if (iconURL != null) // If we found it bundled, use it.
        icon = new ImageIcon(iconURL);
Avatar billede kezzelski Nybegynder
20. august 2001 - 12:45 #5
Mit problem er at langt fra alle browsere understøtter swing-klasserne. Den \"look&feel\" jeg taler om er den der gør at fx knapper er forskellige i windows og linux! Jeg ved at det er muligt at lave sin egen \"stil\" på samme plan som linux-stilen og windows-stilen. Grunden til at jeg ikke bare kan bruge extensions af java.awt.Component er at jeg så skulle skrive hele bunken af komponenter om (hvilket jeg er godt igang med!), da jeg skal bruge mange af dem! Desuden er det forfærdeligt avanceret at skrive en klasse som List... :-)
Avatar billede logical Nybegynder
20. august 2001 - 13:33 #6
Jeg forstår dit problem.

Men, det er muligt at embedde java som en plug-in i browseren (og derved bliver det så understøttet), hvilket giver dig de muligheder, men hvis det ikke hjælper dig, kan jeg kun tilføje, at awt bygger på tanken om en native peer component til hver java komponent, så en Button har en native Button-Peer, som indeholder platformens generelle måde at vise en knap. Andet \"look&feel\" til AWT har jeg aldrig hørt om.

Du kan dog sagtens hente alle swing klasserne, og anvende dem i din kode, hvis du ellers bundler dem. Folkene har jo trods alt ulejliget sig med at omskrive klasser som List :-)

Held og lykke med projektet
Avatar billede ttn.bonk Nybegynder
25. oktober 2001 - 08:49 #7
Følgende program stump skulle lave en L&F,
der svarer til det operativ system der kører hvorfra programmet afvikles:

UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());

Alle componenter, der laves efter dette kald vil få dette L&F, mens componenter der laves før vil ikke.

Andre alternativer er f.eks.

UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName());

som vist nok sætter \"Metal\" L&F (efter hukommelse).

Husk try-catch omkring etc.



Avatar billede logical Nybegynder
25. oktober 2001 - 18:11 #8
Yep, men det var det swing, som kezzelski absolut ikke ville bruge :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

IT-JOB

Netcompany A/S

IT Consultant

Netcompany A/S

Linux Operations Engineer

Djurslands Bank

IT-udvikler

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Ingeniør til Satellitkommunikation

Ringkjøbing Landbobank – Nordjyske Bank

Forretningsudvikler til procesoptimering