Problem mit Buttons beim Panel-Zeichnen

ub007

Mitglied
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:
Java:
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:
Java:
   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
 

Anhänge

  • Zwei_Button.jpg
    Zwei_Button.jpg
    50,3 KB · Aufrufe: 34
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..
 
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
 
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
 
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
 

Neue Themen


Zurück
Oben