Hallo hallo,
ich weiss jetzt nicht genau was Du mit dem xml vorhast, aber ich vermute mal Du willst das Objekt irgendwie speichern oder verschicken...
Hallo Halli ;-)
es geht darum das der komplette inhalt der Tabelle abgespeichert wird da irgendwelche Änderungen vorgenommen wurde (neue Zeilen mit neuem Text z.B.). Dies muss in einer Datei abgespeichert werden. Das Dateiformat ist egal aber auch völlig unbekannt was ich da nehmen kann oder das geeignetste wäre. Wenn das Programm nun geschlossen wird soll per jbutton click der inhalt der tabelle wiederhergestellt werden genau so sprich deserialisiert würde man wahrscheinlich sagen.
...das kannst Du dann folgendemaßen machen... Du bastelst Dir ein Objekt, dass alle Werte einer Zeile annehmen kann, incl. Bild und so... Dieses Objekt muss Du dann als Serializable erweitern.
Einer Zeile ? Ich möchte aber alle Zeilen in einem Object speichern wie mache ich dann dass ? Vor allem wenn ich in einer bestimmten Zelle einer Tabelle einen bestimmten Textteil des JLabls mit html gefärbt habe (Zelle ist per Default ja ein JLabel...), wie serialisiere ich dann den Text mit der normalen und dem teils gefärbten Text ? o_0
z.B.:
Code:
public class Bla implements Serializable {
/**
*
*/
private static final long serialVersionUID = 6317301067089432891L;
private Werte werte = ....
public Bla() {
}
Wichtig ist, wenn Du das speichern oder irgenwo hinschicken willst, dass das Objekt eine serial Nummer hat, das brauchst Du später um das Objekt wieder zu Bla zu casten...
Du meinst das serialVersionUID ? yo das will eclipse immer haben ;-)
Speichern und laden geht dann ganz einfach, indem Du mit nem ObjectOutputStream das Objekt speicherst bzw. mit ObjectInputStream wieder lädtst...
darüber habe ich mich schon bissl eingelesen dass dürfte net das Problem sein, sondern, dass die Daten richtig serialisiert werden. Ok wie mich der liebe Gott mit Hirn ausgestattet hat habe ich kurz Excel von M$ geladen un in eine Zelle einen
rotenText und
blauenText geschrieben und das ganze nach .XML exportiert:
Code:
<?xml version="1.0"?>
<?mso-application progid="Excel.Sheet"?>
<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet"
xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:x="urn:schemas-microsoft-com:office:excel"
xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"
xmlns:html="http://www.w3.org/TR/REC-html40">
<DocumentProperties xmlns="urn:schemas-microsoft-com:office:office">
<Author>bn</Author>
<LastAuthor>bn</LastAuthor>
<Created>2007-09-21T10:32:54Z</Created>
<Company>bn</Company>
<Version>11.5606</Version>
</DocumentProperties>
<ExcelWorkbook xmlns="urn:schemas-microsoft-com:office:excel">
<WindowHeight>13170</WindowHeight>
<WindowWidth>15180</WindowWidth>
<WindowTopX>480</WindowTopX>
<WindowTopY>60</WindowTopY>
<ProtectStructure>False</ProtectStructure>
<ProtectWindows>False</ProtectWindows>
</ExcelWorkbook>
<Styles>
<Style ss:ID="Default" ss:Name="Normal">
<Alignment ss:Vertical="Bottom"/>
<Borders/>
<Font/>
<Interior/>
<NumberFormat/>
<Protection/>
</Style>
<Style ss:ID="s22">
<Font x:Family="Swiss" ss:Color="#0000FF"/>
</Style>
</Styles>
<Worksheet ss:Name="Tabelle1">
<Table ss:ExpandedColumnCount="3" ss:ExpandedRowCount="1" x:FullColumns="1"
x:FullRows="1" ss:DefaultColumnWidth="60">
<Column ss:AutoFitWidth="0" ss:Width="189.75"/>
<Column ss:AutoFitWidth="0" ss:Width="186"/>
<Column ss:AutoFitWidth="0" ss:Width="195.75"/>
<Row>
<Cell ss:StyleID="s22"><ss:Data ss:Type="String"
xmlns="http://www.w3.org/TR/REC-html40"><Font html:Color="#0000FF">blauerText</Font><Font
html:Color="#FF0000"> roterText</Font></ss:Data></Cell>
</Row>
</Table>
<WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel">
<PageSetup>
<Header x:Margin="0.4921259845"/>
<Footer x:Margin="0.4921259845"/>
<PageMargins x:Bottom="0.984251969" x:Left="0.78740157499999996"
x:Right="0.78740157499999996" x:Top="0.984251969"/>
</PageSetup>
<Selected/>
<ProtectObjects>False</ProtectObjects>
<ProtectScenarios>False</ProtectScenarios>
</WorksheetOptions>
</Worksheet>
<Worksheet ss:Name="Tabelle2">
<Table ss:ExpandedColumnCount="0" ss:ExpandedRowCount="0" x:FullColumns="1"
x:FullRows="1" ss:DefaultColumnWidth="60"/>
<WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel">
<PageSetup>
<Header x:Margin="0.4921259845"/>
<Footer x:Margin="0.4921259845"/>
<PageMargins x:Bottom="0.984251969" x:Left="0.78740157499999996"
x:Right="0.78740157499999996" x:Top="0.984251969"/>
</PageSetup>
<ProtectObjects>False</ProtectObjects>
<ProtectScenarios>False</ProtectScenarios>
</WorksheetOptions>
</Worksheet>
<Worksheet ss:Name="Tabelle3">
<Table ss:ExpandedColumnCount="0" ss:ExpandedRowCount="0" x:FullColumns="1"
x:FullRows="1" ss:DefaultColumnWidth="60"/>
<WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel">
<PageSetup>
<Header x:Margin="0.4921259845"/>
<Footer x:Margin="0.4921259845"/>
<PageMargins x:Bottom="0.984251969" x:Left="0.78740157499999996"
x:Right="0.78740157499999996" x:Top="0.984251969"/>
</PageSetup>
<ProtectObjects>False</ProtectObjects>
<ProtectScenarios>False</ProtectScenarios>
</WorksheetOptions>
</Worksheet>
</Workbook>
Also muss es in java ja auch irgendwie gehen... Wo lege ich denn fest bzw. wenn ich XML wähle als export/import format, dann sollte ich wahrscheinlich das wählen oder?
Code:
<Cell ss:StyleID="s21"><ss:Data ss:Type="String"
xmlns="http://www.w3.org/TR/REC-html40">
<Font html:Color="#0000FF">blauerText</Font>
<Font html:Color="#FF0000"> roterText</Font>
</ss:Data></Cell>
das wäre dann eine einzelne Zelle aus der .XML Datei sprich für jeden Text mit unterschiedlicher formatierung wird der html code dafür abgespeichert. Wie ist das denn nu mit dem XML format das ja ganz nett zu sein scheint, Diese Tags wie <Font> oder <Cell> sind die von MS Excel vorgegeben oder stellt die XML zur Verfügung ?
wäre das das Richtige für mich?:
http://simple.sourceforge.net/
Jetzt könntest Du alle Zeilen als einzelne Dateien speichern bzw. verschicken oder Du speicherst die Liste auch in einem Serializable Objekt und speicherst nur dieses.
einzelne Dateien OMG ;P also wenn dann speichere ich die tabelleliste in einem Object welches dann am Besten nach .xml geht... Sieht das dann praktisch so aus, dass ich Zeile für Zeile die TAbelle durchlaufe beim serialisieren und alle spalten mit den werten auslesen? z.B. so:
//false/true für checkbox zustand
private Boolean status = true; -> wobei der wert true mit sicherheit nicht reicht, denn es muss ja wieder beim laden eine jcheckbox erscheinen in der Zelle
//"Programm","Update","Entfernen"-Auswahl-Eintrag aus der JCombobox -> wobei der Eintrag hier auch net reicht, da ja auch eine JCombobox erscheinen muss in der Zelle mit dem Eintrag-wert.
private String Auswahl = Programm; oder Update je nach status der JCombobox
private String text = text_in_Zelle wobei ich ja unterschiedlich formatierten Text habe das könnte kniffelig werden...
meld mich bald wieder stay tuned und danke fürs helfen!