Label wird ungewollt mehrmals erstellt

Status
Nicht offen für weitere Antworten.

bristtote

Aktives Mitglied
Hallo liebe Leute,

folgendes Problem:

Ich habe ein Array von Choices. Diese werden unter bestimmten Bedingungen gelöscht und wieder erstellt. Hier der Code:



Code:
 if   (cerg[index]!=null) panel[index].remove(cerg[index]); 
     	if    (c1[index] !=null) panel[index].remove(c1[index]);
      	if    (c2[index] !=null) panel[index].remove(c2[index]);      	
        if (cerg[index] !=null) panel[index].remove(g_z);
        if (cerg[index] != null ) panel[index].remove(plus);

Das gleiche soll auch für die beiden Labels "g_z" und "plus" geschehen. Die Labels sieht Ihr oben ebefalls im Code. Bei den Choices läuft alles einwandfrei, denn sobald die Bedingung erfüllt ist, werden sie gelöscht und weiter unten dann wieder erstellt. Hier der Code:

Code:
    c1[index]  = new Choice();
       c2[index]  = new Choice();
       cerg[index]= new Choice();
       g_z        = new Label("=");
       plus       = new Label("+");
        
       c1[index].add("R 0");
       c1[index].add("R 1");
       c1[index].add("R 2");
       
       c2[index].add("R 0");
       c2[index].add("R 1");
       c2[index].add("R 2");
       
       cerg[index].add("R 1");
       cerg[index].add("R 2");       
       
       panel[index].add(cerg[index]);
       panel[index].add(g_z);	 
       panel[index].add(c1[index]);
       panel[index].add(plus);
       panel[index].add(c2[index]);

Das eigentliches Problem sind die Labels. Wähle ich einen Item eines Choices, wird auch der Label erstellt bzw. gelöscht(so soll es auch sein). Das gleiche gilt auch für alle anderen Choices. Habe ich aber schon einen Item des z.B. ersten Choices und des z.B. zweiten Choices gewählt und möchte nun einen anderen Item des 1. Choices wählen , so entstehen auf einmal neue Labels!!! Bei den Choices funktioniert, wie gesagt alles einwandfrei. Das Ganze ist etwas kompliziert und nicht leicht zu schildern, deshalb bitte ich Euch nicht gleich wegzugehen und mir zu schreiben, wenn Ihr es nicht ganz versteht. Denn ich komme echt nicht weiter.
Hier noch ein Paar Bilder:

So sollte das Applet aussehen:

ok.bmp



Aber, so sieht es aus:

nicht-ok.bmp


Ich würde Euch für jede Hilfe danken.
 

bristtote

Aktives Mitglied
Wollt Ihr mich verarschen oder so???!?!?!?!?!?!

Kann doch nicht sein, dass in diesem Forum keiner eine Antwort hat!!!!!!!
 

norman

Top Contributor
dein code ist imho ziemlich schwierig nachzuvollziehen. evtl hilft es schon, das ganze erstmal etwas besser zu strukturieren.
zB prüfst du im ersten codesample 3 (!) mal, ob cerg[index] != null ist. das kannst du locker zusammenfassen und das lesen&verstehen wird erleichtert..
 
B

bygones

Gast
satschli hat gesagt.:
Wollt Ihr mich verarschen oder so???!?!?!?!?!?!

Kann doch nicht sein, dass in diesem Forum keiner eine Antwort hat!!!!!!!
gehts noch ?

du erwartest hilfe und dann kommt ne Beleidigung...

na dann - Viel Spaß noch :)
 

bristtote

Aktives Mitglied
@Norman

Vielen Dank erst mal Norman.


@deathbyaclown

Wenn Du zu meinem Problem nichts sagen kannst, dann brauchst Du auch nicht hier rein zu schreiben.
 
B

bygones

Gast
satschli hat gesagt.:
@deathbyaclown
Wenn Du zu meinem Problem nichts sagen kannst, dann brauchst Du auch nicht hier rein zu schreiben.
ansichtssache - wenn man das Board angeht wehrt es sich ;-)

bygones

welchen LayoutManager verwendest du ?! starte den debugger und überprüfe wo wie welche methode aufgerufen wird die dir neue Labels hinzufügt bzw. wie verlaufen die Actions der choice ?!
 

thE_29

Top Contributor
Jo, ich hät den Thread schon geschlossen :bae:


Und was helfen uns deine if statements und dann die addings?

Wie steht das in was für einen Zusammenhang??

Könntest ja mal einen Codeauschnitt posten der zusammenhängend ist und/oder was du aufrufst, wenn dieser Fehler auftritt
 

