# Empfangen geht, Senden nicht ?!



## KeNnY_tHe_OwNeR (21. Sep 2009)

Hi Leute,

bin neu hier und habe gleich ein Problem ^^. Ich schreibe gerade ein Programm zur Übertragung von Dateien. Das Empfangen von Daten - zur Zeit ein simpler String zum testen - fuktioniert problemlos (habe ich mit einem Chat - Programm getestet). Wenn ich aber Senden will kommet der String nicht mal auf den Weg (out.print(); out.flush(); ). Bitte um Hilfe denn ich komm einfach nicht drauf^^. (Problem vermutlich bei 387)

Greetz KeNnY.


```
import java.io.*;
import java.net.*;
import java.awt.*;
import java.util.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;

public class Datentransfer extends JFrame
{   
    public static final int SENDER      = 0;
    public static final int EMPFÄNGER   = 1;
    public static final int VERBINDEN   = 2;
    public static final int VERBUNDEN   = 3;
    public static final int GETRENNT    = 4;
    public static final int SENDEN      = 5;
    public static final int NICHTSENDEN = 6;
    
    public static ServerSocket hostServer = null;
    public static Socket socket = null;
    public static BufferedReader in = null;
    public static PrintWriter out = null;
    
    public static String sendMsg = "100";
    public static String testMsg = "";
    
    private int WasBinIch;
    private int Status;
    private int SendOrNot;
    
    private ButtonGroup RBGruppe = new ButtonGroup();
 
    private Container contentPane = getContentPane();
    
    private JLabel L_Datei = new JLabel("Datei: ");
    private JLabel L_DateiAnzeigen = new JLabel();
    private JLabel L_ZielIP = new JLabel("IP des Ziels: ");
    private JLabel L_ZielPort = new JLabel("Port: ");
    private JLabel L_Fortschritt = new JLabel("Fortschritt: ");
    private JLabel L_UploadGeschwindigkeit = new JLabel("Upload Geschwindigkeit: ");
    private JLabel L_DownloadGeschwindigkeit = new JLabel("Download Geschwindigkeit: ");
    private JLabel L_DLAnzeige = new JLabel("N/A");
    private JLabel L_ULAnzeige = new JLabel("N/A");
    private JLabel L_VerbundenMit = new JLabel("Verbunden mit: ");
    private JLabel L_KontrollHash = new JLabel("Kontroll Hash: ");
    private JLabel L_VMAnzeige = new JLabel("N/A");   
    private JLabel L_KHAnzeige = new JLabel("N/A");
    
    private JTextField T_IP = new JTextField(12);
    private JTextField T_Port = new JTextField(6);
    private JTextField T_StatusAnzeige = new JTextField();
    
    private JButton B_Verbinden = new JButton("Verbinden");
    private JButton B_Suchen = new JButton("Suchen");
    private JButton B_Senden = new JButton("Senden");
    
    private JRadioButton RB_Sender = new JRadioButton("Sender", true);
    private JRadioButton RB_Empfänger = new JRadioButton("Empfänger");
    
    private static JProgressBar PB_Status = new JProgressBar(JProgressBar.HORIZONTAL,0,100);
    private ButtonListener butLis = new ButtonListener();

    public Datentransfer()
    {
        super();
        
        // Variablen Init
        WasBinIch = SENDER;
        SendOrNot = NICHTSENDEN;
        Status = GETRENNT;
        
        // Fenste Einstellungen
        setSize(620, 300);
        setTitle("Datentransfer");
        setVisible(true);
        setResizable(false);
        
        // Pane Einstellungen
        contentPane.setLayout(null);
        
        // Gruppen Einstellungen
        RBGruppe.add(RB_Sender);
        RBGruppe.add(RB_Empfänger);
        
        // Knöpfe & Co.
            //setBounds
        L_Datei.setBounds(10,10,100,25);
        L_DateiAnzeigen.setBounds(50,10,(contentPane.getWidth()-10),25);
        L_ZielIP.setBounds(10,42,120,25);
        L_ZielPort.setBounds(170,42,120,25);
        L_Fortschritt.setBounds(10,100,60,25);
        L_UploadGeschwindigkeit.setBounds(10,150,150,25);
        L_DownloadGeschwindigkeit.setBounds(10,175,150,25);
        L_DLAnzeige.setBounds(170,150,100,25);
        L_ULAnzeige.setBounds(170,175,100,25);
        L_VerbundenMit.setBounds(300,150,150,25);
        L_KontrollHash.setBounds(300,175,150,25);
        L_VMAnzeige.setBounds(460,150,100,25);       
        L_KHAnzeige.setBounds(460,175,100,25);
        
        T_IP.setBounds(75,42,80,25);
        T_Port.setBounds(200,42,50,25);
        T_StatusAnzeige.setBounds(contentPane.getWidth()-10,contentPane.getHeight()-20,10,20);
        
        B_Verbinden.setBounds(10,230,120,25);
        B_Senden.setBounds(140,230,120,25);
        B_Suchen.setBounds(270,230,120,25);
        
        RB_Sender.setBounds(300,30,120,25);
        RB_Empfänger.setBounds(300,55,120,25);
        
        PB_Status.setBounds(75,100,(contentPane.getWidth()-85),25);
        
            //Restliche Einstellungen
        L_DLAnzeige.setHorizontalTextPosition(JLabel.RIGHT);
        L_ULAnzeige.setHorizontalTextPosition(JLabel.RIGHT);
        L_VMAnzeige.setHorizontalTextPosition(JLabel.RIGHT);
        L_KHAnzeige.setHorizontalTextPosition(JLabel.RIGHT);
        
        T_IP.setHorizontalAlignment(SwingConstants.CENTER);
        T_Port.setHorizontalAlignment(SwingConstants.CENTER);
        T_IP.setText("127.0.0.1");
        T_Port.setText("6112");
         T_StatusAnzeige.setEditable(false);
        T_StatusAnzeige.setBackground(Color.RED);
        
        PB_Status.setValue(0);
        
        // ActionListener
        B_Senden.addActionListener(butLis);
        B_Suchen.addActionListener(butLis);
        B_Verbinden.addActionListener(butLis);
        
        RB_Sender.addActionListener(butLis);
        RB_Empfänger.addActionListener(butLis);
                
        // add-en der Komponenten
        add(L_Datei);
        add(L_DateiAnzeigen);
        add(L_ZielIP);
        add(L_ZielPort);
        add(L_Fortschritt);
        add(L_UploadGeschwindigkeit);
        add(L_DownloadGeschwindigkeit);
        add(L_DLAnzeige);
        add(L_ULAnzeige);
        add(L_VerbundenMit);
        add(L_VMAnzeige);
        add(L_KontrollHash);
        add(L_KHAnzeige);
        
        add(T_IP);
        add(T_Port);
        add(T_StatusAnzeige);
        
        add(B_Verbinden);
        add(B_Senden);
        add(B_Suchen);
        
        add(RB_Sender);
        add(RB_Empfänger);
        
        add(PB_Status);
               
        try 
        {       
            UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
        } 
        catch (Exception e) 
        {
            
        }

        SwingUtilities.updateComponentTreeUI(contentPane);
        
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }

    /*
     * ActionListener
     */
    class ButtonListener implements ActionListener
    {
        public void actionPerformed(ActionEvent e)
        {            
            /*
             * Was gemacht werden soll falls Sender aktiv ist
             */
            if(e.getSource().equals(RB_Sender))
            {
                T_IP.setEditable(true);
                B_Senden.setEnabled(true);
                setWasBinIch(SENDER);
            }
            // Sender ENDE
            
            /*
             * Was gemacht werden soll falls Empfänger aktiv ist
             */
            if(e.getSource().equals(RB_Empfänger))
            {
                T_IP.setEditable(false);
                T_IP.setText("127.0.0.1");
                B_Senden.setEnabled(false);
                setWasBinIch(EMPFÄNGER);
            }
            // Empfänger ENDE
            
            /*
             * Was gemacht werden soll falls Verbinden gedrückt wird
             */
             if(e.getSource().equals(B_Verbinden))
             {
                 setStatus(VERBINDEN);
                 T_StatusAnzeige.setBackground(Color.ORANGE);                
             }
             // Senden ENDE
            
            /*
             * Was gemacht werden soll falls Senden gedrückt wird
             */
             if(e.getSource().equals(B_Senden))
             {
                 setSendOrNot(SENDEN);                
             }
             // Senden ENDE
             
             /*
              * Was gemacht werden soll falls Suchen gedrückt wird
              */
             if(e.getSource().equals(B_Suchen)) 
             {
                 JFileChooser dateiAuswahl = new JFileChooser("%SystemRoot%");
                 DateiFilter filter1 = new DateiFilter(".exe",".exe Dateien");
                 DateiFilter filter2 = new DateiFilter(".zip",".zip Dateien");
                 DateiFilter filter3 = new DateiFilter(".java",".java Dateien");
                 DateiFilter filter4 = new DateiFilter(".class",".class Dateien");
                 dateiAuswahl.addChoosableFileFilter(filter1); 
                 dateiAuswahl.addChoosableFileFilter(filter2); 
                 dateiAuswahl.addChoosableFileFilter(filter3); 
                 dateiAuswahl.addChoosableFileFilter(filter4); 
        
                 int status = dateiAuswahl.showOpenDialog(B_Suchen);
                 
                 if(status == JFileChooser.APPROVE_OPTION) 
                 {
                     File datei = dateiAuswahl.getSelectedFile();
                 
                     L_DateiAnzeigen.setText(datei.getParent() + "\\" + datei.getName());
                 }
                 else
                 {
                     return; 
                 }
             }
             // Suchen ENDE
         }
         // ActionListener ENDE
    }
    
    /*
     * Set WasBinIch
     */
    public void setWasBinIch(int value)
    {
        WasBinIch = value;
    }
    // setWasBinIch ENDE
    
    /*
     * Get WasBinIch
     */
    public int getWasBinIch()
    {
        return WasBinIch;
    }
    // getStatus ENDE
    
    /*
     * Set Status
     */
    public void setStatus(int value)
    {
        Status = value;
    }
    // getWasBinIch ENDE
    
    /*
     * Get Status
     */
    public int getStatus()
    {
        return Status;
    }
    // getStatus ENDE
    
    /*
     * Set SendOrNot
     */
    public void setSendOrNot(int value)
    {
         SendOrNot = value;
    }
    // setSendOrNot ENDE
    
    /*
     * Get SendOrNot Methode
     */
    public int getSendOrNot()
    {
        return SendOrNot;
    }
    // getSendOrNot ENDE
    
    /*
     * Get IP Methode
     */
    public String getIP()
    {
        return T_IP.getText();
    }
    // getIP ENDE
    
    /*
     * Get Port Methode
     */
    public int getPort()
    {
        return Integer.parseInt(T_Port.getText());
    }
    // getPort ENDE
    
    /*
     * Set ProgressBarTo Methode
     */
    public void setProgressBarTo(int value)
    {
        PB_Status.setValue(value);
    }
    // setProgressBarTo ENDE
    
    /*
     * Main Methode
     */
    public static void main(String[] args)
    {
        Datentransfer fenster = new Datentransfer();
                
        while(true)
        {           
            /*
             * System Luft zum Atmen geben
             */
            try
            {
                Thread.sleep(10);
            }
            catch(Exception ex)
            {
                
            }
            // Luft ENDE
            
            /*
             * Der eigentliche Teil des Programms
             */
            switch(fenster.getStatus())
            {
                case VERBINDEN: /*
                                 * Was getan wird wenn auf verbinden geklickt wurde
                                 */                
                                try
                                {
                                    if(fenster.getWasBinIch() == EMPFÄNGER)
                                    {
                                        hostServer = new ServerSocket(fenster.getPort());
                                        socket = hostServer.accept();
                                        fenster.T_StatusAnzeige.setBackground(Color.GREEN);
                                    }                                    
                                    if(fenster.getWasBinIch() == SENDER)
                                    {
                                        socket = new Socket(fenster.getIP(), fenster.getPort());
                                        fenster.T_StatusAnzeige.setBackground(Color.GREEN);
                                    }
                                    
                                    in  = new BufferedReader(new InputStreamReader(socket.getInputStream()));
                                    out = new PrintWriter(socket.getOutputStream(), true);
                                    fenster.setStatus(VERBUNDEN);                               
                                }
                                catch(IOException IOEx)
                                {
                                    // TODO Fehlerbehandlung
                                }
                                
                                break;
                                // Verbinden ENDE
                                
                case VERBUNDEN: /*
                                 * Was getan wird wenn die Verbindung hergestellt wurde
                                 */                               
                                try
                                {
                                    if(fenster.getWasBinIch() == SENDER)
                                    {
                                        if(fenster.getSendOrNot() == SENDEN)
                                        {
                                            if(sendMsg.length() != 0)
                                            {
                                                out.print(sendMsg);
                                                out.flush();
                                                sendMsg = "";
                                                fenster.setProgressBarTo(100);
                                                fenster.setTitle("Datentransfer - 100%");
                                                fenster.setSendOrNot(NICHTSENDEN);
                                            }
                                        }
                                    }
                                    if(fenster.getWasBinIch() == EMPFÄNGER)
                                    {
                                        if(in.ready())
                                        {
                                            testMsg = in.readLine();
                                            if((testMsg != null) && (testMsg.length() != 0))
                                            {
                                                fenster.setProgressBarTo(Integer.parseInt(testMsg));
                                                fenster.setTitle("Datenübertragung - " + testMsg + "%");
                                            }
                                        }
                                    }
                                }
                                catch(IOException IOEx)
                                {
                                    // TODO Fehlerbehandlung
                                }
                                break;
                                // Verbunden ENDE
            }
            // ENDE
        }
        // ENDE der while(true) Schleife
    }
    // Main ENDE
}


// Eigene Dateifilter-Klasse
class DateiFilter extends javax.swing.filechooser.FileFilter  
{
   private String beschreibung;        
   private String endung; 

   DateiFilter(String endung, String beschreibung) 
   {
      this.endung = endung;
      this.beschreibung = beschreibung;
   }

   public String getDescription() 
   {
      return beschreibung; 
   }

   // Verzeichnisse und Dateien der eingestellten Endung durchlassen
   public boolean accept(File datei) 
   {
      if(datei.isDirectory() == true) 
         return true;
      else 
         return (datei.getName().endsWith(endung)); 
   }
}
```


