createImage() liefert null zurück

Status
Nicht offen für weitere Antworten.

Zaron

Mitglied
Code:
import java.awt.*;
import javax.swing.*;

public class LEDDisplay extends JComponent {
	
	private Image zeroDigitImage;
	private Image oneDigitImage;
	private Image twoDigitImage;
	private Image threeDigitImage;
	private Image fourDigitImage;
	private Image fiveDigitImage;
	private Image sixDigitImage;
	private Image sevenDigitImage;
	private Image eightDigitImage;
	private Image nineDigitImage;
	private Image commaImage;
	private Image displayImage;
	private Image notActiveDigitImage;
	
	public LEDDisplay() {
		setComponentSettings();
		initializeComponents();
		build();
	}
	
	private void setComponentSettings() {
		setSize(2,2);
	}
	
	private void initializeComponents() {
		zeroDigitImage = new ImageIcon("images/digits/zero.gif").getImage();
		oneDigitImage = new ImageIcon("images/digits/one.gif").getImage();
		twoDigitImage = new ImageIcon("images/digits/two.gif").getImage();
		threeDigitImage = new ImageIcon("images/digits/thre.gif").getImage();
		fourDigitImage = new ImageIcon("images/digits/four.gif").getImage();
		fiveDigitImage = new ImageIcon("images/digits/five.gif").getImage();
		sixDigitImage = new ImageIcon("images/digits/six.gif").getImage();
		sevenDigitImage = new ImageIcon("images/digits/seven.gif").getImage();
		eightDigitImage = new ImageIcon("images/digits/eight.gif").getImage();
		nineDigitImage = new ImageIcon("images/digits/nine.gif").getImage();
		commaImage = new ImageIcon("images/digits/comma.gif").getImage();
		notActiveDigitImage = new ImageIcon("images/digits/not_active.gif").getImage();
	}

	private void checkOffscreenImage() {
		Dimension d = getSize();
		if(displayImage==null||displayImage.getWidth(null)!=d.width||displayImage.getHeight(null)!=d.height) {
			displayImage = createImage(d.width,d.height);			
		}
	}
	
	private void build() {
		checkOffscreenImage();
		Graphics g = displayImage.getGraphics(); // Hier kriegt ich einen NullPointer :(
		for(int x=0;x<12;x++) {
			g.drawImage(notActiveDigitImage,x*13,0,this);
		}
		g.drawImage(zeroDigitImage,169,0,this);
	}
	
	public void setDisplay(double value) {
		
	}
	
	
	
	public void paint(Graphics g) {
		Graphics2D g2 = (Graphics2D) g;
		g2.drawImage(displayImage,0,0,this);
	}
Ich verzweifel jetzt seit bald einer Stunde an dem Problem :(
Weiß jemand warum kein Image von createImage() erzeugt wird?
 
R

Roar

Gast
wahrscheinlich weil du nie in diese if schleife rein kommst:
Code:
 if(displayImage==null||displayImage.getWidth(null)!=d.width||displayImage.getHeight(null)!=d.height) {
         displayImage = createImage(d.width,d.height);         
      }
 

Zaron

Mitglied
1) Es gibt keine if-schleifen
2) Er geht in den if-block
3) Auch ohne if-block krieg ich einen null-pointer wenn ich die referenz von createImage() in displayImage speichere.


Das Problem liegt (grob gesagt) in den 3 Zeilen:

Code:
Dimension d = getSize();
displayImage = createImage(d.width,d.height);
Graphics g = displayImage.getGraphics();