bristtote

Aktives Mitglied
deathbyaclown hat gesagt.:
satschli hat gesagt.:
@deathbyaclown
Wenn Du zu meinem Problem nichts sagen kannst, dann brauchst Du auch nicht hier rein zu schreiben.
ansichtssache - wenn man das Board angeht wehrt es sich ;-)

bygones

welchen LayoutManager verwendest du ?! starte den debugger und überprüfe wo wie welche methode aufgerufen wird die dir neue Labels hinzufügt bzw. wie verlaufen die Actions der choice ?!

Tut mir sehr Leid wegen vorhin, danke dass Du mir trotzdem hilfst.

Und der Rest (thE_29, Jockel) kann echt seine Meinung für sich behalten, den Thread habe ich nicht geöffnet, damit Ihr entscheidet, ob es wieder geschlossen werden kann.


Also jetzt zu meinem Problem, hier der Code:

Code:
public class itemalsfunk extends Applet implements ActionListener {
	
	
	Panel Hauptpanel= new Panel();
	Color bg_co     = new Color(158,158,158);	
	Button b_b      = new Button("Los");
	Panel panel    [] = new Panel[12];
	String Items   [] = {"NOP", "ADD", "LOAD"};	
	Choice choices [] = new Choice [11];
	Choice c1      [] = new Choice [11];
	Choice c2      [] = new Choice [11];
	Choice cerg    [] = new Choice [11];
	Label labels   [] = new Label[11];
	Label g_z       = new Label("=");
	Label plus      = new Label("+");    
	
	
public void init () {
	Hauptpanel.setLayout(new GridLayout(0,1));
	
	setBackground(bg_co);
    add(Hauptpanel);




for (int i=0; i<panel.length; i++){
	panel[i]=new Panel();
	Hauptpanel.add(panel[i]);
 
	}

//panel[0].setBackground(Color.BLUE);
String s="0";
    
for (int i=0; i<labels.length; i++) {	
	labels[i] =new Label(s);
	int s1=Integer.parseInt(s);
	s1++;
	s=Integer.toString(s1);	
	panel[i].add(labels[i]);
	}
		
for ( int i = 0; i < choices.length; i++ ){
	choices[i] = new Choice();	
	panel[i].add(choices[i]);
	}



for (int i=0; i<choices.length; i++) {	
	choices[i].addItem(Items [0]);
	choices[i].addItem(Items [1]);	
	choices[i].addItem(Items [2]);
	}



panel[11].add(b_b);
b_b.addActionListener(this);  

for ( int i=0; i<choices.length; i++) {

  final int index = i;

  choices[i].addItemListener(new ItemListener(){
    public void itemStateChanged(ItemEvent e) {
      aendere( index, e.getItem() );
      
    }
  });
}
	} 			
		
public void aendere( int index, Object item ){
     
      if(item.equals("ADD")) {  	      
      
        if   (cerg[index]!=null) panel[index].remove(cerg[index]); 
     	if    (c1[index] !=null) panel[index].remove(c1[index]);
      	if    (c2[index] !=null) panel[index].remove(c2[index]);      	
        if (cerg[index] !=null) panel[index].remove(g_z);
        if (cerg[index] != null ) panel[index].remove(plus);        
        
       c1[index]  = new Choice();
       c2[index]  = new Choice();
       cerg[index]= new Choice();
       g_z        = new Label("=");
       plus       = new Label("+");
        
       c1[index].add("R 0");
       c1[index].add("R 1");
       c1[index].add("R 2");

       
       c2[index].add("R 0");
       c2[index].add("R 1");

       
       cerg[index].add("R 1");
       cerg[index].add("R 2");
.
      
       panel[index].add(cerg[index]);
       panel[index].add(g_z);	 
       panel[index].add(c1[index]);
       panel[index].add(plus);
       panel[index].add(c2[index]);
       
  
      }
      
    .............................
 

bristtote

Aktives Mitglied
deathbyaclown hat gesagt.:
satschli hat gesagt.:
@deathbyaclown
Wenn Du zu meinem Problem nichts sagen kannst, dann brauchst Du auch nicht hier rein zu schreiben.
ansichtssache - wenn man das Board angeht wehrt es sich ;-)

bygones

welchen LayoutManager verwendest du ?! starte den debugger und überprüfe wo wie welche methode aufgerufen wird die dir neue Labels hinzufügt bzw. wie verlaufen die Actions der choice ?!


Hallo nochmal,

ich wollte eben den Debugger starten und zwar benutze ich Jcreator. Aber irgendwie ist die Taste "Debugger" inaktiv. Ich weiss nicht woran es liegen kann.


danke nochmal
 

SebiB90

Top Contributor
satschli hat gesagt.:
deathbyaclown hat gesagt.:
satschli hat gesagt.:
@deathbyaclown
Wenn Du zu meinem Problem nichts sagen kannst, dann brauchst Du auch nicht hier rein zu schreiben.
ansichtssache - wenn man das Board angeht wehrt es sich ;-)

