Teilstring durch ein GIF ersetzen

Status
Nicht offen für weitere Antworten.

bernd

Bekanntes Mitglied
Hallo!
Angenommen ich habe einen String s = "Hallo zusammen *gif1* alles klar?"
Nun möchte ich das mein Programm ( was noch nicht existiert :) ) in diesem String
den Teil *gif1* erkennt, den Teil durch ein Icon z.B. Bild.gif ersetzt,
und den neuen String mit dem Bild.gif in einem JTextPane ausgibt.

Ist das überhaubt möglich, oder hab ich mir da was blödes in den Kopf gesetzt? :lol:
 

thE_29

Top Contributor
indexOf("*gif*")

oder lastIndexOf(*gif*);

oder schau dir einfach die string und stringbuffer klasen an
 

bernd

Bekanntes Mitglied
Code:
public class Datei2 {

  public static void main(final String[] args) {
         String str = "154879524587251*gif*     Doof";
         int index = str.indexOf( "*gif*" );
         System.out.println(index);


  }
}

So, das hab ich soweit begriffen.
Die Ausführung oben würde dann den int 15 zurückgeben,
aber wie bekomme ich genau an die Stelle das Bild rein?

Aber danke erst mal! :)
 

Heiko

Bekanntes Mitglied
Da müsstest du den Pfad zu der Bilddatei reinschreiben.

Ist nicht so einfach.

Das geht mit File (ist ne eigene Klasse, die sich mit Dateien beschäftigt.)
 

meez

Top Contributor
IndexOf brauchst du nicht....

So:

Code:
String s = ""Hallo zusammen *gif1* alles klar?" ;
String gif= "/tmp/gif.gif";
String neu = s.replaceAll("*gif1*, gif);
 

bernd

Bekanntes Mitglied
Soweit so gut!
Nun habe ich nur noch das Problem, daß der String durch "/tmp/gif.gif" ersetzt wird.
Ziel sollte es aber sein, ein Bild an der Stelle einzufügen!

???:L
 

Archy

Mitglied
Du kannst in einem String nur Zeichen ablegen, keine Bilder.
Wenn du so etwas wie hier im Forum haben möchtest, wo mitten im Text Smilies sind, dann würde ich mir mal
die HTML Fähigkeiten des JEditorPanes oder des JTextFields anschauen ;)

gruss,
archy
 

bernd

Bekanntes Mitglied
Ganz genau das will ich erreichen.
Ich versuchtee Smilies mittels UDP an einen anderen Rechner zu schicken, Text ist kein Problem,
aber bei einem Gif war das nicht möglich. ( hab ich auf jeden fall nicht hinbekommen).
Also hatte ich gedacht das ich dem Programm auf dem anderen Rechner einen String schicke,
den er dann erkennt und durch ein Gif ersetzt und es dann in einem JTextPane anzeigt!

Umständlich ich weis, aber was besseres ist mir vorerst nicht eingefallen. :)
 

thE_29

Top Contributor
es ist auch besser wenn du nur zeichen schickst, weil ich kaum glaube das ICQ oder sonstige IMs die Smileys schicken ;)
 

Heiko

Bekanntes Mitglied
bernd hat gesagt.:
Jetzt stellt sich nur noch die Frage wie man sowas hinbekommt! :)

Ich glaub ne Grafik als Zeichenketten zu schicken is nicht so einfach, diese Smileys kann man ja auflösen, aber bei Grafiken ... ???:L
 

bernd

Bekanntes Mitglied
Code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.net.*;
import java.util.*;
/**
  *
  * Beschreibung.
  *
  * @version 1.0 vom 19.08.2004
  * @author Bernd  */

public class UDP_S extends JFrame {
  // Anfang Variablen
  static final JTextPane jtp1 = new JTextPane();
  static final String newline = System.getProperty("line.separator");
  private JTextPane jtpeingabe = new JTextPane();
  private JButton jbusenden = new JButton();
  private JScrollPane jsp1 = new JScrollPane();
  private JButton jbuende = new JButton();
  private JScrollPane jsp2 = new JScrollPane();
  private JButton jbubeenden = new JButton();
  private JToolBar tb = new JToolBar();
  private JButton b1 = new JButton(new ImageIcon(UDP_S.class.getResource("bart.gif")));
  private JButton b2 = new JButton(new ImageIcon(UDP_S.class.getResource("barney.gif")));
  private JButton b3 = new JButton(new ImageIcon(UDP_S.class.getResource("mill.gif")));
  private JButton b4 = new JButton(new ImageIcon(UDP_S.class.getResource("smile1.gif")));
  private JPanel panel = new JPanel();
  private JComboBox jcbIP = new JComboBox();

