Swing JLabel wird in JPanel nicht sichtbar

  • Themenstarter Themenstarter Spellsleeper
  • Beginndatum Beginndatum
S

Spellsleeper

Gast
Hallo, ich habe vor als privates Projekt vor eine einfache Form von Pong zu entwickeln. Jetzt habe ich Probleme das ich ein JLabel das ich in JPanel stecke nicht angezeigt bekomme
Java:
package struc;

import java.awt.Color;
import java.awt.GridLayout;
import java.awt.Image;

import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;

public class Field extends JFrame {
	FieldSquare fieldSquare=new FieldSquare();
	public FieldSquare[][]fs=new FieldSquare[25][15];
	
	public Field() {
		super();
		Image icon=new ImageIcon("Picture/Pong(small).png").getImage();
		setIconImage(icon);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		try {
			UIManager
					.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");
		}

		catch (Exception ex) {
			ex.printStackTrace();
			System.err.println("Fehler beim setzen des Layouts");
		}
		setTitle("Der Versuch Pong zu verwirklichen");
		getContentPane().setLayout(new GridLayout(15,25));
		for(int r=0,c=0;r<15&&c<25;c++){
			fs[c][r]=new FieldSquare();
			
			getContentPane().add(fs[c][r]);
			fs[c][r].setBackground(Color.BLUE);
			if(c==24){
				r++;
				c=-1;
				
			}
		}
		this.setSize(25*30+10, 15*30+50);
		this.setResizable(false);
//Hier fängt der Problemcode an

		Ball ball =new Ball();
		ball.matrixPointTopical.setToStartPos();
		fs[ball.matrixPointTopical.getColumn()][ball.matrixPointTopical.getRow()].add(ball);
		
		System.out.println(fs[ball.matrixPointTopical.getColumn()][ball.matrixPointTopical.getRow()].isValid());
//Wie beschrieben wird der Ball(JLabel) nicht angezeigt
		
		setVisible(true);
		
	}
}

Hier noch die Ball-Klasse.....
Java:
package struc;

import javax.swing.ImageIcon;
import javax.swing.JLabel;

public class Ball extends JLabel{
	/**
	 * matrixPointPast		-	gibt letzte bekannte Position an
	 * matrixPointTopical	-	gibt aktuelle Position an
	 */
	
	public MatrixPoint matrixPointPast=new MatrixPoint();	
	public MatrixPoint matrixPointTopical=new MatrixPoint();
	
	public Ball(){
		super();
		setSize(30, 30);
		setIcon(new ImageIcon("Picture/Pong("));
		setVisible(true);
	}
	
	

}

....und die FieldSquare Klasse(JPanel)
Java:
package struc;

import java.awt.Color;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Insets;

import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.border.Border;
import javax.swing.border.LineBorder;

public class FieldSquare extends JPanel{
	public boolean unpenetrateable=false;
	private Border border=LineBorder.createGrayLineBorder();
	
	public FieldSquare() {
		super();
		
		setPreferredSize(new Dimension(30,30));
		setSize(30,30);
		setBorder(border);
		setVisible(true);
		
		
	}
}
Könnt ihr den Fehler finden der verhindert das der Ball(JLabel) angezeigt wird????:L
 
> setIcon(new ImageIcon("Picture/Pong("));
??

angesichts an anderer Stelle
> Image icon=new ImageIcon("Picture/Pong(small).png").getImage();

es überhaupt mit einem fragilen Bild zu versuchen ist schon unnötig Fehler-verschleiernd, freundlich ausgedrückt,
setze doch zunächst einen normalen Text "test", schaue ob das angezeigt wird
 
Ja das war mir nach dem Einstellen auch aufgefallen, deswegen habe ich das Thema ja auch so fix auf erlidigt gesetzt. Trotzdem danke das du dir den Quellcode noch reingezogen hast.🙂
 

Neue Themen


Zurück
Oben