Code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
import java.net.*;
import java.util.*;
import javax.swing.text.*;
/**
*
* Beschreibung.
*
* @version 1.0 vom 01.07.2004
* @author Bernd
*/
public class meinServer extends JFrame {
// Anfang Variablen
private JTextField jtfaus = new JTextField();
private JButton jbusenden = new JButton();
String chattext;
String newline = System.getProperty("line.separator");
//------------------------------------------------
JScrollPane scrollPane = new JScrollPane();
private JTextPane jtp1 = new JTextPane();
// Ende Variablen
public meinServer(final String title) {
// Frame-Initialisierung
super("UDP-Server"); // erzeugt den Fensternamen
addWindowListener(new WindowAdapter() {
public void windowClosing(final WindowEvent evt) { System.exit(0); } });
setBounds(30, 30, 700, 450);
Container cp = getContentPane();
cp.setLayout(null);
// Anfang Komponenten
jtfaus.setText("");
jtfaus.setBounds(10, 340, 500, 25);
getContentPane().add(jtfaus);
jbusenden.setText("senden");
jbusenden.setBounds(10, 370, 100, 25);
getContentPane().add(jbusenden);
jbusenden.addActionListener(new ActionListener() {
public void actionPerformed(final ActionEvent evt) {
jbusendenActionPerformed(evt); } });
jtp1.setBounds(10, 30, 500, 300);
jtp1.setEnabled(false);
jtp1.setContentType("TEXT/RTF");
jtp1.setText("Wilkommen im Chat" + newline);
getContentPane().add(jtp1);
scrollPane.setViewportView(jtp1);
scrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
scrollPane.setBounds(10, 30, 500, 300);
getContentPane().add(scrollPane, BorderLayout.WEST);
// Ende Komponenten
setVisible(true);
}
// Anfang Ereignisprozeduren
public void jbusendenActionPerformed(final ActionEvent evt) {
}
// Ende Ereignisprozeduren
public static void main(final String[] args){ // Einstieg ins Programm
new meinServer("meinServer");
try
{
DatagramSocket socket = new DatagramSocket( 4711 );
DatagramPacket packet;
while ( true )
{
// Auf Anfrage warten
packet = new DatagramPacket( new byte[1024], 1024 );
socket.receive( packet );
int len = packet.getLength();
byte data[] = packet.getData();
System.out.println (new String( data, 0, len ) );
JTextPane jtp1 = new JTextPane();
String eingang = (new String( data, 0, len ) );
jtp1.setText(eingang); // PROBLEM
}
}
catch ( Exception e )
{
System.out.println( e );
}
}
}
Ich steh mal wieder auf dem Schlauch, oben der abgebildete Server lauscht am Socket, und empfängt auch das Packet das ich ihm schicke.
Das kann man in der Eingabeaufforderung sehen: "System.out.println (new String( data, 0, len ) );"
aber er übergibt das nicht an das JTextPane "jtp1"???????????
Müsste er aber doch, oder braucht der einen Schupps wie "jtp1.repaint();" ??????