  // Ende Variablen

  public UDP_S(final String title){

    // Frame-Initialisierung
    super("Bernd sein Intranet - Chat, Version 1.0");
    addWindowListener(new WindowAdapter() {
      public void windowClosing(final WindowEvent evt) { System.exit(0); } });
    setBounds(20, 20, 600, 525);
    Container cp = getContentPane();
    cp.setLayout(null);

    // Anfang Komponenten
     tb.add(b1);
     tb.add(b2);
     tb.add(b3);
     tb.add(b4);
     tb.setRollover(true);
     tb.setFloatable(false);
     //tb.setBounds(330, 50, 50, 50);
     panel.add(tb);
     panel.setBackground(Color.green);
     panel.setBounds(310, 40, 170, 265);
     getContentPane().add(panel);
     
     b1.addActionListener(new ActionListener() {
      public void actionPerformed(final ActionEvent evt) {
        b1ActionPerformed(evt); } });
        
     b2.addActionListener(new ActionListener() {
      public void actionPerformed(final ActionEvent evt) {
        b2ActionPerformed(evt); } });
        
        b3.addActionListener(new ActionListener() {
      public void actionPerformed(final ActionEvent evt) {
        b3ActionPerformed(evt); } });

     b4.addActionListener(new ActionListener() {
      public void actionPerformed(final ActionEvent evt) {
        b4ActionPerformed(evt); } });

     jtp1.setBounds(5, 5, 300, 370);
     jtp1.setEnabled(false);
     jtp1.setContentType("TEXT/RTF");
     jtp1.setText("Willkommen im Chat" + newline);
     jtpeingabe.setBounds(5, 370, 300, 80);
     getContentPane().add(jtp1);
    getContentPane().add(jtpeingabe);
    jbusenden.setText("senden");
    jbusenden.setBounds(5, 455, 80, 25);
    getContentPane().add(jbusenden);
    jbusenden.addActionListener(new ActionListener() {
      public void actionPerformed(final ActionEvent evt) {
        jbusendenActionPerformed(evt); } });

    jsp1.setViewportView(jtp1);
    jsp1.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
    jsp1.setBounds(5, 5, 300, 300);
    getContentPane().add(jsp1);
    jsp2.setBounds(5, 370, 300, 80);
    jsp2.setViewportView(jtpeingabe);
    getContentPane().add(jsp2);
    jbubeenden.setText("beenden");
    jbubeenden.setBounds(480, 455, 100, 25);
    getContentPane().add(jbubeenden);
    jbubeenden.addActionListener(new ActionListener() {
      public void actionPerformed(final ActionEvent evt) {
        jbubeendenActionPerformed(evt); } });
        
    jcbIP.addItem("");
    jcbIP.addItem("192.168.0.2");
    jcbIP.addItem("192.168.0.3");
    jcbIP.setEditable(true);
    jcbIP.setBounds(310, 5, 100, 25);
    jcbIP.setToolTipText("IP des Zielrechners eingeben!");
    getContentPane().add(jcbIP);

    // Ende Komponenten
           setVisible(true);
  }
  // Anfang Ereignisprozeduren
   public void b1ActionPerformed(final ActionEvent evt) {
        ImageIcon img1 = new ImageIcon(UDP_S.class.getResource("bart.gif"));
        jtpeingabe.insertIcon(img1);
        jtpeingabe.requestFocus();
   }
  
   public void b2ActionPerformed(final ActionEvent evt) {
        ImageIcon img2 = new ImageIcon(UDP_S.class.getResource("barney.gif"));
        jtpeingabe.insertIcon(img2);
        jtpeingabe.requestFocus();
   }
   
   public void b3ActionPerformed(final ActionEvent evt) {
        ImageIcon img3 = new ImageIcon(UDP_S.class.getResource("mill.gif"));
        jtpeingabe.insertIcon(img3);
        jtpeingabe.requestFocus();
   }
   