----------



## SlaterB (21. Sep 2009)

die ifs werden auch ausgeführt, hast du eine Log-Meldung?
wer empfängt das ganze denn, wie kannst du feststellen, ob das Senden erfolgreich war?

muss es ein 470-Zeilen GUI-Programm sein? ne einfache main-Methode wäre ja auch denkbar,
besonders fertige Testprogramme aus Tutorials


----------



## KeNnY_tHe_OwNeR (21. Sep 2009)

Ja sry für 400 Zeilen GUI (die ich nicht irgendwo rausgezogen hab...).
1. hab keine ahnung was ifs bedeutet 
2. daten werden an zweite instanz von dem programm geschickt. Das EMPFANGEN kann ich mit einem anderem Programm testen. Das empfangen fuktioniert. Wirklich  
3. Meinst du mit log irgend eine consolen meldung? Wenn ja, es wird nichts angezeigt.


----------



## SlaterB (21. Sep 2009)

ja ich meinte

 if(fenster.getWasBinIch() == SENDER)
                                    {
                                        if(fenster.getSendOrNot() == SENDEN)
                                        {
                                            if(sendMsg.length() != 0)
                                            {
System.out.println("der folgende Code wird jetzt ausgeführt");
...

aber wenn dir selbst ein if nicht bekannt ist, kann das ja heiter werden


----------



## KeNnY_tHe_OwNeR (21. Sep 2009)

Achso ja ich hab so was ähnliches eingebaut... Er setzt mir die Fortschrittsleiste auf 100 %. Das passiert auch.


----------



## tuxedo (22. Sep 2009)

Das


KeNnY_tHe_OwNeR hat gesagt.:


> Ja sry für 400 Zeilen GUI (*die ich nicht irgendwo rausgezogen hab...*).



steht ja im totalen Gegensatz zu



> 1. hab keine ahnung was ifs bedeutet



.... 

Du bist nicht besonders glaubwürdig ...


----------



## Michael... (22. Sep 2009)

KeNnY_tHe_OwNeR hat gesagt.:


> ```
> catch (Exception e)
> {
> 
> ...


Zunächst mal würde ich solche Konstrukte ändern. Wie willst Du denn mitbekommen, ob alles funktioniert, wenn Du sämtliche Exception ignorierst?


----------



## KeNnY_tHe_OwNeR (22. Sep 2009)

@Michael: Ja diese Konstrukte werd ich mal ändern mal schaun was passiert.

@tuxedo: Ähm bin gerade ein bischen überrumpelt weil ich keine Ahnung was ich falsch mache bzw. was du meinst. Sagt mir halt einfach mal was "ifs" bedeutet bzw. ob es überhaupt etwas bedeutet.


----------



## SlaterB (22. Sep 2009)

die ifs = die if-Bedingungen 

gemeint war, zu prüfen, ob der Code innerhalb der if-Blöcke überhaupt drankommt,
denn ein if bedeutet natürlicherweise, dass der Code darin vielleicht gar nicht erst ausgeführt wird,
daher mag es an den if-Bedinungen liegen, nicht daran ob du flush aufrufst oder nicht


----------



## KeNnY_tHe_OwNeR (22. Sep 2009)

ololol... is ja peinlich  ! Wenn ihr das so "if's" geschrieben hättet wäre ich sofort draufgekommen ^^. Das werde ich mal testen ... danke


----------



## Michael... (22. Sep 2009)

KeNnY_tHe_OwNeR hat gesagt.:


> Wenn ihr das so "if's" geschrieben hättet


<klugscheiss>Der ursprüngliche Satz und dessen Bedeutung macht aber den Nominativ im Plural und nicht den Genitiv erforderlich</klugscheiss>

Behandelst Du inzwischen in den catch Blöcken die potentiellen Exceptions? Bin mir sicher, dass die ein oder andere auftritt.


----------



## KeNnY_tHe_OwNeR (22. Sep 2009)

hab den catch block jetzt geändert. Der catch block der für das out.flush() zuständig ist wirft keine Exception aus. Der ander schon ist aber glaub ich für mein problem irrelevant! Ich poste nochmal die main methode. (Der catch block der probleme macht ist so => markiert. Er macht probleme wenn man vor dem host verbinden möchte).


```
public static void main(String[] args)
    {
        Datentransfer fenster = new Datentransfer();
                
        while(true)
        {           
            /*
             * System Luft zum Atmen geben
             */
            try
            {
                Thread.sleep(10);
            }
            catch(Exception ex)
            {
                
            }
            // Luft ENDE
            
            /*
             * Der eigentliche Teil des Programms
             */
            switch(fenster.getStatus())
            {
                case VERBINDEN: /*
                                 * Was getan wird wenn auf verbinden geklickt wurde
                                 */                
                                try
                                {
                                    if(fenster.getWasBinIch() == EMPFÄNGER)
                                    {
                                        hostServer = new ServerSocket(fenster.getPort());
                                        socket = hostServer.accept();
                                        fenster.setStatusMSG(VERBUNDEN);
                                        fenster.setStatusColor(Color.GREEN);
                                    }                                    
                                    if(fenster.getWasBinIch() == SENDER)
                                    {
                                        socket = new Socket(fenster.getIP(), fenster.getPort());
                                        fenster.setStatusMSG(VERBUNDEN);
                                        fenster.setStatusColor(Color.GREEN);
                                    }
                                    
                                    in  = new BufferedReader(new InputStreamReader(socket.getInputStream()));
                                    out = new PrintWriter(socket.getOutputStream(), true);
                                    fenster.setStatus(VERBUNDEN);                               
                                }
                 =>            catch(IOException IOEx)
                                {
                                    fenster.setStatusMSG(FEHLER, IOEx.toString());
                                    fenster.setStatusColor(Color.RED);
                                    System.out.println(IOEx);
                 =>            }
                                
                                break;
                                // Verbinden ENDE
                                
                case VERBUNDEN: /*
                                 * Was getan wird wenn die Verbindung hergestellt wurde
                                 */                               
                                try
                                {
                                    if(fenster.getWasBinIch() == SENDER)
                                    {
                                        if(fenster.getSendOrNot() == SENDEN)
                                        {
                                            if(sendMsg.length() != 0)
                                            {
                                                out.print(sendMsg);
                                                out.flush();
                                                sendMsg = "";
                                                fenster.setProgressBarTo(100);
                                                fenster.setTitle("Datentransfer - 100%");
                                                fenster.setSendOrNot(NICHTSENDEN);
                                            }
                                        }
                                    }
                                    if(fenster.getWasBinIch() == EMPFÄNGER)
                                    {
                                        if(in.ready())
                                        {
                                            testMsg = in.readLine();
                                            if((testMsg != null) && (testMsg.length() != 0))
                                            {
                                                fenster.setProgressBarTo(Integer.parseInt(testMsg));
                                                fenster.setTitle("Datenübertragung - " + testMsg + "%");
                                            }
                                        }
                                    }
                                }
                                catch(IOException IOEx)
                                {
                                    fenster.setStatusMSG(FEHLER, IOEx.toString());
                                    fenster.setStatusColor(Color.RED);
                                    System.out.println(IOEx);
                                }
                                break;
                                // Verbunden ENDE
            }
            // ENDE
        }
        // ENDE der while(true) Schleife
    }
    // Main ENDE
```


----------



## SlaterB (22. Sep 2009)

Variablen klein schreiben

ex.printStackTrace();
für die Fehlerausgabe 

und du willst jetzt allen ernstes nur 'macht Probleme' sagen und die exakte Fehlermeldung verschweigen?


----------



## KeNnY_tHe_OwNeR (22. Sep 2009)

Ich hab gedacht es reicht wenn ich so was in der art mache:

```
System.out.println("Fehler: " + ex)
```
So was ähnliches mache ich nämlich in Zeile 93:

```
fenster.setStatusMSG(FEHLER, IOEx.toString());
```

Gibt printStackTrace eine genauere Fehlermeldung aus !?


----------



## KeNnY_tHe_OwNeR (22. Sep 2009)

Um zu veranschaulichen wie ich getestet habe ob der empfang fuktioniert hab ich zwei screnns hochgeleden. (Bei Senden geht nicht sollte normalerweise "INCOMING: 100" stehen. Es wird auch keine Exception ausgelöst!)


----------



## SlaterB (22. Sep 2009)

die println-Ausgabe ist schon recht gut, kompletter StackTrace wäre noch besser, liefert noch paar genauere Informationen bei exakt welcher Stelle es war, oft kommen mehrere in Frage,
tritt denn nun überhaupt eine Exception auf?


----------



## KeNnY_tHe_OwNeR (22. Sep 2009)

Nö. Es ist zum verzweifeln ;(


----------



## SlaterB (22. Sep 2009)

ok, es ist eigentlich ein bekanntes Problem, sorry das hätte ich auch früher beantworten können, 

der Empfänger hat
> in.readLine();
er liest erst, wenn ein Zeilenumbruch gesendet wurde, das kannst du mit 
out.print(sendMsg);
								out.println();
								out.flush();
besorgen


hatte nun die Zeit, das ganze auszuprobieren, nettes Programm für Tests, 
kann man ja gleichzeitig als Sender und Empfänger benutzen, zumindest dafür braucht man das out.println();
ob bei deinem Simple TCP Chat auch? ich hoffe mal

die GUI ist am Anfang nicht gut zusammengebaut,
verwende lieber folgenden Code


```
public Datentransfer() {

		// Variablen Init
		WasBinIch = SENDER;
		SendOrNot = NICHTSENDEN;
		Status = GETRENNT;

		// Fenste Einstellungen
		setSize(720, 350);
		setTitle("Datentransfer");

		setResizable(false);

		// Pane Einstellungen
		contentPane.setLayout(null);

		// Gruppen Einstellungen
		RBGruppe.add(RB_Sender);
		RBGruppe.add(RB_Empfänger);

		// Knöpfe & Co.
		// setBounds
		L_Datei.setBounds(10, 10, 100, 25);
		L_DateiAnzeigen.setBounds(50, 10, 600, 25);
		L_ZielIP.setBounds(10, 42, 120, 25);
		L_ZielPort.setBounds(170, 42, 120, 25);
		L_Fortschritt.setBounds(10, 100, 60, 25);
		L_UploadGeschwindigkeit.setBounds(10, 150, 150, 25);
		L_DownloadGeschwindigkeit.setBounds(10, 175, 150, 25);
		L_DLAnzeige.setBounds(170, 150, 100, 25);
		L_ULAnzeige.setBounds(170, 175, 100, 25);
		L_VerbundenMit.setBounds(300, 150, 150, 25);
		L_KontrollHash.setBounds(300, 175, 150, 25);
		L_VMAnzeige.setBounds(460, 150, 100, 25);
		L_KHAnzeige.setBounds(460, 175, 100, 25);

		T_IP.setBounds(75, 42, 80, 25);
		T_Port.setBounds(200, 42, 50, 25);
		T_StatusAnzeige.setBounds(600, 280, 40, 20);
		T_StatusAnzeige.setBorder(BorderFactory.createLineBorder(Color.red));

		B_Verbinden.setBounds(10, 230, 120, 25);
		B_Senden.setBounds(140, 230, 120, 25);
		B_Suchen.setBounds(270, 230, 120, 25);

		RB_Sender.setBounds(300, 30, 120, 25);
		RB_Empfänger.setBounds(300, 55, 120, 25);

		PB_Status.setBounds(75, 100, 600, 25);

		// Restliche Einstellungen
		L_DLAnzeige.setHorizontalTextPosition(JLabel.RIGHT);
		L_ULAnzeige.setHorizontalTextPosition(JLabel.RIGHT);
		L_VMAnzeige.setHorizontalTextPosition(JLabel.RIGHT);
		L_KHAnzeige.setHorizontalTextPosition(JLabel.RIGHT);

		T_IP.setHorizontalAlignment(SwingConstants.CENTER);
		T_Port.setHorizontalAlignment(SwingConstants.CENTER);
		T_IP.setText("127.0.0.1");
		T_Port.setText("6112");
		T_StatusAnzeige.setEditable(false);
		T_StatusAnzeige.setBackground(Color.RED);

		PB_Status.setValue(0);

		// ActionListener
		B_Senden.addActionListener(butLis);
		B_Suchen.addActionListener(butLis);
		B_Verbinden.addActionListener(butLis);

		RB_Sender.addActionListener(butLis);
		RB_Empfänger.addActionListener(butLis);

		// add-en der Komponenten
		add(L_Datei);
		add(L_DateiAnzeigen);
		add(L_ZielIP);
		add(L_ZielPort);
		add(L_Fortschritt);
		add(L_UploadGeschwindigkeit);
		add(L_DownloadGeschwindigkeit);
		add(L_DLAnzeige);
		add(L_ULAnzeige);
		add(L_VerbundenMit);
		add(L_VMAnzeige);
		add(L_KontrollHash);
		add(L_KHAnzeige);

		add(T_IP);
		add(T_Port);
		add(T_StatusAnzeige);

		add(B_Verbinden);
		add(B_Senden);
		add(B_Suchen);

		add(RB_Sender);
		add(RB_Empfänger);

		add(PB_Status);

		try {
			UIManager
					.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
		} catch (Exception e) {

		}

		SwingUtilities.updateComponentTreeUI(contentPane);

		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setVisible(true);
	}
```

setVisible(true);
ans Ende,
paar Größenangaben neu gesetzt


----------



## KeNnY_tHe_OwNeR (23. Sep 2009)

Danke für deine Hilfe SlaterB. Es funzt


----------

