G
Gast
Gast
Hallo Experten,
ich bin neu, was den Bereich Swing und Grafik generell angeht. Deswegen befürchte ich auch, dass ich bei meinem momentanen Problem etwas grundlegendes falsch mache. Ich finde aber um's verrecken alleine nicht raus was.
Ich versuche derzeit in einem JFrame mit GridLayout von 10mal10 Felder insgesamt 100 kleine JPanels darzustellen, in denen ich etwas zeichnen möchte.
Das Problem ist jetzt, dass ich genau ein FieldPanel oben links im JFrame angezeigt bekomme. Der Rest ist nur zu sehen, wenn ich das Window resize. Was stimmt in meinem Ablauf nicht?
MapPanel war ursprünglich ein JPanel, das in einem JFrame dargestellt werden soll, aber ich habe erstmal eine Stufe rausgenommen. (hat aber nix genutzt )
Gruß
Torsten
ich bin neu, was den Bereich Swing und Grafik generell angeht. Deswegen befürchte ich auch, dass ich bei meinem momentanen Problem etwas grundlegendes falsch mache. Ich finde aber um's verrecken alleine nicht raus was.
Ich versuche derzeit in einem JFrame mit GridLayout von 10mal10 Felder insgesamt 100 kleine JPanels darzustellen, in denen ich etwas zeichnen möchte.
Das Problem ist jetzt, dass ich genau ein FieldPanel oben links im JFrame angezeigt bekomme. Der Rest ist nur zu sehen, wenn ich das Window resize. Was stimmt in meinem Ablauf nicht?
Code:
public class MapPanel extends JFrame {
static final long serialVersionUID = 123456476596534500l;
private FieldPanel[][] map;
public MapPanel(){
super();
map = new FieldPanel[10][10];
this.setSize(500, 500);
this.setLayout(new GridLayout(10,10));
for (int i=0;i<10;i++){
for (int j=0;j<10;j++){
map[i][j]=new FieldPanel();
this.add(map[i][j]);
}
}
}
}
Code:
public class FieldPanel extends JPanel {
static final long serialVersionUID = 1234564645645700l;
private Ellipse2D.Double circle =
new Ellipse2D.Double(0, 0, 60, 30);
private Rectangle2D.Double square =
new Rectangle2D.Double(0, 0, 60, 30);
public FieldPanel(){
this.setPreferredSize(new Dimension(60,30));
}
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2d = (Graphics2D)g;
g2d.draw(circle);
g2d.draw(square);
this.setBounds(0,0,60,30);
this.setBackground(Color.blue);
}
}
MapPanel war ursprünglich ein JPanel, das in einem JFrame dargestellt werden soll, aber ich habe erstmal eine Stufe rausgenommen. (hat aber nix genutzt )
Code:
public static JFrame openInJFrame(JFrame frame,
int width,
int height,
String title,
Color bgColor) {
frame.setBackground(bgColor);
frame.setSize(width, height);
frame.addWindowListener(new ExitListener());
frame.setResizable(true);
//frame.pack();
frame.setVisible(true);
return(frame);
}
Gruß
Torsten