tinker
SQUEAK
|
Naja, in dem Fall ist der Aufbau ja sinnvoll. TabelleA fungiert quasi als 'Vater'. Wenn ein User hergeht und einen Datensatz in TabelleB anlegt, muss er zuerst einen 'Vaterdatensatz' aus TabelleA auswählen. Dann kann er hergehen und alle Werte vom Vater übernehmen, oder er ändert den einen oder anderen. Ansonsten is das mit der Normalform eh klar.
|
tinker
SQUEAK
|
Hab wieder mal ne kurze Frage: Wie kann ich auf den Pfad in dem ein jar-File ausgeführt wird zugreifen? Hab einen Ordner in dem das jar-File und ein xml-File liegen, jetzt muss ich aus dem jar heraus auf das xml-File zugreifen. Natürlich dynamisch. Aber wie? Hab bisher irgendwei nichts gefunden.
|
Lukas
Here to stay
|
ist das nicht die gleiche frage wie die erste? oder versteh ich da was falsch?
|
tinker
SQUEAK
|
Oha, stimmt. Aber da hat an COLOSSUS Vorschlag was nicht funktioniert. Ich werds ma nochmal anschaun. // Aha, passt eh. Hm... zeitweis bin ich etwas überfordert... never mind...
Bearbeitet von tinker am 19.12.2008, 12:19
|
tinker
SQUEAK
|
Muss in einem Programm einen kleinen rtf-Editor zur Verfügung stellen. Verwende dazu eine JTextPane. Für die Funktionalitäten die ich bisher hab, greif ich auf das StyledEditorKit zurück. Zb.: Action action = new StyledEditorKit.AlignmentAction("left", StyleConstants.ALIGN_LEFT);
btAlignLeft.setAction(action);
Derzeit fehlen mir noch Implementierungen für Aufzählungen und Nummerierungen. Aber anscheinend werden diese nicht vom StyledEditorKit zur Verfügung gestellt. Hat jemand irgendwelche Hinweise? Google spuckt nicht wirklich was aus, liegt vor allem daran, das ich nicht weiß wonach ich suchen soll. tia
|
prayerslayer
Oar. Mh.
|
hab jetzt nur ganz kurz gegoogelt und nicht wirklich nachgeschaut, aber warum keine JEditorPane? die unterstützt, was ich so gesehen hab, rtf per default. und dann hab ich noch ein RTFEditorKit gesehen... schaut brauchbar aus.
|
tinker
SQUEAK
|
JTextPane ist von JEditorPane abgeleitet. Unterstützt rtf auch per default. Und das RTFEditorKit is zum lesen und schreiben von RTF-Files, dafür benutze ich es auch. Bei den Action-Funktionen, um dies mir geht, verfügt es aber nicht um mehr als das StyledEditorKit das ich verwende, also bringt das auch nichts.
Aber danke. Sonst noch wer einen Hinweis?
|
prayerslayer
Oar. Mh.
|
JTextPane ist von JEditorPane abgeleitet. Unterstützt rtf auch per default. Und das RTFEditorKit is zum lesen und schreiben von RTF-Files, dafür benutze ich es auch. Bei den Action-Funktionen, um dies mir geht, verfügt es aber nicht um mehr als das StyledEditorKit das ich verwende, also bringt das auch nichts. ah, ok. danke. kommt davon, wenn man nicht genau schaut :/
|
tinker
SQUEAK
|
weiß keiner was?
|
tinker
SQUEAK
|
Das Problem besteht noch immer, also wenn wer was weiß, bitte, nur zu. Derweil hab ich aber auch ein anderes Problem. Wie gesagt hab ich im Programm einen kleinen rtf-Editor. Den formatierten Text speichere ich in die DB in ein CLOB-Feld. So, folgender Aufbau: ByteArrayOutputStream baos = new ByteArrayOutputStream();
try {
rtf.write(baos, tpEditor.getDocument(), 0, tpEditor.getDocument().getLength());
ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
BufferedReader in = new BufferedReader(new InputStreamReader(bais));
DataAccess.saveXXX(id, in, 0);
} catch (Exception ex) {
[...]
}
rtf ist vom Typ RTFEditorKit. Mit der Methode write wird einfach der Text, mitsamt formatierungen, aus der TextPane in den OutpuStream geschrieben. Den ließ ich dann mit einem BufferedReader aus und übergib den an die saveXXX Methode: @Override
public void saveXXX(int id, Reader in, int length) throws Exception {
Connection conn = dbpool.getConnection();
String sql = "<unwichtig>";
PreparedStatement stat = conn.prepareStatement(sql);
stat.setCharacterStream(1, in, length);
stat.setInt(2, id);
stat.executeUpdate();
dbpool.releaseConnection(conn);
}
So, und mein Problem ist jetzt, das die Methode setCharacterStream eine Längenangabe 'fordert'. 'Fordert' desshalb, weils die Methode auch ohne der Längenangabe gibt, ich dann aber immer eine Exception bekomme (irgendwas mit Zugriff auf Abstract-Methode oder so, ich kanns eh posten wenn gewollt) Tjo, und jetzt meine Frage: Wie komm ich beim BufferedReader zu einer Länge? tia, und falls was unklar sein sollte, bitte sagen
|
Nico
former person of interest
|
eventuell kannst die länge schon im try statement vor der "verarbeitung" auslesen und dann mitübergeben?
|
tinker
SQUEAK
|
Jop, hab ich mir auch schon gedacht: In ner Schleife und mit readLine() den BufferedReader durchgehen und die Chars zählen. Aber überzeugt bin ich von der Methode nicht :/
|
DirtyHarry
aka robobimbo
|
Blöde Frage, aber warum einen BufferedReader wenn Du eh aus dem Speicher ausliest?
BufferedReaders machen Sinn wenn Du von Disk oder aus dem Netz was liest, aber aus dem Speicher ist es imho nur unnötiger Overhead.
Am ByteArrayInputStream hast Du eine schöne Methode: bais.available() - da sollte eigentlich Deine gewünscht Grösse drinnenstehen.
|
tinker
SQUEAK
|
setCharacterStream braucht nen Reader. Aber bais.available() hört sich gut an, danke!
|
watchout
Legendundead
|
Derzeit fehlen mir noch Implementierungen für Aufzählungen und Nummerierungen. Aber anscheinend werden diese nicht vom StyledEditorKit zur Verfügung gestellt. Hat jemand irgendwelche Hinweise? Google spuckt nicht wirklich was aus, liegt vor allem daran, das ich nicht weiß wonach ich suchen soll.
tia afaik sind bullets/numbering nichts anderes als "symbol<indent>moretext", daher würde auch aus Sicht des Frameworks kein Sinn bestehen dafür extra Funktionen anzubieten (nachdem ja rich text nicht vom "user" geschrieben werden soll, ganz im Gegensatz zu zB. HTML) - auch weil die Sache etwas umständlich werden kann.
|