Dynamisches hinzufügen von Panles

xX_QueAnw_Xx

Mitglied
Problem-kurzform:Über einen Slider sollen dynamisch Panels (mit Textfeld & Label) zu einem Anderen Panel hinzugefügt werden.


Ich habe ein JFrame zusammen geklickt mit JSilder. Bei veränderung deswertes wird die MEthode initElements() aufgerufen.

Java:
        private void initElements() {
        int i=jSlider1.getValue();        
        if(noe_old<i)
            for(noe_old=noe_old;noe_old<i;noe_old++){
                Elements.add(new Element(noe_old));
                System.out.println("Number of Elements:"+(noe_old+1));
            }
        else if(noe_old>i){
            for(noe_old=noe_old;noe_old>i;noe_old--){
                System.out.println("Number of Elements:"+(noe_old-1));
                Elements.remove(noe_old-1);
            }
        }
        Elements.validate();
    }
In dieser Methode wird eine Schleife aufgerufen die neue Objekte der Klasse Element erzeugt und zu einem JPanel(name:Elements) hinzufügt. Die Klasse Element erbt von JPanel und hat 2 Components (ein Textfield und ein label) Hier die Klasse Element:
Java:
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package sorter.GUI;

import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;

/**
 *
 * @author bjoern
 */
public class Element extends JPanel{
   JTextField jTextField1;
   JLabel jLabel3;
    public Element(int i){
        //super.addNotify();

        jTextField1 = new javax.swing.JTextField();
        jTextField1.setFont(new java.awt.Font("Tahoma", 1, 14));

        jLabel3 = new javax.swing.JLabel();
        jLabel3.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
        jLabel3.setText("Element "+i);

        this.add(jTextField1);
        this.add(jLabel3);
        this.setVisible(true);
    }



}

Funktioniert allerdings nicht. Ein Fehler spuckt der Compiler auch nicht wirklich. Vorschläge?
 
Zuletzt bearbeitet:
Hm, was ist Falsch an der Fehler beschreibung? Mehr Informationen kann ich nicht gut mit geben. Über einen Slider sollen dynamisch Panels (mit Textfeld & Label) zu einem Anderen Panel hinzugefügt werden.

Elements.validate(); habe ich eingefügt. Der Output des System.outs funktioniert übrigens auch beim Bewegen des Sliders:
Code:
 Number of Elements:1
Number of Elements:2
Number of Elements:3
Number of Elements:4
Number of Elements:3
Number of Elements:2
 
Zuletzt bearbeitet:
Ok falls es jemand interessiert: Der Fehler alg in der Klasse Elemetns:
Java:
public class Element extends JPanel{
   private JTextField jTextField1;
   private JLabel jLabel3;
    public Element(int i){
        //super.addNotify();

        jTextField1 = new javax.swing.JTextField(4);
        jTextField1.setFont(new java.awt.Font("Tahoma", 1, 14));
        jTextField1.setVisible(true);
        jTextField1.setSize(50, 50);


        jLabel3 = new javax.swing.JLabel();
        jLabel3.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
        jLabel3.setText("Element "+(i+1));
        jLabel3.setVisible(true);

        this.add(jTextField1);
        this.add(jLabel3);
        this.setSize(150, 50);
    }



}
 

Neue Themen


Zurück
Oben