# Problem mit Buttons beim Panel-Zeichnen



## ub007 (8. Jun 2010)

Hallo !

Ich habe ein kleines Problem beim Panel-Zeichnen in NetBeans 6.8. Ich habe es erst in ein Frame gemacht wie es auch hier im Forum beschrieben ist. Danach wollte ich es aber in einem Panel zeichnen lassen. 
Jetzt wollte ich das Layout des GUI machen und ich stellte nun folgendes fest. Ein Button wird angezeigt mit der entsprechenden Grafik. Ich musste aber in der Paintcomponent-Methode folgende zwei Befehle reinsetzen ( translate und setClip )damit das Panel in einer noch sichtbaren Größe angezeigt wird:

```
public class MyDraw extends JPanel
{
   public int              xmax=100,ymax=100;
   public Graphics         gI;

   public MyDraw()
   {
      gI = myImg.getGraphics();
   }

   @Override
   public void paintComponent(Graphics g1)
   {
        super.paintComponent(g1);

        g1.translate(-45,-7);
        g1.setClip(0, 0, xmax, ymax);

        Color C;
        ...
```

Um die Grafik zu initialisieren habe ich folgendes gemacht wie bei einem Frame auch:

```
private void initMyComponents()
   {
         grafik1 = MyPanel.getGraphics();
         MyPanel.setBorder(javax.swing.BorderFactory.createEtchedBorder());
         MyPanel.setLocation(100,50);
         MyPanel.setSize(MyDraw.xmax,MyDraw.ymax);
         MyPanel.add(MyDraw);
         mainPanel.add(MyPanel);
         MyPanel.setVisible( true );
   }
```
Ob die Initialisierung so korrekt ist bin ich mir nicht ganz sicher, denn jeder weitere Button oder sonstiges wird auf dem GUI nur quasi "minimiert" angezeigt siehe unter jButton *Zeichne*.
Warum alles andere minimiert wird, weis ich nicht, wer kann mir helfen ?

Gruß Uli


----------



## thE_29 (9. Jun 2010)

Was passiert den wenn du translate weglässt?
Weil das setzt ja deinen X/Y Punkt um..
Oder lass einfach mal das Panel weg und schau ob die Button dann passen..


----------



## burricall (9. Jun 2010)

Deine Beschreibung ist zwar ein wenig unklar aber aus Erfahrung weiss ich, dass man setSize() für Panels nicht benutzt. Probier mal das:

MyPanel.setMinimumSize(new Dimension(MyDraw.xmax,MyDraw.ymax));
MyPanel.setPreferredSize(new Dimension(MyDraw.xmax,MyDraw.ymax));

anstelle von:
MyPanel.setSize(MyDraw.xmax,MyDraw.ymax);

Und versuch mal andere grössere Werte anstelle von xmax und ymax bei den Dimensionen


----------



## ub007 (11. Jun 2010)

Hallo !

Erstmal danke an alle !
Das Problem lag ganz wo anders. Ich hab das ganze umkopiert in ein neues Verzeichnis und dabei kein clean-and build gemacht. Nach dem clean-and build waren alle Buttons so wie sie sein sollten. 
Trotzdem nochmals danke für Eure Hilfe !

Gruß Uli


----------



## burricall (11. Jun 2010)

Das kostet dich jetzt aber ein Bier an alle die dir geholfen haben Uli !


----------



## burricall (11. Jun 2010)

Ach und ein Danke solltest du uns noch schicken oder ? (den Button "Danke" drücken) :rtfm:


----------



## ub007 (11. Jun 2010)

Hi !

Jo, das stimmt. Ein Bier muss her. Wo ist eigentlich das Smiley mit dem Bier ? Ein Tankschön hab ich euch zweien ja schon gegeben, dann spendiere ich halt ne Zigarette :smoke:
Ich hoff das riecht man nicht im Forum.

Gruß Uli


----------