   public void b4ActionPerformed(final ActionEvent evt) {
        ImageIcon img4 = new ImageIcon(UDP_S.class.getResource("smile1.gif"));
        jtpeingabe.insertIcon(img4);
        jtpeingabe.requestFocus();
   }
   
  public void jbusendenActionPerformed(final ActionEvent evt) {
        try
    {
        DatagramPacket packet;
        String ipAdresse = (String) jcbIP.getSelectedItem();
        InetAddress ia = InetAddress.getByName( ipAdresse );
        String s = jtpeingabe.getText();
        packet = new DatagramPacket( s.getBytes(),s.length(),ia,4711 );
        DatagramSocket dSocket = new DatagramSocket();
        dSocket.send( packet );
        String textanzeige = jtp1.getText();
        jtp1.setText(textanzeige + "\n" + s);
        jtpeingabe.setText("");
        jtpeingabe.requestFocus();
        dSocket.close();
    }
    catch ( Exception e )
    {
      System.out.println( e );
    }
  }

  public void jbubeendenActionPerformed(final ActionEvent evt) {
      System.exit(0);
  }

  // Ende Ereignisprozeduren

  public static void main(final String[] args) {
    new UDP_S("UDP_S");
    try
    {
      DatagramSocket socket = new DatagramSocket(4711);
      DatagramPacket packet;
      while (true)
      {
        // auf Anfrage warten
        packet = new DatagramPacket(new byte[1024], 1024);
        socket.receive(packet);
        //Empfang auslesen
        int port = packet.getPort();
        int len = packet.getLength();
        byte data[] = packet.getData();
        String textanzeige = jtp1.getText();
        jtp1.setText(textanzeige + "\n" + new String(data, 0, len));

      }
    }
    catch (Exception e)
    {
      System.out.println(e);
    }

  }

}

