05. august 2004 - 19:39
Der er
6 kommentarer og 1 løsning
Tekst på ImageIcon
Jeg indlæser et ImageIcon i mit program med følgende kode: Image image = Toolkit.getDefaultToolkit().getImage("billede.jpg"); Image scaledImage = image.getScaledInstance(400, -1, Image.SCALE_DEFAULT); ImageIcon imi = new ImageIcon(scaledImage); Hvordan for jeg skrevet filens navn på mit imageicon. Jeg har forsøgt at få et Graphics-objekt ud af imi, så jeg kan skrive navnet med drawString(.....) fra Graphics-klassen, men det er ikke rigtigt lykkedes mig. Hvordan gør jeg???
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
05. august 2004 - 21:45
#1
Den nemme udgave vil være at lave et JLabel og sætte et icon på den samt tekst: JLabel l = new JLabel("Mit billede", icon, JLabel.LEADING); Hvis da kan leve med at teksten står ved siden af og ikke henover. Ellers skal du rigtig nok have gang i Graphics objektet.
05. august 2004 - 22:06
#2
Jeg har prøvet med en JLabel, men jeg skal læse en række billeder ind i en JList, og det er ikke lykkedes mig at få en JLabel med billede ind i en JList, derfor har jeg prøvet at vælge vejen med Graphics-objektet, hvilket også er en lidt flottere løsning hvis det kan lade sig gøre. Problemet er bare at få et Graphics-objekt trukket ud af mit ImagaIcon.
05. august 2004 - 22:06
#3
Efter lidt kig på det, ser det nu egentlig ikke ud til at ImageIcon har en paint-metode man kan override... Jeg har lige bikset et super simpelt eksempel sammen på hvordan det kunne gøres ved hjælp af JPanel og JLabel: public class MyImagePanel extends JPanel { private ImageIcon icon; private String beskrivelse; public MyImagePanel(Image i, String beskrivelse) { this.beskrivelse = beskrivelse; icon = new ImageIcon(i); JLabel label = new JLabel(icon); label.setBounds(0, 0, icon.getIconWidth(), icon.getIconHeight()); this.setLayout(null); this.add(label); } public void paint(Graphics g) { super.paint(g); g.drawString(beskrivelse, 0, icon.getIconHeight() / 2); } } Ovenstående oprettes så bare som følgende: Image i = Toolkit.getDefaultToolkit().getImage("logo.jpg"); MyImagePanel icon = new MyImagePanel(i, "Mit Billede"); Og det tilføjes så til den Container du ønsker...
07. august 2004 - 12:50
#4
mikkelbm : Jeg har prøvet at lave dit eksempel, men jeg kan ikke få vist billederne i min JList. Kan du få dem vist direke i en JList?? Jeg prøvede at implementere følgende kode med et BufferedImage-objekt: Image image = Toolkit.getDefaultToolkit().getImage("billede.jpg"); Image scaledImage = image.getScaledInstance(400, -1, Image.SCALE_DEFAULT); BufferedImage bufferedImage = new BufferedImage(scaledImage.getWidth(this), scaledImage.getHeight(this), BufferedImage.TYPE_INT_BGR); Graphics2D bufferedImageGraphics = bufferedImage.createGraphics(); bufferedImageGraphics.drawImage(scaledImage,0,0,null); bufferedImageGraphics.drawString("Billedets navn", 10,15); ImageIcon imi = new ImageIcon(BufferedImage ); Og det virkede faktisk..
07. august 2004 - 12:54
#5
Ahh, nej - jeg havde ikke lige fanget at du skulle bruge det i en JList - min fejl :) Godt at du fik det til at virke...
11. september 2004 - 21:55
#6
Husk at lukke dit spørgsmål. Enten ved at lægge et svar selv, eller hvis du kunne bruge mit svar, så acceptere det.
12. september 2004 - 09:53
#7
Sorry....Tak for hjælpen.
Kurser inden for grundlæggende programmering