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
Hier noch die Ball-Klasse.....
....und die FieldSquare Klasse(JPanel)
Könnt ihr den Fehler finden der verhindert das der Ball(JLabel) angezeigt wird????:L
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);
}
}