getCheckedElements() cast? nicht wieder gewinnen

jonlee

Grünschnabel
Hallo meine Herrern,

ich bin Neu hier.

Ich baue eine CheckboxTableViewer(table), der aus einem XML Datei Information auslesen. Ich moechte eine Delete Funktion mit den gecheckten Item weiter bauen.

Durch
Code:
Object[] checkedItem = viewer.getCheckedElements();
bekomme ich eine Object Array. Der Methode viewer.remove(checkedItem); hat bei mir funktioniert. Nun ich will weiter mein XML Datei editieren. Aber ich weiss nicht wie ich mein Element durch Object Array wieder habe, damit ich in dem XML DOM durchsuchen und den entsprechenden Node ausloeschen kann.

Dies:
Code:
System.out.println(checkedItem[0]);
ergibt Z.B: [Ljava.lang.String;@1dd7bc5

Eine Cast to String fuehrt zu einer Fehler Meldung:
Code:
System.out.println((String)checkedItem[0]);
Code:
[Ljava.lang.String; cannot be cast to java.lang.String
at wme_rap.View$1.widgetSelected(View.java:230)

Bitte helfen Sie mir
Sorry for my bad German.
 
Zuletzt bearbeitet:
Hallo,
sind deine Items ChecBoxen? (JCheckBox)?
Dann einfach
JCheckBox cb = (JCheckBox)checkedItem[0];
String s = cb.getText();

Oder was für Objekte benutzt du?
mfg,
orbit
 
Danke sehr fuer deine Hilfe Orbit, =)

Ich baue auf dem RAP. RAP ist eine Sub Klasse von RCP. Aber mit Web Anwendung orientiert, der auch mit JFace benutzt. Der RAP ist auch mit TableViewer und so lala.

Mit diesem folgenden Methode, sind meine Table Item automatisch in meinem CheckboxTableViewer angezeigt.
(Ich lese nur mein XML Dom und bilde fuer jede Table-Zeile eine String Array.
Danach fuege ich den String Array in einem ArrayList buffer ein.
Danach Object[] result = buffer.toArray() um eine Object Array "result" zu CheckboxTableViewer rurueckzugeben)

Code:
public Object[] getElements(Object inputElement) {
..
     List buffer = new ArrayList();
     for( int i = 0; i < countComputers; i++ ) {
          String[] row = new String[COLUMNS];
          thisComputerNodes = allComputers.item(i).getChildNodes();
					  
          // Bezeichnung, IP Adr, Inventar 
          row [0] = thisComputerNodes.item(1).getTextContent();
          row [1] = thisComputerNodes.item(3).getTextContent();
          row [2] = thisComputerNodes.item(5).getTextContent();
          buffer.add(row);	
     }
					} 
     Object[] result = new Object[buffer.size()];
     buffer.toArray(result);
     return result; 
}

Hier ist in createPartControl:
Code:
Table table = new Table(parent, SWT.CHECK);
viewer = new CheckboxTableViewer(table);
 
Zuletzt bearbeitet:
Hmm also du gibst ihm String[] und nicht String!
Also versuch es mal hiermit:
Code:
System.out.println((String[])checkedItem[0]);
Wobei ich keinen plan hab ob das laufen kann, kenne mich mit der Klasse CheckboxTableViewer nicht aus...
Grüße,
Orbit
 
juhuuu! ist aber einfacher als ich gedact habe. Du hast mein Leben gerettet Orbit =)
Ich muss meine Arbeit bis Montag abgeben. hehehehe

Danke dies Forum.
 
Zurück