dommes89 Geschrieben 7. Februar 2009 Teilen Geschrieben 7. Februar 2009 Nabend, Und zwar habe ich folgendes Problem: Ich laden einen Text aus einer Datei in ein JTextPane.. Nun meine Frage: Wie kann ich denn beim Reinladen eine bestimmte Zeichenkette, z.B. ":-)", mit einem Icon ersetzen? Sodass dann anstatt :-) im Text das entsprechende Icon erscheint? Grüße dommes89 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Kaeyu Geschrieben 7. Februar 2009 Teilen Geschrieben 7. Februar 2009 Sowas in der Art? Inserting an Image into a JTextPane Component (Java Developers Almanac Example) Nach 0,13 Sekunden Google Suche. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
dommes89 Geschrieben 19. Februar 2009 Autor Teilen Geschrieben 19. Februar 2009 Danke... aber das ist nicht das was ich brauche.. "// Insert the image at the end of the text" klar damit kann ich ein icon in den text einfügen... das habe ich ja auch schon: textPanel.insertIcon(new ImageIcon("c:\\image.jpg")); aber ich will keines an das ende des textes einfügen, sondern an exakt der stelle an der eine bestimmte zeichenkette vorhanden ist, diese mit dem bild ersetzen.... hoffe es kann mir jemand weiter helfen... danke shconmal. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
dommes89 Geschrieben 24. Februar 2009 Autor Teilen Geschrieben 24. Februar 2009 (bearbeitet) Okay, habe das mit dem ersetzen usw. nun hinbekommen... habe jedoch nun ein anderes Problem... Also.. Ich habe ein JTextPane das einen Text aus einer Datei lädt und ausgibt, und dies jede Sekunde, sodass die Anzeige immer aktuell ist, auch wenn Änderungen an dem Text vorgenommen wurden. Während diesem Schritt ersetze ich nun des weiteren eine bestimmte Zeichenkette mit einem Icon. Nun folgendes Problem: Die Scrollbar springt immer nach dem aktualisieren wieder zu dem letzten ersetzten Icon. D.h.: wenn der Text nach dem Icon noch länger ist wie das TextPane, so sieht man einen bestimmten Teil des Textes nicht mehr... da der Scrollbalken beim Icon stehen bleibt. so sieht das ungefähr aus: messagesText.setText(""); messages = ""; try { BufferedReader text_in = new BufferedReader(new FileReader(chat_path)); String zeile = null; while ((zeile = text_in.readLine()) != null) { // messagesText.append(zeile+"\n"); messages = messages.concat(zeile+"\n"); } messagesText.setText(messages); while(messagesText.getText().indexOf(":-)")>0){ messagesText.select(messagesText.getText().indexOf(":-)"), messagesText.getText().indexOf(":-)")+3); messagesText.insertIcon(icon); } } catch (IOException ex) { ex.printStackTrace(); } Also meine Frage: wie bekomme ich es hin, dass die Scrollbar trotzdem immer ganz unten ist bzw. nicht beim letzten icon stehen bleibt? Habe es schon mit messagesPanel.getViewport().setViewPosition(new java.awt.Point(0, 100000000000)); am ende versucht, jedoch springt dann die scrollbar nur für den bruchteil einer sekunde nach ganz unten, danach wieder zum letzten icon. hoffe mir kann da jemand helfen. gruß Bearbeitet 24. Februar 2009 von dommes89 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
zui2000 Geschrieben 26. Februar 2009 Teilen Geschrieben 26. Februar 2009 Hi, leider weiß ich da jetzt auch nix, aber versuche mal nach jedem Laden des Textes ein revalidate() oder repaint() auf das messagePanel. Wenn der Scrollbalken dabei wieder nach oben geht, dann sollte es nur ein Problem der TextPane sein. Vielleicht musst du auch nur die Textpane validieren. Einen besseren Tip habe ich leider auch nicht. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
dommes89 Geschrieben 26. Februar 2009 Autor Teilen Geschrieben 26. Februar 2009 Hi, habe es nun mit messagesText.setCaretPosition(messagesText.getText().length()); hinbekommen =) Was jedoch nun noch Luxus wäre: Ich lade ja den Text aus einer Datei jede Sekunde neu in das TextPane, und stelle den Scrollbalken immer nach ganz unten... Bzw. er Springt sowieso immer wieder dann nach ganz unten... Was mich interessieren würde: Kann man es irgendwie machen, dass wenn ich den scrollbalken z.B. in die Mitte schiebe, dass dieser dann auch nach dem neu laden an dieser Text Position bleibt? So dass man sich den Text in Ruhe durchlesen kann, auch wenn ganz unten immer weiter Text angehängt wird? Und die ScrollBar nur dann immer ganz unten bleibt wenn man sie auch nach ganz unten getan hat? Gruß Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
zui2000 Geschrieben 26. Februar 2009 Teilen Geschrieben 26. Februar 2009 vor dem Aktualisierung der TextPane: this.foobar = messagesText.getCaretPosition() danach: messagesText.setCaretPosition(this.foobar) ? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.