Damit kann man Text versenden und empfangen, und das wars auch schon! :)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
W Teilstring durch Teilstring mittels StringBuilder ersetzen Java Basics - Anfänger-Themen 7
P Teilstring suchen Java Basics - Anfänger-Themen 3
MiMa Teilstring aus einem Text entnehmen Java Basics - Anfänger-Themen 7
V Teilstring extrahieren Java Basics - Anfänger-Themen 9
D gemeinsammen teilstring auslesen Java Basics - Anfänger-Themen 13
J Zeichen hinter Teilstring aus *txt lesen Java Basics - Anfänger-Themen 7
F class teilstring auslesen. Java Basics - Anfänger-Themen 3
B Suchen nach Teilstring, um Text danach ausgeben Java Basics - Anfänger-Themen 11
G java Texteditor . nur teilstring kursiv . aber wie? Java Basics - Anfänger-Themen 4
kulturfenster Teilstring erkennen Java Basics - Anfänger-Themen 5
T Teilstring aus einer Datei extrahieren und ausgeben Java Basics - Anfänger-Themen 5
G aufsteigenden Teilstring aus String filtern? Java Basics - Anfänger-Themen 2
G ListCellRenderer - TeilString farbig markieren Java Basics - Anfänger-Themen 3
G Teilstring auslesen Java Basics - Anfänger-Themen 6
A Teilstring aus ArrayList ? Java Basics - Anfänger-Themen 5
M Teilstring aus HTML-Tag Java Basics - Anfänger-Themen 3
L Innerhalb eines Strings nach einem Teilstring suchen Java Basics - Anfänger-Themen 2
M ein String - ein Teilstring von einem anderen String? Java Basics - Anfänger-Themen 3
T Ich brauche eine Schleife die eine beliebige Zahl so lange durch 10 teilt bis zur Null Java Basics - Anfänger-Themen 5
X wie bekomme ich durch Eingabeaufforderung definierte double in einen Befehl, welcher 3 erwartete double braucht? Java Basics - Anfänger-Themen 3
T float soll durch schleife die größte mögliche Zahl herausfinden, Ausgabe ist aber "Infinity" Java Basics - Anfänger-Themen 1
H Counter durch gepresste Taste nur auf 1 erhöhen und nicht durchzählen lassen Java Basics - Anfänger-Themen 7
T Eingabe durch eine Zahl dividieren nachgucken? Java Basics - Anfänger-Themen 4
G Programm läuft durch, ohne Eingabe aus dem Chat abzuwarten Java Basics - Anfänger-Themen 4
S IntelliJ geht alle Klassen durch Java Basics - Anfänger-Themen 9
A 1 Leerzeichen durch zwei Leerzeichen ersetzen Java Basics - Anfänger-Themen 4
E Durch Muster in Array iterieren Java Basics - Anfänger-Themen 3
Thomas06 Wie kann man mithilfe von boolean herausfinden ob eine zahl durch 5 und 7 teilbart ist ? Java Basics - Anfänger-Themen 7
A JTextArea entfernen und durch neuen Text ersetzen Java Basics - Anfänger-Themen 8
B Den Dateipfad einer Java Datei durch Code in Selbiger finden? Java Basics - Anfänger-Themen 10
T Variable durch Action Listener ändern Java Basics - Anfänger-Themen 2
B Attribute eines Objekts einer Klasse durch statische Methode einer 2. Klasse ändern? Java Basics - Anfänger-Themen 32
Agent4nobody Programmstart durch aufruf des interpreters funktioniert nicht Java Basics - Anfänger-Themen 14
obiwanke Ziffern durch ASCII Character ersetzen Java Basics - Anfänger-Themen 8
J Speichern von zwei Variablen durch Auslesen aus einem Numberfield Java Basics - Anfänger-Themen 2
sserio Java Fx, wie erstellt man einen EventHandler, der durch das Drücken eines Button Texte in eine Table view einfügt Java Basics - Anfänger-Themen 17
S Durch HashMap iterieren Java Basics - Anfänger-Themen 8
A Wenn eine Zahl durch 7 teilbar ist, soll statt der Zahl ein ‘*‘ angezeigt werden. java? Java Basics - Anfänger-Themen 47
K mit <<1 kann man mal 2 machen, mit >>2 geteilt durch zwei und was bewirkt <<<1 und >>>1? Java Basics - Anfänger-Themen 5
A Verarbeiten einer Excel Datei durch das java-Programm Java Basics - Anfänger-Themen 3
C In String, Buchstaben ersetzen durch andere Buchstaben Java Basics - Anfänger-Themen 26
F Initialisieren eines Web-Mp3 Players in Tabs durch "booleans" erst wenn Tab geöffnet wird ...? Java Basics - Anfänger-Themen 1
W Werte durch Konsole einlesen Java Basics - Anfänger-Themen 10
C if-Konstrukt durch switch-Konstrukt ersetzen Java Basics - Anfänger-Themen 14
OZAN86 For Schleife von 1-50 die Zahlen werden durch ein Komma getrennt Java Basics - Anfänger-Themen 10
Bademeister007 Operatoren Alle Zahlen einer ArrayList die durch 5 teilbar ist Java Basics - Anfänger-Themen 2
Y Wie kann ich Konsoleneingaben durch den Scanner mit JUnit 4 testen? Java Basics - Anfänger-Themen 1
yoskaem Text Color durch Klicken eines Buttons in anderer Activity ändern Java Basics - Anfänger-Themen 2
N for Schleife durch Rekursion ersetzen Java Basics - Anfänger-Themen 6
N Probleme beim printen von Arrays durch for Schleife Java Basics - Anfänger-Themen 3
L Iterieren durch eine ArrayList. Integer Array wird übergeben Java Basics - Anfänger-Themen 17
J Eine Position im String durch einen Integer - Wert teilen Java Basics - Anfänger-Themen 5
F Methoden Bitte Helft mir meinen Fehler zu finden. Möchte in diesem Bankenprogramm durch die Konsoleneingabe auswählen welches Konto reduziert und welches erhö Java Basics - Anfänger-Themen 17
E 2D Array - char durch die Matrix "wandern" lassen Java Basics - Anfänger-Themen 7
E Objekt durch Benutzer über Konsole erzeugen - Java Java Basics - Anfänger-Themen 3
F Methode für Teilbarkeit durch 5 tut was anderes.... Java Basics - Anfänger-Themen 3
H Aufruf von Methoden durch Methoden Java Basics - Anfänger-Themen 3
H Wie kann ich durch Methoden definiren? Java Basics - Anfänger-Themen 8
O Mehrfache Scanner-Eingabe durch Komma getrennt Java Basics - Anfänger-Themen 6
M String array durch Eingabe begrenzen Java Basics - Anfänger-Themen 7
J Dynamisches Array durch split()-Funktion? Java Basics - Anfänger-Themen 3
O Typparameter durch Wildcards verallgemeinern Java Basics - Anfänger-Themen 3
G Benutzereingaben durch Zeilenumbruch trennen und in Array individueller Größe speichern Java Basics - Anfänger-Themen 20
B Import Tabelle - Struktur durch User einstellbar Java Basics - Anfänger-Themen 4
K Durch eine Text eingabe etwas Ausführen Java Basics - Anfänger-Themen 5
T Konsolenscanner startet nicht durch Aufruf von Actionlistener Java Basics - Anfänger-Themen 4
A OOP Variable in anderer Klasse durch Methode aufrufen und einer anderen Variable gleichsetzen Java Basics - Anfänger-Themen 2
F Ein Datum (int) durch Methode als String formatieren Java Basics - Anfänger-Themen 2
B OOP While Schleife läuft Endlos durch externen aufruf Java Basics - Anfänger-Themen 2
D While Schleife bei Bedarf durch Eingabe stoppen Java Basics - Anfänger-Themen 15
CptK Interface Curser durch Bild ersetzen & MouseListner Java Basics - Anfänger-Themen 2
H OOP eine Zahl immer weiter durch 2 teilen Java Basics - Anfänger-Themen 15
I Null-Überprüfung durch Lambda-Expressions abkürzen Java Basics - Anfänger-Themen 8
N Denksportaufgabe durch Algorithmus lösen Java Basics - Anfänger-Themen 2
H Array mit Zahlen die durch 3 und 5 teilbar sind erstellen Java Basics - Anfänger-Themen 13
D Interface Frame doppelt durch Aufruf der GUI Klasse Java Basics - Anfänger-Themen 1
J Die Zahl herausfinden die durch 2 - 30 Teilbar ist... Java Basics - Anfänger-Themen 17
M For-Schleife durch zwei versch. Variablen begrenzen Java Basics - Anfänger-Themen 27
W JLabel, Farbe durch Listener ändern Java Basics - Anfänger-Themen 6
T Extrahiertes Objekt durch Getter bekommen Java Basics - Anfänger-Themen 2
R Eine Schleife durch eine Methode schließen? Java Basics - Anfänger-Themen 4
N Operatoren Suchen nach einer bestimmten Eingabe (durch Scanner) Java Basics - Anfänger-Themen 7
S For-Schleife durch "ESC" verlassen? Java Basics - Anfänger-Themen 2
C char in String suchen und durch anderen String ersetzen Java Basics - Anfänger-Themen 2
T static String Variable wird nur beim ersten aufruf durch eine Funktion geändert. Java Basics - Anfänger-Themen 16
V Durch 0 teilen Java Basics - Anfänger-Themen 2
V Durch Methode Objekt löschen Java Basics - Anfänger-Themen 2
D Klasse durch eine Schleife wiederholen Java Basics - Anfänger-Themen 1
J Wie lege ich eine durch Random ausgesuchte Zahl in ein Array? Java Basics - Anfänger-Themen 3
S button kommt durch bild Java Basics - Anfänger-Themen 13
M Ein Bild durch Objekterzeugung zeichnen Java Basics - Anfänger-Themen 5
W Objektname durch Tastaturbefehl eingeben Java Basics - Anfänger-Themen 7
K ArrayList durch ArrayList ersetzen Java Basics - Anfänger-Themen 5
G Objektübergabe durch Parameter Java Basics - Anfänger-Themen 3
P Erste Schritte durch MenuBar verschiedene Fenster öffnen Java Basics - Anfänger-Themen 2
T Jlabel durch Text in 2 anderen Jlabels sichtbar machen Java Basics - Anfänger-Themen 4
T Threads Durch threads gestartete Prozesse killen Java Basics - Anfänger-Themen 2
M ArrayList durch OutputStream in Datei Java Basics - Anfänger-Themen 9
K arraygröße durch variablen Konstruktor? Java Basics - Anfänger-Themen 7
F Erste Schritte Hausaufgaben-Prob. - Iterative Prog. Zahlen aufsummieren, wenn durch k>0 teilbar. Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben