1Danke
ERLEDIGT
NEIN
NEIN
ANTWORTEN
6
6
ZUGRIFFE
879
879
EMPFEHLEN
-
04.07.11 16:45 #1
- Registriert seit
- Jul 2011
- Beiträge
- 2
Hi ich hab gehört man kann ein image auf einem JPanel einbinden.
Leider hab ich keine ahnung wie das geht und mit der hilfe aus den anderen Thrads nicht wirklich erfolg gehabt. Vllt könnt ihr mir ja helfen. Hier ist mal n Teil von meinem Quellcode.
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
//Panels erzeugen private void makePanels(){ for(int x = 0; x < 15; x++){ for(int y = 0; y < 15; y++){ this.add(p[x][y]); p[x][y] = new JPanel(); p[x][y].setLocation(151 + x*50, 151 + y*50); p[x][y].setSize(49,49); p[x][y].setBackground(Color.LIGHT_GRAY); p[x][y].setVisible(true); //p[x][y].setEnabled(true); }//innere for }//äußere for }//makePanels public void init() { makePanels(); picture = getImage(getCodeBase(), "images/fractal.gif"); //des hab ich bisher gefunden }//end init public void paint(Graphics g) { g.drawImage(picture,p[actualX][actualY].getGraphics(), ImageObserver); //wie kann ich hier angeben das des in dem Panel X,Y angezeigt wird? }//end paint
-
04.07.11 17:10 #2
- Registriert seit
- Feb 2009
- Beiträge
- 193
Das kann viel einfacher gehen. Du kannst auf dein JPanel einfach ein JLabel rein packen. In das kannst du wie folgt ein Bild einbinden:
Code java:1 2 3 4 5 6 7 8 9 10 11
File imageFile = new File("C:/path/to/my/pictures.jpg"); JPanel panel = new JPanel(); BufferedImage image = null; try { BufferedImage image = ImageIO.read(imageFile); } catch(IOException ioex) { //abort System.exit(1); } panel.add(new JLabel(new ImageIcon(image)));
Damit das so funktionierst brauchst du ausser den üblichen Paketen noch das Paket javax.imageio.*
-
04.07.11 22:21 #3
- Registriert seit
- Jul 2011
- Beiträge
- 2
Ja also danke erstmal
aber bei mir klappt das nicht so wirklich. mein image wird nicht angezeigt...
naja ich hab morgen nomol CT unterricht vllt weis der lehrer was :P
-
04.07.11 22:35 #4
- Registriert seit
- Feb 2009
- Beiträge
- 193
Ansonste poste doch mal deinen Quelltext. Die Methode mit dem JLabel hat bei mir bisher immer funktioniert.
-
05.07.11 02:00 #5SE Tutorials.de Gastzugang
Ich würde hier mal auf einige ganz banale Fehlerquellen tippen
1) FALSCHE relative Pfade ... versuche zum Test mal absolute
2) Kein Decoder - das Format in dem die Bildinformationen vorliegen kann von Java nicht verarbeitet werden ... gängige Typen : jpg , png , gif , bmp
3) Animiertes Gif - es gibt immer mal wieder Threads über Fehler in Java das animierte Gif's falsch / nicht animiert / gar nicht angezeigt werden ... versuchs stattdessen mal mit nem einfachen Pictogram in jpg oder png
@Techno
Es wird auch java.awt.image.* gebraucht da BufferedImage nunmal darin liegt !
-
Hallo,
@Technoblade
Gibt es einen Grund, dass du das Image erst noch als BufferedImage lädst?
Gruß
SaschaEs ist schwer Allwissend zu sein. Aber ich komme damit klar. ;-)
-
11.07.11 19:04 #7
- Registriert seit
- Feb 2009
- Beiträge
- 193
Jein. Praktisch macht es ja keinen Unterschied, zumindest in diesem Fall. Habe mir angewöhnt, auch wenn die Oberklasse ausreichen würde, immer die direkten Rückgabtypen von Methoden auch für die Variablen zu verwenden. Finde dann ist es besser lesbar.
Weiterhin spart man sich im Zweifelsfall, wenn man später noch etwas ändern möchte und dafür Variablen/Methoden der Unterklasse braucht, ein wenig Schreibarbeit.
Ähnliche Themen
-
JPanel zeigt Bild nicht an
Von Eklaf im Forum Java GrundlagenAntworten: 8Letzter Beitrag: 10.05.11, 09:33 -
JPanel als Bild abspeichern
Von Avedo im Forum JavaAntworten: 2Letzter Beitrag: 21.07.10, 12:35 -
JPanel mit Bild
Von $$Money$$ im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 0Letzter Beitrag: 18.12.08, 14:18 -
Bild als Hintergrund auf JPanel
Von RMI_17 im Forum JavaAntworten: 10Letzter Beitrag: 10.01.08, 16:19 -
Änderndes Bild im JPanel
Von mashine-obf im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 6Letzter Beitrag: 21.02.05, 20:33





Zitieren

Login