Jedoch weiß ich nicht wo :(
 

Ebenius

Top Contributor
Lest doch mal API-Doku!

API (Component.createImage(int hat gesagt.:
Returns:
an off-screen drawable image, which can be used for double buffering. The return value may be null if the component is not displayable.[...]

API (Component.isDisplayable()) hat gesagt.:
Determines whether this component is displayable. A component is displayable when it is connected to a native screen resource.

Du baust das Image aus dem Konstruktor auf (<init> :arrow: build() :arrow: checkOffscreenImage()). Zu diesem Zeitpunkt ist die Komponente natürlich noch nicht darstellbar (An den native-peer angebunden), da sie ja noch erzeugt wird. Verschieb die Erstellung des Images auf den ersten Zeichenzyklus und es funktioniert.

Zugegeben: Dieser Peer-Kram ist nicht wirklich einfach :)

Es grüßt Ebenius
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
C Probleme mit createImage AWT, Swing, JavaFX & SWT 1
P Problem mit createImage AWT, Swing, JavaFX & SWT 5
0x7F800000 createImage() hat keinen bock irgendwas zu kreieren.[fertig] AWT, Swing, JavaFX & SWT 3
P createImage(int, int) klappt irgendwie nicht. AWT, Swing, JavaFX & SWT 11
M createImage in Window-Unterklasse AWT, Swing, JavaFX & SWT 4
F javaxt.io.Image getBufferedImage liefert null AWT, Swing, JavaFX & SWT 1
C JavaFX mit .setText() befülltes Textfield liefert anschließend mit .getText() den ursprünglichen Wert? AWT, Swing, JavaFX & SWT 1
T JavaFx Examples ändern liefert unerwartetes Ergebnis AWT, Swing, JavaFX & SWT 5
Arif Swing MouseMotionListener liefert falsche Werte ? AWT, Swing, JavaFX & SWT 7
R wann liefert getEditingRow was brauchbares ? AWT, Swing, JavaFX & SWT 2
R Swing JTextField getText() liefert leeren String AWT, Swing, JavaFX & SWT 6
O getValueAt liefert "", aber es wird was angezeigt AWT, Swing, JavaFX & SWT 12
J valueChanged()-Methode liefert unbrauchbare Daten AWT, Swing, JavaFX & SWT 4
S Swing Setzen von TableModel liefert NullPointer AWT, Swing, JavaFX & SWT 6
R MouseEvent.getX() liefert in Applet Screen-Koordinate AWT, Swing, JavaFX & SWT 2
T Swing Laden eines Icons auf JButton liefert NullPointerException AWT, Swing, JavaFX & SWT 8
M JTable, editCellAt liefert false AWT, Swing, JavaFX & SWT 4
A liefert isArray ein falsches Resultat? AWT, Swing, JavaFX & SWT 2
R Swing JDialog liefert immer false, 2 JListen verknüpfen AWT, Swing, JavaFX & SWT 3
B Swing JTable getSelectedRow() liefert immer -1 AWT, Swing, JavaFX & SWT 6
B JTable getselectedrow liefert -1 wenn Focus verloren AWT, Swing, JavaFX & SWT 4
C getGraphics() liefert nur null AWT, Swing, JavaFX & SWT 4
G JTable liefert falsche Row AWT, Swing, JavaFX & SWT 8
T jTable getSelectedRow liefert nix AWT, Swing, JavaFX & SWT 4
H getGraphics() eines JPanel liefert immer null zurück AWT, Swing, JavaFX & SWT 6
B getComponentAt() liefert immer das Panel AWT, Swing, JavaFX & SWT 2
P [JTable] Warum liefert TableModelEvent.getColumn immer -1 AWT, Swing, JavaFX & SWT 7
V Click auf JTable (Zeile) liefert den Eintrag? AWT, Swing, JavaFX & SWT 11
Z textField.getText = null AWT, Swing, JavaFX & SWT 15
Davee JavaFX ListView = null wenn ich sie in Laufzeit ändern will! AWT, Swing, JavaFX & SWT 16
AmsananKING Textfelder sind gleich null AWT, Swing, JavaFX & SWT 2
R Layout Manager null und Component wird nicht hinzugefügt AWT, Swing, JavaFX & SWT 3
J Injection - Aber Controller sind null AWT, Swing, JavaFX & SWT 3
J Controller ist null - Warum AWT, Swing, JavaFX & SWT 3
Z Swing Wert aus Textfeld auslesen -- null Fehler AWT, Swing, JavaFX & SWT 4
N SceneBuilder wie auf Attribute zugreifen? Diese sind immer null. AWT, Swing, JavaFX & SWT 6
A Swing Null Pointer Exception obwohl Objekt initialisiert AWT, Swing, JavaFX & SWT 21
D Zwischen Null-Layouts wechseln AWT, Swing, JavaFX & SWT 2
S Unverstandene Null.PointException AWT, Swing, JavaFX & SWT 4
D AWT Graphics2D getClip gibt null zurück AWT, Swing, JavaFX & SWT 3
H Swing jComboBox Ausgabe -1/null AWT, Swing, JavaFX & SWT 4
G Swing, JavaFx - Felder aus FXML sind null AWT, Swing, JavaFX & SWT 6
K Swing JSpinner mit NULL AWT, Swing, JavaFX & SWT 3
F JavaFX Properties und NULL Werte AWT, Swing, JavaFX & SWT 2
M JTextField gibt beim auslesen null aus AWT, Swing, JavaFX & SWT 9
F LayoutManager Null-Layout unter Linux im TreeCellEditor AWT, Swing, JavaFX & SWT 3
S String is null Fehler AWT, Swing, JavaFX & SWT 2
R Swing JLabel gibt stets 'null' aus AWT, Swing, JavaFX & SWT 3
E Null-Layout - Wie geht es ohne? AWT, Swing, JavaFX & SWT 19
P Swing JTable null values an das Ende verschieben AWT, Swing, JavaFX & SWT 2
S pack() bei null-Layout AWT, Swing, JavaFX & SWT 10
F Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: null AWT, Swing, JavaFX & SWT 5
C JTable sorter GregorianCalender null Exc AWT, Swing, JavaFX & SWT 4
N Swing JFrame==null und doch nicht null?! AWT, Swing, JavaFX & SWT 4
N JButton Border(null) AWT, Swing, JavaFX & SWT 3
E JPanel mit Null Layout entfernt Buttons AWT, Swing, JavaFX & SWT 11
K Swing regexFilter() null filtern AWT, Swing, JavaFX & SWT 3
R Swing JComboBox - Null-Feld AWT, Swing, JavaFX & SWT 7
M SWT DateTime per default null Wert ? AWT, Swing, JavaFX & SWT 3
D Bild zeichnen lassen aus array, null pointer Exception AWT, Swing, JavaFX & SWT 2
J JScrollPane & Null-Layout AWT, Swing, JavaFX & SWT 12
A JPanel mit Layout(null) in JPanel AWT, Swing, JavaFX & SWT 4
G Zentrieren mittels setLocationRelativeTo(null);? AWT, Swing, JavaFX & SWT 14
G Value vom TreeCellEditor ist immer null AWT, Swing, JavaFX & SWT 3
G JTree Problem: Null Child not allowed AWT, Swing, JavaFX & SWT 12
J JList CellRenderer Null-Layoutpanel AWT, Swing, JavaFX & SWT 4
H null Layout -> Label wird nicht angezeigt AWT, Swing, JavaFX & SWT 4
G Probleme mit Content bei Null-Layout verändern AWT, Swing, JavaFX & SWT 7
T Null Layout Problem. AWT, Swing, JavaFX & SWT 3
M JFormattedTextField und Null-Werte AWT, Swing, JavaFX & SWT 4
S Text im JLabel wird nicht als null anerkannt AWT, Swing, JavaFX & SWT 4
I Null-Layout-Problem AWT, Swing, JavaFX & SWT 2
M Problem mit NULL-Layout AWT, Swing, JavaFX & SWT 2
P paint null pointer exception AWT, Swing, JavaFX & SWT 3
G null pointer mit getText AWT, Swing, JavaFX & SWT 2
V CellEditor der nur Eingaben int 1-9 und "null" er AWT, Swing, JavaFX & SWT 11
F PanelBounds an TextPaneBounds anpassen LayoutManager: Null AWT, Swing, JavaFX & SWT 2
A Null pointer exception beim Neuzeichnen AWT, Swing, JavaFX & SWT 4
O JScrollPane beinhaltet JPanel mit null Layout kein Scrollen AWT, Swing, JavaFX & SWT 3
M bei filechooser.showSaveDialog(null); auf Datein. zugreifen AWT, Swing, JavaFX & SWT 2
B NULL Layout - TextFelder verschwinden AWT, Swing, JavaFX & SWT 8
F Scrollen bei JTextArea in einem Null-Layout? Unmöglich? AWT, Swing, JavaFX & SWT 4
V Null Pointer Exception bei JTextField setText AWT, Swing, JavaFX & SWT 25
R Komponenten frei per Drag&Drop in (z.B.) Null-Layout bew AWT, Swing, JavaFX & SWT 2
B [Swing] Null-Layout AWT, Swing, JavaFX & SWT 2
G Scrollpane in null-Layout einfügen AWT, Swing, JavaFX & SWT 5
G JList: Anzeige von null-Werten verhindern AWT, Swing, JavaFX & SWT 3
W Probleme mit Border- und null-Layout AWT, Swing, JavaFX & SWT 8
K JTextArea und setLayout(null) AWT, Swing, JavaFX & SWT 3

Ähnliche Java Themen

Neue Themen


Oben