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 chat1 extends JFrame {
// Anfang Variablen
private JTextField jtfaus = new JTextField();
private JButton jbusenden = new JButton();
String chattext;
String newline = "\n";
//------------------------------------------------
JScrollPane scrollPane = new JScrollPane();
private JTextPane jtp1 = new JTextPane();
// Ende Variablen
public chat1(final String title) {
// Frame-Initialisierung
super("UDP-Client"); // 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");
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) {
chattext = jtfaus.getText();
jtp1.setText(chattext + newline); // Hier ist dasProblem
jtp1.setCaretPosition(jtp1.getText().length()); // Der letzte Text bleibt sichtbar
jtfaus.setText(""); // leert das Textfeld
jtfaus.requestFocus (); // macht das Textfeld wieder aktiv
//----------------------------------------------------------------
try
{
DatagramPacket packet;
{
InetAddress ia = InetAddress.getByName( "localhost" );
String s = (chattext); //Dieser Text wird verschickt!
packet = new DatagramPacket( s.getBytes(),s.length(),ia,4711 );
DatagramSocket dSocket = new DatagramSocket();
dSocket.send( packet );
System.out.println( "Wird gesendet..." ); // vor Fertigstellung entfernen?
}
}
catch ( Exception e ) // Fehlerbehandlung
{
System.out.println( e );
}
}
// Ende Ereignisprozeduren
public static void main(final String[] args){ // Einstieg ins Programm
new chat1("chat1");
}
}
Hat jemant ne möglichst simmple Idee? Stehe hier voll auf dem Schlauch, hab irgendwie nen Blackout!!!!