bygones

welchen LayoutManager verwendest du ?! starte den debugger und überprüfe wo wie welche methode aufgerufen wird die dir neue Labels hinzufügt bzw. wie verlaufen die Actions der choice ?!

Tut mir sehr Leid wegen vorhin, danke dass Du mir trotzdem hilfst.

Und der Rest (thE_29, Jockel) kann echt seine Meinung für sich behalten, den Thread habe ich nicht geöffnet, damit Ihr entscheidet, ob es wieder geschlossen werden kann.
und wir machen uns nicht die mühe dein thread durchzulesen um dann angemotzt zu werden, also wenne hilfe willst mach es das nächste mal bischen netter. ich hättte genauso gehandelt wie thE_29 gesagt hat, thread einfach schließen bei einer solchen unhöflichkeit.
 
B

bygones

Gast
ok genug darüber diskutiert -> back top topic. (ansonsten immer aufpassen, man weiß nie wer Mod ist und dann doch schließt ;) )

eine Vermutung: bei Itemlistener werden bei änderungen stets 2 Events gefeuert, einmal weil ein element selektiert wurde, einmal weil eins deselektiert wurde.... daran könnte es liegen, was anderes seh ich jetzt so nicht.

Du kannst über ItemEvent abfragen ob SELECTED wurde oder nicht, und nur dann würde ich änderungen machen... probiers aus.
 
B

bygones

Gast
wie gesagt - ich würde das lassen und zum Thema sonst schließen wir hier echt.

generell - du kannst nicht erwarten, dass hier sofort und überhaupt eine Antwort kommt. Wir hocken uns hier hin lesen die Threads durch und wenn uns was einfällt wird das auch geschrieben. Selbstverständlich ist es das Recht des Fragenden nachzuhacken, ob einer eine Lösung weiß, aber eine Reaktion ala
Wollt Ihr mich verarschen oder so???!?!?!?!?!?!
ist unpassend und aggressiv PUNKT, ich war auch kurz davor zu schließen...

ok - schluss damit, wenn weiter diskutiert wird schließ ich (wenn mir stevg nicht dann schon vorher mein Status genommen hat *g)

EDIT: hehe ich liebe dieses alle schreiben auf einmal :) wieder mal für schreib sperre wenn schon einer schreibt ^^
 

The_S

Top Contributor
Ich hab mir den Thread zwar nicht durchgelesen (da pfuschen einfach scho zuviele mit und er ist mir zu lang ;) ), aber davon

Hackl hat gesagt.:
setz einfach das layout auf null und damit hat sichs...

würde ich auf jedenfall abraten. Ein null-Layout kann unangenehme Überraschungen nach sich ziehen wenn es auf anderen Systemen eingesetzt wird, als auf dem, auf dem es erstellt wurde.
 

bristtote

Aktives Mitglied
deathbyaclown hat gesagt.:
ok genug darüber diskutiert -> back top topic. (ansonsten immer aufpassen, man weiß nie wer Mod ist und dann doch schließt ;) )

eine Vermutung: bei Itemlistener werden bei änderungen stets 2 Events gefeuert, einmal weil ein element selektiert wurde, einmal weil eins deselektiert wurde.... daran könnte es liegen, was anderes seh ich jetzt so nicht.

Du kannst über ItemEvent abfragen ob SELECTED wurde oder nicht, und nur dann würde ich änderungen machen... probiers aus.

Ich habe es mit Selected ausprobiert, die Items sind schon gewählt, also ist die Bedingung auch erfüllt. Denn mit den Choices selbst klappt es ja auch, es sind halt nur die Lables. Ich weiss echt nicht mehr, was ich ausprobieren soll!

Ich meine, wenn die folgende Bedingung erfüllt ist, dann muss es ja mit den Choices und den Labels klappen:

Code:
 if (cerg[index]!=null) {
        	 panel[index].remove(cerg[index]);
        	 panel[index].remove(g_z); 
        	 panel[index].remove(plus);        	
        	}

Es klappt halt aber nur für die Choices!!


Hackl hat gesagt.:
setz einfach das layout auf null und damit hat sichs...

Wie meintest Du es denn eigentlich mit Layout auf null setzen?
Ich habe es nicht ganz verstanden?


