Display Refresh

  • Themenstarter Themenstarter SWT
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
S

SWT

Gast
Hallo für alle,

in meinem Programm, werden bestimmte labels und Felder agezeigt, abhängig von einer Selektion :ZB wenn ein "String" selektiert wird, sieht man bestimmte Felder in der betroffenen Gruppe (sagen wir mal Group A)
In diesen Felder wird ein Wert eingegeben und dann eigelesen und gespeichert (in einer xlm Datei)
Mein Problem besteht darin, wenn man die erste Selektion macht, werte eingibt läuft all das perfekt.Aber ab der zweiten Selektion bleiben die Labels von der ersten in der Gruppe A und dazu kommen die, von der zweiten überlappend.

Welche Methode dient dazu, den alten Display verschwendet und nur den neuen in der Gruppe zu visualisieren?

Vielen Dank in voraus!!
 
Das lässt sich so ohne Weiteres nicht eindeutig sagen. Es könnte genauso gut ein Designfehler sein und nicht ein falscher oder fehlender Methodenaufruf.

Eentweder gibts du deinen Labels die neuen Werte, anstatt neue anzufertigen und auf die Oberfläche zu kopieren. Oder, wenn sich das nicht vermeiden lässt, mir remove() die alten Componenten von der Oberfläche entfernen, danach die neuen drauf tun und mit validate() ein neuzeichnen der Oberfläche anfordern.
 
L-ectron-X hat gesagt.:
Das lässt sich so ohne Weiteres nicht eindeutig sagen. Es könnte genauso gut ein Designfehler sein und nicht ein falscher oder fehlender Methodenaufruf.

Eentweder gibts du deinen Labels die neuen Werte, anstatt neue anzufertigen und auf die Oberfläche zu kopieren. Oder, wenn sich das nicht vermeiden lässt, mir remove() die alten Componenten von der Oberfläche entfernen, danach die neuen drauf tun und mit validate() ein neuzeichnen der Oberfläche anfordern.

Danke für die Antwort..das Problem besteht immer noch bei mir. Ich hatte es falsch erklärt und zwar, die Widgets, die in der Gruppe befinden, änerdern sich abhängig von einer TreeSelektion. Dann sollte ein Text eingegeben werden. Der wird eingelesen mit getText.
Dafür habe ich ein Selectionlistener zum Tree addiert und abhängig von dem selektierten String im Tree, habe ich die entsprechende methode aufgerufen. Das sieht ungefähr so aus:

secondTree.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
TreeItem[] itm2 = secondTree.getSelection();
String selection = itm2[0].getText();
atrrType = selection.substring( selection.indexOf('#')+ 1,selection.length() );
if (atrrType.equals("string")){
createTextAttr();
}
else {
if (atrrType.equals("int")){
createItervallAttr();
}
}
});

Ein Beispiel von den angerufenen Methoden wäre:

public void createTextAttr() {

Label lValue = new Label(attrGroup, SWT.NONE);
tDetail = new Text(attrGroup, SWT.BORDER); // Für die Eingabe
Group scaleGroup = new Group(attrGroup, SWT.NONE);
textScale = new Scale(scaleGroup, SWT.HORIZONTAL);
Label lLow = new Label(scaleGroup, SWT.NONE);
Label lHigh = new Label(scaleGroup, SWT.NONE);


lValue.setText("Value: ");
lValue.setBounds(30, 63, 30, 20);
tDetail.setText("Karlsruhe");
tDetail.setBounds(80, 60, 100, 20);
scaleGroup.setText("Importance");
scaleGroup.setBounds(30, 123, 220, 100);
textScale.setBounds(10, 20, 200, 40);
textScale.setMaximum(5);
textScale.setMinimum(0);
textScale.setPageIncrement(1);
lLow.setText("low");
lLow.setBounds(15, 65, 20, 20);
lHigh.setText("high");
lHigh.setBounds(189, 65, 20, 20);

}

Deine Hilfe wäre mir sehr wertvoll!
Vielen Dank im vorraus.
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben