Hallo Gemeinde,
vielleicht weiß jemand Rat:
Ich versuche, in ein mit JFrame angelegtes Fenster Objekte anzeigen zu lassen, die in folgender Routine angelegt werden (verkürzte Darstellung):
in main() werden die über "new Page ()" angelegten Objekte in ein Fenster geaddet:
das Array pages ist dabei ein Array von Instanzen des Typs Page (siehe oben).
Jetzt meine Fragen:
1. Wenn ich keinen LayoutManager setze, dann kann ich die Koordinaten des Rechtecks ändern wie ich will, ich er setzt es immer links oben in das Fenster. Merkwürdigerweise landet ein zweites Rechteck mit denselben Koordinaten (zum Beispiel 100,100) tatsächlich dort. Aber jedes weitere wird nicht gezeigt. Was mache ich falsch?
2. Setze ich den FlowLayout-manager, dann ist jedes meiner Rechtecke nur ungefähr 10 x 10 Pixel groß, egal wie groß ich das Rechteck zeichne, angezeigt werden jedoch alle (immerhin). Was mache ich falsch?
3. Setze ich den Grid-Manager, wird alles korrekt angezeigt, doch den kann ich leider nicht brauchen ...
Oder anders gefragt: Wenn ich in ein Fenster Objekte zeichnen will, die der Anwender später verschieben können soll, welche Methode ist die Richtig?
Wer weiß Rat?
Lieben Gruß
iFlash
vielleicht weiß jemand Rat:
Ich versuche, in ein mit JFrame angelegtes Fenster Objekte anzeigen zu lassen, die in folgender Routine angelegt werden (verkürzte Darstellung):
Code:
public class Page extends JPanel {
@Override
protected void paintComponent ( Graphics g ){
super.paintComponent( g );
Graphics2D g2 = (Graphics2D) g;
g2.setColor ( Color.WHITE );
g2.fillRect ( posX, posY, 50,70 );
}
}
Code:
...
JFrame mainWindow = new JFrame ( );
mainWindow.setDefaultCloseOperation ( JFrame.EXIT_ON_CLOSE ); mainWindow.setSize( 300,300 );
mainWindow.add( pages[1] );
mainWindow.add( pages[2] );
...
mainWindow.add( pages[xyz] );
mainWindow.setVisible( true );
Jetzt meine Fragen:
1. Wenn ich keinen LayoutManager setze, dann kann ich die Koordinaten des Rechtecks ändern wie ich will, ich er setzt es immer links oben in das Fenster. Merkwürdigerweise landet ein zweites Rechteck mit denselben Koordinaten (zum Beispiel 100,100) tatsächlich dort. Aber jedes weitere wird nicht gezeigt. Was mache ich falsch?
2. Setze ich den FlowLayout-manager, dann ist jedes meiner Rechtecke nur ungefähr 10 x 10 Pixel groß, egal wie groß ich das Rechteck zeichne, angezeigt werden jedoch alle (immerhin). Was mache ich falsch?
3. Setze ich den Grid-Manager, wird alles korrekt angezeigt, doch den kann ich leider nicht brauchen ...
Oder anders gefragt: Wenn ich in ein Fenster Objekte zeichnen will, die der Anwender später verschieben können soll, welche Methode ist die Richtig?
Wer weiß Rat?
Lieben Gruß
iFlash