danke Euch allen
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
N Dynamisch erzeugtes Label wird nicht angezeigt, TextField schon Java Basics - Anfänger-Themen 1
V Die die aktuelle Größe zusätzlich in einem Label angezeigt wird Java Basics - Anfänger-Themen 11
L Label wird nicht richtig dargestellt Java Basics - Anfänger-Themen 2
rafi072001 Assoziation zwischen Musiker und Label Java Basics - Anfänger-Themen 1
J Hilfe beim Label animieren Java Basics - Anfänger-Themen 1
J Java FX - Label aktualisieren Java Basics - Anfänger-Themen 1
M Java GUI label ändert sich erst zum Schluss Java Basics - Anfänger-Themen 4
S Counter Label Button Java Basics - Anfänger-Themen 4
J JavaFX Label,Button zur Laufzeit Java Basics - Anfänger-Themen 30
M Mit KeyListener Farbe von Label ändern Java Basics - Anfänger-Themen 13
B Datenbank, aktuelle Ende als Zahl an Label übergeben Java Basics - Anfänger-Themen 7
J Einen Buttonklick in Label anzeigen Java Basics - Anfänger-Themen 6
J Erste Schritte Mit repaint() ist Label nicht sichtbar Java Basics - Anfänger-Themen 15
V Label-Problem Java Basics - Anfänger-Themen 4
H Stringanzeige in einem Label Java Basics - Anfänger-Themen 2
J JavaFX -> SocketIO -> Thread -> Update Label Java Basics - Anfänger-Themen 13
KeVoZ_ Label auf JFrame willkürlich Positionieren Java Basics - Anfänger-Themen 2
M Ausgabe eines Arrays auf Label (Javafx) Java Basics - Anfänger-Themen 4
T Erste Schritte 2 Codes zusammen fügen / Label in JFrame Java Basics - Anfänger-Themen 1
S Java Label hat komischen text Java Basics - Anfänger-Themen 4
S Label Wert zuweisen Java Basics - Anfänger-Themen 8
F Erste Schritte Label Text vor Methodenaufruf setzen Java Basics - Anfänger-Themen 17
W Klassen Fehler bei public void setLabelText(JLabel label, String text) Java Basics - Anfänger-Themen 11
W Erste Schritte Timer soll jede Sekunde Label aktualisieren Java Basics - Anfänger-Themen 5
S Label in Vordergrund Java Basics - Anfänger-Themen 4
G GUI Label Werte ersetzen Java Basics - Anfänger-Themen 25
D String aus txt in label für Tabelle einfügen Java Basics - Anfänger-Themen 8
W GUI Label, ComboBox Java Basics - Anfänger-Themen 4
M BufferedReader => TextField/Label Java Basics - Anfänger-Themen 8
M Ausgabe einer ArrayList auf einem Label Java Basics - Anfänger-Themen 4
W Java label nicht ansprechbar Java Basics - Anfänger-Themen 7
T Icon eines Label speichern Java Basics - Anfänger-Themen 9
J Uhr:Label aktuallisieren Java Basics - Anfänger-Themen 7
J Zeichen für Durchmesser Ø in Label darstellen Java Basics - Anfänger-Themen 15
J Panel + Label anzeigen - Ich kriege es nicht hin Java Basics - Anfänger-Themen 3
C Panel und Label überdecken sich Java Basics - Anfänger-Themen 2
L Label + MouseListener Java Basics - Anfänger-Themen 12
P Label Array in mouseEntered vergleichen Java Basics - Anfänger-Themen 4
J JPG in einem Label einfügen und anzeigen lassen Java Basics - Anfänger-Themen 2
C Aktueller Wert von einem JSlider auf ein Label Java Basics - Anfänger-Themen 2
J "label.setText" funktioniert nicht Java Basics - Anfänger-Themen 9
C JSlider und JRadioButton auf Label anzeigen? Java Basics - Anfänger-Themen 10
K Werte von 2 Klassen austauschen/ Bild im Label ändern Java Basics - Anfänger-Themen 12
R Text vom Label ändern Java Basics - Anfänger-Themen 14
D Vererbung ProcessBar mit einem Label Java Basics - Anfänger-Themen 4
W Anordnung von Label und Button Java Basics - Anfänger-Themen 2
S NullPointerException beim Checkbox-Label-Array mit nextLine() Java Basics - Anfänger-Themen 6
Z Label verschwindet in JScrollPane Java Basics - Anfänger-Themen 7
J Elegante Art mehrere Label mit einem icon zu setzen Java Basics - Anfänger-Themen 13
S Warum zeigt das Label nichts an??? Java Basics - Anfänger-Themen 9
N Text in Label ändern Java Basics - Anfänger-Themen 11
C Label ändert ändert sich nicht Java Basics - Anfänger-Themen 4
S In das Label eines anderen Threads schreiben Java Basics - Anfänger-Themen 2
M Label verschwindet? Java Basics - Anfänger-Themen 3
P Label erstellen und positionieren Java Basics - Anfänger-Themen 5
A TextField + Label = ? Java Basics - Anfänger-Themen 7
Stillmatic1985 Label in einem Frame zentrieren Java Basics - Anfänger-Themen 4
K Button Label lesen Java Basics - Anfänger-Themen 4
Z integer auf Label ausgeben Java Basics - Anfänger-Themen 12
C verschiedene Label auf Knopfdruck abrufen Java Basics - Anfänger-Themen 4
G Textfeld und Label in einem Tab? Anfänger braucht Hilfe Java Basics - Anfänger-Themen 3
G Hilfe: Label soll ganz nach oben! Java Basics - Anfänger-Themen 6
S Bild im Label ändern Java Basics - Anfänger-Themen 2
T Sonderzeichen in label Java Basics - Anfänger-Themen 4
S break Label als Spungmarken vorher definieren Java Basics - Anfänger-Themen 4
K Wieder Label anzeigen lassen ? Java Basics - Anfänger-Themen 3
K Ergebnisse auf einem Label anzeigen lassen ? Java Basics - Anfänger-Themen 20
P Label nicht bei Progressbar zu sehen Java Basics - Anfänger-Themen 8
K Schrift groesse in einem Label zeigen lassen ! Java Basics - Anfänger-Themen 2
D ImageIcon in Label Java Basics - Anfänger-Themen 7
A label update Java Basics - Anfänger-Themen 10
F Label Schriftfarbe Java Basics - Anfänger-Themen 4
H Text aus Textfeld per Actionlistener in Label ausgeben. Java Basics - Anfänger-Themen 6
M Label in die Mitte eines Swing Fensters Java Basics - Anfänger-Themen 2
N Überprüfen ob ein Label angeklickt wurde Java Basics - Anfänger-Themen 3
K Array im Label ausgeben ? Java Basics - Anfänger-Themen 10
T Label mehrzeilig? Java Basics - Anfänger-Themen 7
S Abfragen ob Label enabled ist . Java Basics - Anfänger-Themen 2
G Array Label Java Basics - Anfänger-Themen 6
S Von anderer Klasse auf Label zugreifen Java Basics - Anfänger-Themen 6
G Hintergrundbild mit Transparentem Label Java Basics - Anfänger-Themen 5
D "Ueber"-Klasse? / Label Array Probleme Java Basics - Anfänger-Themen 2
T per Button soll inhalt aus Tecxfield in Label übertragen wer Java Basics - Anfänger-Themen 5
H Drehen von Label Java Basics - Anfänger-Themen 2
D Automatische Label übertragung Java Basics - Anfänger-Themen 3
J label.getSize() gibt 0 ? Java Basics - Anfänger-Themen 2
M Berechnung in Label ausgeben? Java Basics - Anfänger-Themen 3
G Zusatzinfos in einem Label ablegen Java Basics - Anfänger-Themen 10
B In einem Label "Zeilenumbruch" Java Basics - Anfänger-Themen 4
G ein Label FETT ung GROSS ausgeben Java Basics - Anfänger-Themen 4
V Auf Label schreiben Java Basics - Anfänger-Themen 3
J Index für ein Label Java Basics - Anfänger-Themen 8
M Text in Label per Button Java Basics - Anfänger-Themen 4
K Warum wird mir auf der Konsole des Servers nicht "xxxx" angezeigt (Server/Client) Java Basics - Anfänger-Themen 4
K Warum wird hier nur etwas in eine txt Datei geschrieben und nicht in alle drei (InputStream/OutputStream/Reader/Writer) Java Basics - Anfänger-Themen 1
I Exception wird gefangen, aber trotzdem in Error Log? Java Basics - Anfänger-Themen 10
H JDK installieren jdk-21 wird nicht erkannt Java Basics - Anfänger-Themen 13
T if-else Bedingung wird ignoriert Java Basics - Anfänger-Themen 4
K Warum wird mir "Empfangen vom Client:" nicht sofort ausgegeben(Server/Client) Java Basics - Anfänger-Themen 3
P Webseite vom Smartmeter wird nur unleserlich angezeigt Java Basics - Anfänger-Themen 7

Ähnliche Java Themen

Neue Themen


Oben