Avatar billede anderswb Nybegynder
22. april 2009 - 10:22 Der er 4 kommentarer og
1 løsning

ImageIcon

Mojn
Jeg kæmper med at lære GUI her, og forsøget at få et ImageIcon til at blive vist på et JLabel. Men af en eller anden grund nægter den at vise noget billedet.


import java.awt.*;
import javax.swing.*;

public class MainFrame extends JFrame{
    MainFrame(){
        ImageIcon coffeeIcon = new ImageIcon("images/coffee.jpg");
        add(new JLabel(coffeeIcon));
        add(new JLabel("Test label"));
        System.out.println(coffeeIcon.getIconHeight());
    }
}

getIconHeight har jeg brugt for at se om den har fat i billedet, men det outputter bare -1.
Jeg fandt en kode snip der kunne se om den fandt filen, og det ser det ud til at den gør.
Det eneste der er i vinduet er lablen "Test label".

Er jeg bare totalt idiot, eller burde det her ikke virke?

Jeg skriver i netbeans.
Avatar billede thomaskleist Nybegynder
22. april 2009 - 11:09 #1
Hej

Prøv med

import java.awt.*
import javax.swing.*

public class MainFrame extends JFrame
MainFrame(){
ImageIcon coffeeIcon = createImageIcon("images/coffee,jpg,"Some text here");
add(new JLabel(cofeeIcon));
add(new JLabel("Test Labl);
System.Out.println(coffeeIcon.getIconHeight());
}
}
Avatar billede anderswb Nybegynder
22. april 2009 - 12:57 #2
Så brokker den sig over incompatible type på den creatImageIcon:
ImageIcon coffeeIcon = createImageIcon("images/coffee.jpg","Some text here");
Avatar billede anderswb Nybegynder
22. april 2009 - 14:56 #3
Nå. Nu fik jeg det til at spille. Skulle åbenbart vælge en anden Layout manager end den der var default, ellers kunne den ikke overskue at vise to ting på en gang..
Avatar billede htmlpower_karlmarx Nybegynder
29. april 2009 - 02:09 #4
import java.awt.*;
import javax.swing.*;

public class MainFrame extends JFrame{
    MainFrame(){
        ImageIcon coffeeIcon = new ImageIcon("images/coffee.jpg");
        add(new JLabel(coffeeIcon));
        add(new JLabel("Test label"));
        System.out.println(coffeeIcon.getIconHeight());
    }
}

først og fremmest mangler du at kalde:
super();
i starten, da du ellers ikke får initialiseret noget som helst at JFramen. Ydermere skal du aldrig tilføje elementer direkte til en frame, men til deres contentpane:

Container content = this.getContentPane();
content.setLayout(SOMELAYOUT);
content.add(coffeIcon);
osv...

til sidst kan du kalde:
this.setSize(800, 600);
eller
this.pack();
for at pakke den til minimum størrelsen der er nødvendig for at alle elementer vises korrekt...
Avatar billede anderswb Nybegynder
24. maj 2009 - 14:54 #5
Hej alle. Undskyld det sene svar. Jeg fik det til at virke selv. Det var fordi Netbeans åbenbart havde arbejdsfolder i roden af projektet af en eller anden grund, så den kunne ikke finde filerne. Men tak for inputsne.
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