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 fra Context&
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