Announcement

Collapse
No announcement yet.

GridBagLayout

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • GridBagLayout

    hallo,

    ich möchte in einem Fenster( JFrame) ein Liste (mit Hilfe GridBagLayout) eingefügt. das funktioniert. Aber ich möchte die Listeninhalte ständig zur Laufziet aktualisieren.
    dafür habe ich folgende Methode geschriben:

    Code:
       public void updateReadyOpList(List msgList)
       { GridBagConstraints gbc;
    	 // List hinzufügen
    	 List list;
    	 if (msgList == null)
    	 {
    	    list = new List();
    	    list.add("no List Elements ..");
    	 }
    	 else
    	    list = msgList;
    
    	 gbc = makegbc(0, 0, 1, 3);
    	 gbc.weightx = 100;
    	 gbc.weighty = 100;
    	 gbc.fill = GridBagConstraints.VERTICAL;
    	 gbc.anchor = GridBagConstraints.NORTHWEST;
    	 gbl.setConstraints(list, gbc);
    	 add(list);
    	// setVisible(true);
       }
    wobei gbc ein globale Variable in der Klasse ist.

    ich habe es in einer Multithreading Umgebung angewendet. d.h. myJFrame ist auch eine Thread, damit ich die Listen aktualisieren testen kann.

    sowie jetzt ausssieht, es gibt Änderungen in der List bzw. Listeelemente. aber die ListeObjekt wird an dieselber Stelle mehrfach erzeugt und die aktualisierungen bleiben im Hintergrund.

    woran liegt es? was kann ich dafür tun? wie kann ich die alte Listenobjekt löschen und das Neue aktualisieren?

    Gruss

    Burkut
    Zuletzt editiert von burkut; 18.01.2010, 13:17.

  • #2
    Du bist sicher, dass du mit Swing arbeitest?

    List -> Interface -> http://java.sun.com/j2se/1.4.2/docs/...util/List.html

    JList -> Anzeigeelement aus Swing -> http://java.sun.com/docs/books/tutor...ents/list.html

    List -> SWT Eclipse Widget -> http://help.eclipse.org/galileo/inde...gets/List.html

    Letzteres ist eclipsespezifisch und hat nichts mit Swing zu tun. Das mischen (JFrame/Gridbaglayout und List) von SWT und Swing wäre zu vermeiden
    Zuletzt editiert von Christian Marquardt; 18.01.2010, 13:48.
    Christian

    Comment


    • #3
      danke Christian. ich habe mein Problem mit JTextArea gelöst.

      aber ich habe noch weitere Probleme mit GridbagLayout(siehe Anhang):
      1. ich habe die JLabels ins JFrame wie folgt ausgegeben:
      Code:
      private void executionResoursLabels()
      {
      	 // GridBagConstraints gbc;
      	 // Master
      
      	 for (int i = 0; i < 5; i++)
      	 {
      	    // Label
      	    gbc = makegbc(2 + i, 1, 1, 1); // Spalte 1 ist für die Operationen
      	    gbc.fill = GridBagConstraints.HORIZONTAL;
      	    JLabel label;
      	    if (i == 0)
      	    {
      		  
      		  label = new JLabel("myTest");
      
      	    }
      	    else
      		 
      		  label = new JLabel("Test" + (i - 1));
      	    label.setBackground(getBackground().blue);
      	    gbl.setConstraints(label, gbc);
      	   gbc.anchor = GridBagConstraints.WEST;
      
      	    add(label);
      	 }
      
      	 // setVisible(true);
         }
      aber der Ankerung am Rechts von Text Area funktioniert nicht. wenn Fenster vergrössere, sie gehen alle zusammen nach Links. nicht gleich verteilt.

      2. Problem: das Default Fenster Grösse könnte nicht ändern, in dem ich SetSize(breite, höhe ); nutze. worum?

      3. Problem: Ich möchte in dem Bild notizierten Bereich etwas zeichnen? wie soll ich vorgehen? siehe Anhang

      PS: Das JFrame wurde durch Gridbaglayout geteilt.


      Gruss

      Burkut
      Attached Files

      Comment

      Working...
      X