Probleme beim erstmaligen Anzeigen eines JInternalFrame

honey1980

Grünschnabel
Hallo,

ich nutze ein JInternalFrame um Daten für gewisse Objekte anzuzeigen, die wiederum durch JLabels auf einem JPanel visualisiert werden. Beim Anklicken eines JLabels soll das JInternalFrame angezeigt werden, beim anklicken des nächsten JLabels soll es dann an der neuen Stelle mit neuem Text angezeigt werden (das läuft über setVisible(false), setText(....), setLocation(x,y), setVisible(true) )

mein Problem ist jetzt, das das an sich reibungslos funktioniert, nur beim erstmaligen Anzeigen des JInternalFrame passiert etwas merkwürdiges: das JInternalFrame ist nicht groß genug, um den gesamten Text anzuzeigen, es versteckt einfach einen Teil. Beim klicken auf ein anderes JLabel wird alles dann richtig dargestellt und klickt man dann wieder auf das zuerst geklickte JLabel wird auch der vollständige Text angezeigt.

ich habe keine Ahnung, woran das liegen könnte, denn sowohl beim erstmaligen als auch bei allen weiteren Aufrufen geschieht das durch die gleiche Funktion (displayPanel)

weiß jemand Rat?

hier ein Teil des Codes:

Code:
public class InfoPanel extends JInternalFrame implements MouseListener, MouseMotionListener
{
   JTextArea title;

   public InfoPanel(JComponent jc)
   {
      super();
      jc.add(this);
      title = createJTextArea();
      Container p = this.getContentPane();
      p.setLayout(new BoxLayout(p, BoxLayout.PAGE_AXIS));
      p.add(title);
      this.pack();
      this.setVisible(false);
   }

   public void displayPanel(String t,int x, int y)
   {
      if(this.isVisible())
         this.setVisible(false);
      title.setText(t);
      this.pack();
      this.setLocation(p.x,p.y);
      this.setVisible(true);
   }

   public void mousePressed(MouseEvent e)
   { 
      //icon was clicked
      this.setVisible(false);
   }
}

die klasse ist noch etwas größer, ich hab es mal vereinfacht aufgeschrieben. es wird immer nur displayPanel von anderen Objekten aufgerufen
 
Zurück