mercredi 27 mai 2015

Eigene JComponent in GridLayout

Hallo alle zusammen,

ich habe das Problem, meine eigenen Komponenten im GridLayout anzuordnen. Sie werden immer untereinander und mit einem großen Abstand zueinander angeordnet. Ich möchte eine Art Grid erstellen, jedes einzelne soll dann später angeklickt werden. Habe die getPreferredSize Methode überschrieben, damit die Komponente die Größe dem Layoutmanager mitteilt. Aber es funktioniert nicht wie gewünscht. Hat einer vielleicht eine Idee. Vielen Dank im Voraus.

Java Code:

  1. public class Tile extends JComponent{
  2.  
  3. private Rectangle bounds;
  4. private int id;
  5.  
  6. public Tile(int id){
  7. bounds = new Rectangle(0,0,50,50);
  8. this.id = id;
  9. }
  10.  
  11. protected void paintComponent(Graphics g){
  12.  
  13. final Dimension DIM = getPreferredSize();
  14.  
  15. g.setColor(Color.black);
  16. g.drawRect(bounds.x, bounds.y, DIM.width, DIM.height);
  17. }
  18.  
  19. public Dimension getPreferredSize(){
  20. return new Dimension(bounds.width, bounds.height);
  21. }
  22.  
  23. public Dimension getMinimumSize(){
  24. return getPreferredSize();
  25. }
  26.  
  27.  
  28. }
  29.  
  30. }





Java Code:

  1. public class View extends JFrame {
  2.  
  3. public View(){
  4. super("Grid");
  5. setSize(500, 500);
  6. setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  7. setResizable(false);
  8. setLocationRelativeTo(null);
  9.  
  10. JPanel content = new JPanel(new GridLayout(2,2));
  11.  
  12.  
  13. for(int i=0; i<20; ++i){
  14. content.add(new Tile(i));
  15. }
  16.  
  17.  
  18.  
  19. add(content);
  20. setVisible(true);
  21. }


Eigene JComponent in GridLayout

0 commentaires:

Enregistrer un commentaire