Images einbinden klappt nicht.

renieh

Grünschnabel
Hallo Leute!

Ich versuche gerade verzweifelt ein Bild in meiner Application einzubinden. Es will und will nicht klappen!

Hier die komplette Klasse. Ich schätze mal ich habe etwas grundlegendes falsch.

Ich habe eine Klasse gebaut:

Code:
class ClageImage extends Component {
private Image image = Toolkit.getDefaultToolkit().getImage("C:/logo2.jpg");
public void paint( Graphics g ) {
	if ( image != null)
	 System.out.println("painting " + image + " ");
	 g.drawImage( image, 0, 0, this );
}
}

Diese verwende ich mit

Code:
ClageImage logo = new ClageImage();

und

Code:
panelNorth.add(logo);


Die System.out.println Meldung aus der Klasser erscheint auch. Das Bild aber nicht.

Gruß,
renieh

Code:
package clawemgmt;
import java.awt.*;
import clawemgmt.Segment7;
import com.borland.jbcl.layout.*;
import java.awt.event.*;
import java.awt.image.*;
import java.awt.Image;
import java.awt.Graphics;
import java.awt.Panel;
import java.awt.event.*;
import java.awt.event.WindowListener;
import java.io.*;
 
 
public class statusPanel extends Panel {
public boolean TsPlus = false;
public boolean TsMinus = false;
public boolean TsSetzen = false;
public boolean P1 = false;
public boolean P2 = false;
public boolean P3 = false;
public boolean P4 = false;
BorderLayout borderLayout1 = new BorderLayout();
Panel panelSouth = new Panel();
Panel panelCenter = new Panel();
Panel panelSegments = new Panel();
BorderLayout borderLayout3 = new BorderLayout();
FlowLayout flowLayout1 = new FlowLayout();
Segment7 Seg1 = new Segment7(0);
Segment7 Seg2 = new Segment7(0);
Panel panelPlusMinus = new Panel();
Button Plus = new Button();
Button Minus = new Button();
GridLayout gridLayout1 = new GridLayout();
Panel panelP = new Panel();
Button bP1 = new Button();
Button bP2 = new Button();
Button bP3 = new Button();
Button bP4 = new Button();
short plus = 0;
short minus = 0;
Panel panelNorth = new Panel();
ClageImage logo = new ClageImage();
 
public statusPanel() {
try {
jbInit();
}
catch(Exception ex) {
ex.printStackTrace();
}
}
 
void jbInit() throws Exception {
this.setLayout(borderLayout1);
panelSegments.setLayout(flowLayout1);
panelCenter.setLayout(borderLayout3);
Plus.setLabel("+");
Plus.addMouseListener(new statusPanel_Plus_mouseAdapter(this));
Minus.setBackground(Color.lightGray);
Minus.setLabel("- ");
Minus.addMouseListener(new statusPanel_Minus_mouseAdapter(this));
panelSouth.setLayout(gridLayout1);
gridLayout1.setRows(2);
bP1.setLabel("P1");
bP1.setLocale(java.util.Locale.getDefault());
bP1.setVisible(true);
bP1.addActionListener(new statusPanel_bP1_actionAdapter(this));
bP2.setVisible(true);
bP2.addActionListener(new statusPanel_bP2_actionAdapter(this));
bP2.setLabel("P2");
bP2.setLocale(java.util.Locale.getDefault());
bP3.setVisible(true);
bP3.addActionListener(new statusPanel_bP3_actionAdapter(this));
bP3.setLabel("P3");
bP3.setLocale(java.util.Locale.getDefault());
bP4.setVisible(true);
bP4.addActionListener(new statusPanel_bP4_actionAdapter(this));
bP4.setLabel("P4");
bP4.setLocale(java.util.Locale.getDefault());
panelP.add(bP1, null);
panelP.add(bP2, null);
panelP.add(bP3, null);
panelP.add(bP4, null);
this.add(panelSouth, BorderLayout.SOUTH);
panelSouth.add(panelPlusMinus, null);
panelPlusMinus.add(Minus, null);
panelPlusMinus.add(Plus, null);
panelSouth.add(panelP, null);
this.add(panelCenter, BorderLayout.CENTER);
panelCenter.add(panelSegments, BorderLayout.SOUTH);
panelSegments.add(Seg1);
panelSegments.add(Seg2);
this.add(panelNorth, BorderLayout.NORTH);
panelNorth.add(logo);
}
void bP1_actionPerformed(ActionEvent e) {
this.P1 = true;
}
void bP2_actionPerformed(ActionEvent e) {
this.P2 = true;
}
void bP3_actionPerformed(ActionEvent e) {
this.P3 = true;
}
void bP4_actionPerformed(ActionEvent e) {
this.P4 = true;
}
void Minus_mousePressed(MouseEvent e) {
TsMinus = true;
}
void Plus_mousePressed(MouseEvent e) {
TsPlus = true;
}
 
}
 
class statusPanel_bP1_actionAdapter implements java.awt.event.ActionListener {
statusPanel adaptee;
statusPanel_bP1_actionAdapter(statusPanel adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.bP1_actionPerformed(e);
}
}
class statusPanel_bP2_actionAdapter implements java.awt.event.ActionListener {
statusPanel adaptee;
statusPanel_bP2_actionAdapter(statusPanel adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.bP2_actionPerformed(e);
}
}
class statusPanel_bP3_actionAdapter implements java.awt.event.ActionListener {
statusPanel adaptee;
statusPanel_bP3_actionAdapter(statusPanel adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.bP3_actionPerformed(e);
}
}
class statusPanel_bP4_actionAdapter implements java.awt.event.ActionListener {
statusPanel adaptee;
statusPanel_bP4_actionAdapter(statusPanel adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.bP4_actionPerformed(e);
}
}
class statusPanel_Minus_mouseAdapter extends java.awt.event.MouseAdapter {
statusPanel adaptee;
statusPanel_Minus_mouseAdapter(statusPanel adaptee) {
this.adaptee = adaptee;
}
public void mousePressed(MouseEvent e) {
adaptee.Minus_mousePressed(e);
}
}
class statusPanel_Plus_mouseAdapter extends java.awt.event.MouseAdapter {
statusPanel adaptee;
statusPanel_Plus_mouseAdapter(statusPanel adaptee) {
this.adaptee = adaptee;
}
public void mousePressed(MouseEvent e) {
adaptee.Plus_mousePressed(e);
}
}
class ClageImage extends Component {
private Image image = Toolkit.getDefaultToolkit().getImage("C:/logo2.jpg");
public void paint( Graphics g ) {
	if ( image != null)
	 System.out.println("painting " + image + " ");
	 g.drawImage( image, 0, 0, this );
}
}
 
Hallo!

Wie wär's denn, wenn du zum laden deines Bildes ImageIO.read(...) bzw. die Klasse ImageIcon verwenden würdest. Ich glaube auf den ersten Blick, dass dein Bild wird nicht angezeigt wird, weil es noch nicht vollständig geladen wurde. Früher hat man um diesen Fehler zu vermeiden die Klasse MediaTracker verwendet um das Laden der Resourcen zu überwachen...

Gruß Tom
 
Zurück