Client-Server mittels AWT

ebruss17

Bekanntes Mitglied
Hallo Leute,

ich habe ein Client-Server-Programm geschrieben. Nun muss ich das mit AWT erweitern, sodass zum Schluss eine GUI verfügbar ist. Client und Server funktionieren auch ganz gut und die Kommunikation zwischen Client und Server auch. Jetzt möchte ich beim Server 3 Methoden implementieren: "Serverstart" "Serverstopp" "Serverport einstellen" damit wenn der Client eine von den 3 Buttons anklickt, je nachdem der Server gestartet gestoppt oder um den Serverport einzustellen. Hier mein Code zum Server:

Java:
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.awt.*;
import java.awt.event.*;


/**
 * @author zengin
 * Mithilfe der Klasse Server findet die Kommunikation zwischen dem Client
 * und dem Server über den Socket 45678 statt. Diese Klasse wurde so implementiert,
 * sodass sich mehrere Clients beim Server anmelden können. Der Server ist also
 * multi-user-fähig. Der Server protokolliert seine Aktivitäten mit Datum - und
 * Zeitausgabe in eine Logfile mit dem Datei-Namen "logfile.csv".
 */
public class Server extends Frame implements ActionListener, MouseListener {

    /**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	File serverdatei = new File("logfile.csv");
    private static ArrayList<String> eintragsliste = new ArrayList<String>();
    int anzahlClients = 0;
   /*MenuBar menuBar;
   Menu menu;
   Menu menu1;
   MenuItem menuItem;*/
   PopupMenu popup;
   Label label;
   Button serverStart;
   Button serverStopp;
   Button serverPort;
   int portStandard = 12345;
   
   Label lServerPort;
   Label lClients;
   Label lServerGestartet;
   Label lServerEnde;
   
   TextField textClients;
   TextField textPorteingeben;
   
  public Server()
  {
	  super("Server-GUI");
	  this.setSize(200,130);
	  this.setLocation(100,250);
	  this.setLayout(null);
	  this.setBackground(Color.lightGray);
	
	  MenuBar menuBar = new MenuBar();
	  this.setMenuBar(menuBar); 
	  Menu menu = new Menu("Datei");
	  menuBar.add(menu);
	  MenuItem menuItem = new MenuItem("Oeffnen", new MenuShortcut(KeyEvent.VK_O));
	  menuItem.addActionListener(this);
	  menu.add(menuItem);
	  menu.addSeparator();
	  menuItem = new MenuItem("Datenbank auswählen");
	  menuItem.addActionListener(this);
	  menu.add(menuItem);
	  menu.addSeparator();
	  menuItem = new MenuItem("Beenden");
	  menuItem.addActionListener(this);
	  menu.add(menuItem);
	  menu = new Menu("Info");
	  menuBar.add(menu);
	  menuItem = new MenuItem("Info", new MenuShortcut(KeyEvent.VK_I));
	  menuItem.addActionListener(this);
	  menu.add(menuItem);
	  
	  popup = new PopupMenu();
	  this.add(popup);
	  MenuItem mItem = new MenuItem("Datei Öffnen");
	  mItem.addActionListener(this);
	  popup.add(mItem);
	  popup.addSeparator();
	  mItem = new MenuItem("Datenbank auswählen");
	  mItem.addActionListener(this);
	  popup.add(mItem);	
	  popup.addSeparator();
	  mItem = new MenuItem("Beenden");
	  mItem.addActionListener(this);
	  popup.add(mItem);	
	  
	  label = new Label();
	  label.setSize(320,30);
	  label.setLocation(25, 250);
	  add(label);
	  
	 
	  
	  lServerEnde = new Label("Der Server wurde erfolgreich beendet");
	  lServerEnde.setSize(240, 30);
	  lServerEnde.setLocation(70, 300);
	  add(lServerEnde);
	  lServerEnde.setVisible(false);
	  
	  lServerPort = new Label("Der Serverport ist: ");
	  lServerPort.setSize(100,30);
	  lServerPort.setLocation(70, 500);
	  add(lServerPort);
	  
	  lClients = new Label("Clients, die sich angemeldet haben");
	  lClients.setSize(250, 30);
	  lClients.setLocation(70, 600);
	  add(lClients);

	  serverStart = new Button("Serverstart");
	  serverStart.setSize(150, 30);
	  serverStart.setLocation(45, 100);
	  serverStart.addMouseListener(this);
	  add(serverStart);
	
	  
	  serverStopp = new Button("Serverstopp");
	  serverStopp.setSize(150, 30);
	  serverStopp.setLocation(45, 300);
	  serverStopp.addMouseListener(this);
	  add(serverStopp);
	  serverStopp.setVisible(true);
	  
	  
	  serverPort = new Button("Serverport übernehmen");
	  serverPort.setSize(150, 30);
	  serverPort.setLocation(90,140);
	  serverPort.addMouseListener(this);
	  add(serverPort);
	  
	  String portwert = "" + portStandard;
	  textPorteingeben = new TextField(portwert);
	  textPorteingeben.setSize(100,30);
	  textPorteingeben.setLocation(120, 140);
	  add(textPorteingeben);
	  
	  
	  String zaehleClients = "" + anzahlClients;
	  textClients = new TextField(zaehleClients);
	  textClients.setEditable(false);
	  textClients.setSize(30,30);
	  textClients.setLocation(200,200);
	  add(textClients);
	  
	
	  
	  this.setVisible(true);
	  this.addWindowListener(new WindowAdapter()
	  {
		  public void windowClosing(WindowEvent we)
		  {
			  System.exit(0);
		  }
	  });
	  this.enableEvents(AWTEvent.MOUSE_EVENT_MASK);
	 }
  
public void processMouseEvent(MouseEvent me)
	{
		if(me.isPopupTrigger())
	
			popup.show(me.getComponent(), me.getX(), me.getY());
	}
  

  public void actionPerformed(ActionEvent ae)
  {
	  Object o = ae.getSource();
	  if(((MenuItem)o).getLabel().equals("Oeffnen"))
	  {
		  FileDialog fileDialog = new FileDialog(this, "Datei Oeffnen", FileDialog.LOAD);
		  fileDialog.setVisible(true);
		  label.setText("Datei " + fileDialog.getDirectory() + fileDialog.getFile() + " ausgewählt");
	  }
	  else if(((MenuItem)o).getLabel().equals("Datenbank"))
	  {
		  FileDialog fileDialog = new FileDialog(this, "Datenbank auswählen", FileDialog.LOAD);
		  fileDialog.setVisible(true);
		  label.setText("Datenbank " + fileDialog.getDirectory() + fileDialog.getFile() + " ausgewählt");
	  }
	  else if(((MenuItem)o).getLabel().equals("Datenbank auswählen"))
	  {
		  FileDialog fileDialog = new FileDialog(this, "Datenbankauswahl", FileDialog.LOAD);
		  fileDialog.setVisible(true);
		  label.setText("Datenbank " + fileDialog.getDirectory() + fileDialog.getFile() + " ausgewählt");
	  }
	  
	  else if(((MenuItem)o).getLabel().equals("Datei Öffnen"))
	  {
		  FileDialog fileDialog = new FileDialog(this, "Datei Oeffnen", FileDialog.LOAD);
		  fileDialog.setVisible(true);
		  label.setText("Datei " + fileDialog.getDirectory() + fileDialog.getFile() + " ausgewählt");
	  }
	 
	  else if(((MenuItem)o).getLabel().equals("Beenden"))
	  {
		  MeinDialog meinDialog = new MeinDialog(this, "Ende-Dialog", "Wollen Sie die Anwendung wirklich beenden?");
		  if(meinDialog.getAntwort())
			  System.exit(0);
	  }
	  else if(((MenuItem)o).getLabel().equals("Info"))
	  {
		  @SuppressWarnings("unused")
		MeinDialog meinDialog = new MeinDialog(this, "Info", "Dieses Programm enthält ein Menü");
	  }
  }
  
  public void mouseEntered(MouseEvent arg0)
  {
	  
  }
  
  @Override
	public void mouseClicked(MouseEvent me) {
		// TODO Auto-generated method stub
	  if(me.getComponent() == serverStopp)
	  {
		  
	  }
	
	  if(me.getComponent() == serverStart)
	  {
	  }
	}

	@Override
	public void mouseExited(MouseEvent arg0) {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void mousePressed(MouseEvent arg0) {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void mouseReleased(MouseEvent arg0) {
		// TODO Auto-generated method stub
		
	}
  
  
    /**
     * Mithilfe der main-Methode findet die Kommunikation des Servers 
     * mit dem Client über Sockets statt. Die run-Methode
     * der Klasse Thread wird ebenfalls implementiert und überschrieben. 
     * Innerhalb der run-Methode werden Zeit- und Datumsformate definiert. 
     * Die Optionen, die der Client auswählt, werden dem Server als Anfrage geschickt
     * und werden auf der Konsole des Servers mit Zeit- und Datumsausgabe ausgegeben.
     * Mithilfe der Variable "schreibenUeberSocket" vom Typ BufferedWriter-Objekt
     * schreibt der Server dem Client über den Socket, ob die Auswahl des Clients
     * in Ordnung ist. Der Aufruf der Methode start() in Zeile 136 der Klasse Thread 
     * bewirkt, dass sich mehrere Clients mit dem Server verbinden können.
     * @param args
     * @throws IOException
     */
    public static void main(String[] args) throws Exception
    {
    	@SuppressWarnings("unused")
		Server server = new Server();
       
		
       ServerSocket myServerSocket = new ServerSocket(45678);
        
        while(true)
        {
            final Socket myClientSocket = myServerSocket.accept();
            (new Thread(new Runnable()
            {
                public void run()
                {
                	try
                	{
                    BufferedReader lesenUeberSocket= new BufferedReader(new InputStreamReader(myClientSocket.getInputStream()));
                    BufferedWriter schreibenUeberSocket=new BufferedWriter(new OutputStreamWriter(myClientSocket.getOutputStream()));
                    
                    Label aktuelleZeit = new Label(aktuelleUhrzeit(new SimpleDateFormat("dd.MM.yyyy - HH:mm:ss")));
                    
                    
                    String anmeldung= aktuelleZeit + ";" + "Angemeldet an lokaler Adresse" + ";" 
                    				+ myClientSocket.getLocalAddress() + "\n";
                    eintragsliste.add(anmeldung);
                    writeLog(eintragsliste);
                    
                    System.out.println(
                    		"*************************" + "\n" + "> " + aktuelleZeit
                    		+ "\t" + "\t" +
                    		"--> Local Address angemeldet: "
                            + myClientSocket.getLocalAddress());
                    
                    String eingabeVonClientLesen;
                    
                    try
                    {
                        while((eingabeVonClientLesen = lesenUeberSocket.readLine()) != null)
                        {
                            int a=Integer.parseInt(eingabeVonClientLesen);
                            
                            if((a < 6) && (a > 0))
                            {
                                Label aktuelleZeit1 = new Label(aktuelleUhrzeit(new SimpleDateFormat("dd.MM.yyyy - HH:mm:ss ")));
                                choice(a, aktuelleZeit1);
                                writeLog(eintragsliste);
                                
                                System.out.println(
                                		"*************************" + "\n" + "> " + aktuelleZeit1
                                        + "\t" + "\t" + "Der Client hat den Menuepunkt \'"
                                        + a + "\' ausgewaehlt");
                                
                                
                                schreibenUeberSocket.write("Ihre Auswahl ist in Ordnung :-)");
                                schreibenUeberSocket.newLine();
                                schreibenUeberSocket.flush();
                            }
                            else
                            {
                                choice(a, aktuelleZeit);
                                writeLog(eintragsliste);
                                
                                System.out.println(
                                		"*************************" + "\n" + "> " + aktuelleZeit
                                        + "\t" + "\t" + "Ungueltige Eingabe!");
                                
                                schreibenUeberSocket.write("Ihre Auswahl ist leider nicht in Ordnung :-(");
                                schreibenUeberSocket.newLine();
                                schreibenUeberSocket.flush();
                            }
                        }
                    }
                    catch(Exception e)
                    {
                    	System.out.println(
                    			"*************************" + "\n" + e.getMessage());
                    }
                    System.out.println(
                    		"*************************" + "\n" + "> " + aktuelleZeit
                    		+ "\t" + "\t" +
                    		"<-- Local Address abgemeldet: "
                            + myClientSocket.getLocalAddress());

                    String abmeldung = aktuelleZeit + ";"
                            + "Abgemeldet von der lokalen Adresse" + ";"
                            + myClientSocket.getLocalAddress() + "\n";
                    
                    eintragsliste.add(abmeldung);
                    writeLog(eintragsliste);
                   myClientSocket.close();
                } catch (IOException e1) {
					// TODO Auto-generated catch block
					e1.printStackTrace();
				}finally
                {
                	
                }
            }})).start();
        }
    }
    
    
    public void serverstart() {

    	

    	    }
    
    public static void serverstopp()
    {

    }
    
    
    /**
     * Diese Methode definiert die Zeit- und Datumsformate, die auf 
     * der Konsole des Servers und in der Logfile dementsprechend 
     * formatiert ausgegeben werden.
     */
    private static String aktuelleUhrzeit(SimpleDateFormat sdf)
    {
    	sdf = new SimpleDateFormat("dd.MM.yyyy - HH:mm:ss");
    	Date aktuelleZeit = new Date();
    	return sdf.format(aktuelleZeit);
    }
    
    
    /**
     * Mithilfe dieser Methode werden die einzelnen Einträge der Logfile formatiert.
     * Die einzelnen Case-Fälle, die der Client auswählt,
     * werden dann mit der entsprechend aktuellen Uhrzeit und dem aktuellen Datum
     * in die Datei "logfile.csv" hinzugefügt.
     * @param a
     * @param zeit
     */
    public static void choice(int a, Label zeit) {
        StringBuilder gebeString = new StringBuilder();
        gebeString.append(zeit);
        gebeString.append(";");

        switch (a) {
            case 1:
            	gebeString.append("Der Client hat den Menuepunkt ");
                gebeString.append(a + " ausgewaehlt");
                gebeString.append(";");
                gebeString.append("neue Person aufnehmen");
                gebeString.append(";");
                break;
            case 2:
            	gebeString.append("Der Client hat den Menuepunkt ");
                gebeString.append(a + " ausgewaehlt");
                gebeString.append(";");
                gebeString.append("Records auflisten");
                gebeString.append(";");
                break;
            case 3:
            	gebeString.append("Der Client hat den Menuepunkt ");
                gebeString.append(a + " ausgewaehlt");
                gebeString.append(";");
                gebeString.append("Records in eine Datei sichern");
                gebeString.append(";");
                break;
            case 4:
            	gebeString.append("Der Client hat den Menuepunkt ");
                gebeString.append(a + " ausgewaehlt");
                gebeString.append(";");
                gebeString.append("Datei löschen");
                gebeString.append(";");
                break;
            default:
                break;
        }

        gebeString.append("\n");

        eintragsliste.add(gebeString.toString());
    }

   
    /**
     * Mithilfe dieser Methode werden die Einträge 
     * in die serverdatei "logfile.csv" geschrieben.
     * Innerhalb dieser Methode werden die Zeichen-Stream-Klassen
     * BufferedWriter und FileWriter angewendet. Die
     * Zeichen-Stream-Klasse BufferedWriter schickt seine Daten
     * an FileWriter und dieser schreibt dann die Daten in die 
     * Datei "logfile.csv".
     */
    public static void writeLog(ArrayList<String> eintragsliste) {
        try {
       
            BufferedWriter bw = new BufferedWriter(new FileWriter("logfile.csv"));
            
            

            for (int i = 0; i < eintragsliste.size(); i++) {
                bw.write(eintragsliste.get(i));
            }

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

ich brauche dringend Hilfe. Es wäre nett, wenn jemand behilflich sein könnte!
 

ebruss17

Bekanntes Mitglied
laut Aufgabenstellung muss ich beim Server 3 methoden implementieren "Serverstart" "Serverstopp" "Serverport einstellen" und noch 3 Buttons, damit ich die 3 Methoden wenn ich die jeweiligen Buttons anklicke, z.b. der Server gestartet , gestoppt oder um den Serverport einzustellen.... Wie könnte ich das machen?
 

ebruss17

Bekanntes Mitglied
wir dürfen nur AWT verwenden und das auch ist nur prüfungsrelevant ABER meine Frage war, dass ich 3 Methoden schreiben muss und wie ich diese implementieren soll ....
 
M

Marcinek

Gast
Hi,

was hier prüfungsrelevant ist und was nicht, ist hier leider garnicht relevant.

Am aller einfachsten ist es drei ActionListener zu implementieren, die dann zu den drei Buttons hinzugefügt werden. In den jeweiligen Actionlistnern kannst du deine Logik unterbringen.

Einfach mal googeln nach: Java ActionListener example

Gruß,

Martin
 

benhaze

Mitglied
Also, abgesehen davon das ich fast gar nicht glaube das du den code *selber* geschrieben hast aber Weihnachten ist, hier was mir so aufgefallen ist:

- an welcher Stelle wird deine GUI *sichtbar* gemacht?
- (ich frage weil:) deine main()-methode den server (socket-listen) startet, nicht aber das Fenster sichtbar macht.
- @SuppressWarnings("unused") ist in meinen Augen Blödsinn. Ich meine UNUSED!? hallo?!?!
Ein Kommentar, weswegen eine UNUSED Variable/Ausdruck dennoch existieren sollte, wäre IMHO besser.
- dein SimpleDateFormat("dd.MM.yyyy - HH:mm:ss") könnte static final sein. (Achtung: ist aber nicht ThreadSafe...deswegen im synchronized-block)

Um zurück zu deiner Frage zu kommen:
Innerhalb deiner while(true)-Schleife, könntest du einen Status-Prüfen (z.b eine Variable), welcher über einen deiner Button geändert werden kann. (m_socketAccept = true/false)
Je nach Status dann, Verbindungen annehmen oder nicht.
 

bERt0r

Top Contributor
Ich mach dir ein Weihnachtsgeschenk:
Dein StartServer button muss den ServerSocket öffnen und diesen while(true){serverSocket.accept()} Thread starten.
Der StopServer button muss den ServerSocket schließen, dann sollte der Thread beendet werden (da brauchst du noch Abbruchbedingungen).
Für deinen Serverport brauchst du eine Variable, damit du diesen dynamisch einstellen kannst.
 

bERt0r

Top Contributor
Wenn du den Code schon nicht selber schreibst, solltest du ihn zumindest verstehen lernen. Ansonsten wird das nix. Frag ansonsten "zengin" ob er/sie dir hilft.
 

ebruss17

Bekanntes Mitglied
ich muss 3 Methoden erstellen: Serverstart, Serverstopp, Serverport einstellen und weiss nicht was ich im oben geposteten Code in die jeweiligen Methoden übernehmen muss..... arghhh
 
M

Marcinek

Gast
Noch mehr helfen würde aber bedeuten die Aufgabe für dich zu Lösen.

Aber dafür ist das forum nicht da.
 

ebruss17

Bekanntes Mitglied
ich weiss aber nur die 3 Methoden fehlen noch... und ich weiss nicht wie ich die einzelnen Codes da rein implementieren soll, ich glaub das würde sich eigentlich sehr schnell lösen :(
 
M

Marcinek

Gast
Hast du schon diese drei Methoden?

Hast du schon drei Action Listener implementiert, wie weiter oben vorgeschlagen?

Hast du nach ServerSockets gegoogelt?

Hast du überhaupt etwas selber gemacht?

---

Du hast keine Lust das zu machen, wieso sollte es jemand anders haben?
 

ebruss17

Bekanntes Mitglied
diese 3 Methoden sind noch leer und das, was in die jeweiligen methoden rein muss, ist alles in der public static void main Methode innerhalb der Klasse was ich oben gepostet habe. ich weiss nun nicht wie ich die einzelnen Codes da rausnehmen muss und in die jeweiligen Methoden reinschreiben muss...
 

ebruss17

Bekanntes Mitglied
also ich drücke auf den Serverstart-Button aber es geschieht nichts, da ich ja dem Button auch noch nichts innerhalb der if-Abfrage zuweise! innerhalb meiner public static void main Methode erstelle ich einen Serversocket und die Kommunikation über Sockets. Das alles funktioniert wunderbar, jedoch weiss ich nicht genau welche Codeteile für die Serverstart-Methode von Nützen sind, damit wenn ich den Serverstart-Button klicke der server gestartet wird.
 

ebruss17

Bekanntes Mitglied
Hi Leute,

also ich brauche wirklich dringend Hilfe, da ich mein Projekt nächste Woche abgeben muss. Ich wäre für jede Hilfe sehr dankbar. Nochmals vielen Dank..
 
M

Marcinek

Gast
Hi,

sorry, wir machen hier keine Hausaufgaben.

Du hast leider nicht die benötigten Grundlagen um dir hier effizient zu helfen.

Eventuell solltest du dich an den Urheber des Codes im ersten Postings wenden.

Selbst wenn du das abgibst und der Prüfer einmal googelt landet er sofort in diesem Thread. Und damit wäre die "Hilfe" in form einer Lösung sinnlos und vertane Zeit.

Gruß,

Martin
 

bERt0r

Top Contributor
Ich finds jedenfalls bewundernswert wie du so viel Zeit und Geduld in derartige Threads stecken kannst. Dafür gibst von mir jedenfalls mal ein Danke :) Is ja Weihnachten.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Server/Client thread von GUI Trennen AWT, Swing, JavaFX & SWT 2
T LookAndFeel L&F Citrix-Server-Client AWT, Swing, JavaFX & SWT 4
E Swing Server-Client OnlineListe AWT, Swing, JavaFX & SWT 4
S Client-Server-Applikation mit GUI - Bugs ausmerzen AWT, Swing, JavaFX & SWT 4
J Client Server Anwendung - Mehrere Clients in einer Server GUI AWT, Swing, JavaFX & SWT 11
T Serversocket an Client Socket senden AWT, Swing, JavaFX & SWT 2
H Lust auf eine Open-Source Lösung für universelle Java Client-Technologie? AWT, Swing, JavaFX & SWT 11
D Serverdirectory auf Client browsen mit JFileChooser AWT, Swing, JavaFX & SWT 7
Rudolf JavaFx als Client und MySQL AWT, Swing, JavaFX & SWT 9
T Chat-Client AWT, Swing, JavaFX & SWT 15
F Applet vs Stand-Alone-Client AWT, Swing, JavaFX & SWT 3
G Relativer Pfad in Rich Client Anwendung AWT, Swing, JavaFX & SWT 4
G Fertiger Email Client als Bibliothek AWT, Swing, JavaFX & SWT 5
D Standard Email Client starten AWT, Swing, JavaFX & SWT 8
G JProgressBar + Thread + Client AWT, Swing, JavaFX & SWT 10
O Trennung Gui und Logik - Strukturierte Client Anwendung AWT, Swing, JavaFX & SWT 4
M Eine Datei auf den Apache Server hochladen - über das Menü im JavaProgramm AWT, Swing, JavaFX & SWT 7
L JavaFX JavaFX stürtzt durch einen Server#connect Exception AWT, Swing, JavaFX & SWT 3
J Server stellt sich hin AWT, Swing, JavaFX & SWT 13
A Applet Applet vom Web-Server aus aufrufen AWT, Swing, JavaFX & SWT 11
M AWT Datei auf server speichern und beschreiben AWT, Swing, JavaFX & SWT 7
N Server mit Thread und Statusbox AWT, Swing, JavaFX & SWT 3
H PopUp-Fenster in einer Java Server Faces Anwendung AWT, Swing, JavaFX & SWT 4
T Java Application auf X-Server ohne Windowmanager AWT, Swing, JavaFX & SWT 9
O Sicherung gegen nicht gefundenen DB Server AWT, Swing, JavaFX & SWT 2
bernd JTextPane und Server AWT, Swing, JavaFX & SWT 20
bernd UDP-Server AWT, Swing, JavaFX & SWT 3
L JavaFx Textformatierung mittels Datenbank und Funktion anpassen AWT, Swing, JavaFX & SWT 5
dtr84 JavaFX/OpenJFX mittels Apache Ivy einbinden (Java 11) AWT, Swing, JavaFX & SWT 18
P JavaFx - Progressbar - Füllen mittels mehreren Tasks AWT, Swing, JavaFX & SWT 0
G Bekomme ResultSet mittels ObservableList nicht ins TableView AWT, Swing, JavaFX & SWT 25
M Swing GUI mittels erben sowie variabler Dateninhalt AWT, Swing, JavaFX & SWT 1
JavaMachtMichFertig JavaFX Gui - Löschbutton in Tabelle anzeigen, die mittels MySQL Abfrage gefüllt wird AWT, Swing, JavaFX & SWT 5
A befüllen eines JTables mittels Methode AWT, Swing, JavaFX & SWT 10
L Ausgabe in JEditorPane mittels HTMLEditorKit zeigt auf bestimmten Systemen falsche Zeichen AWT, Swing, JavaFX & SWT 1
J Swing GUI-Einstellungen mittels Preferences AWT, Swing, JavaFX & SWT 2
J Rechtecke mittels getWidth AWT, Swing, JavaFX & SWT 1
M Repaint mittels Button richtig aufrufen klappt nicht AWT, Swing, JavaFX & SWT 1
T JFrame mittels Shortcut anzeigen AWT, Swing, JavaFX & SWT 2
A Swing Fenstergröße mittels Menü verändern AWT, Swing, JavaFX & SWT 3
U Swing JLabel bewegen mittels Thread AWT, Swing, JavaFX & SWT 3
R Swing Verschieben eines jButtons mittels MouseDragged AWT, Swing, JavaFX & SWT 4
N Wertanzeige mittels JSpinner AWT, Swing, JavaFX & SWT 3
T Daten mittels ComboBox in ein JTable adden AWT, Swing, JavaFX & SWT 7
Z Swing Mittels GUI Werte aus Property-File ändern AWT, Swing, JavaFX & SWT 5
C Swing Eine SWING-Anwendung mittels MVC AWT, Swing, JavaFX & SWT 4
M Liste mittels SwingWorker füllen klappt nicht AWT, Swing, JavaFX & SWT 10
B JLabel mittels Timer und setLocation verschieben AWT, Swing, JavaFX & SWT 3
B Grafiken in JLabel mittels html AWT, Swing, JavaFX & SWT 5
T HTML Seite neu laden mittels Applet AWT, Swing, JavaFX & SWT 2
G Zentrieren mittels setLocationRelativeTo(null);? AWT, Swing, JavaFX & SWT 14
Semox Setzen des Layout Managers mittels Override Parameter AWT, Swing, JavaFX & SWT 10
T JTable-Zelle mittels JFileChooser befüllen AWT, Swing, JavaFX & SWT 5
F JTextArea mittels Tab verlassen. AnyIdea? AWT, Swing, JavaFX & SWT 2
C Fragen zur Darstellung einer JTable mittels Renderer AWT, Swing, JavaFX & SWT 2
F Größenänderung mittels Maus - selbst implementieren? AWT, Swing, JavaFX & SWT 3
H Grafiken mittels Hashing vergleichen. aber wie? AWT, Swing, JavaFX & SWT 20
G Jtable mittels Liste füllen AWT, Swing, JavaFX & SWT 3
F Einlesen von text in textArea mittels for-schleife AWT, Swing, JavaFX & SWT 3
M JComboBox - Mittels FocusListener Event auslösen? AWT, Swing, JavaFX & SWT 4
B Vektorgrafik mittels Batik Tool anzeigen AWT, Swing, JavaFX & SWT 3
L Internationalisierung mittels ResourceBundle und Menu HotKey AWT, Swing, JavaFX & SWT 6
M Fenstertiteländerung mittels WindowAdapter AWT, Swing, JavaFX & SWT 5
H MouseEvent bei Drag & Drop (mittels TransferHandler) AWT, Swing, JavaFX & SWT 3
L Daten mittels ObjectInputStream ins JTable AWT, Swing, JavaFX & SWT 7

Ähnliche Java Themen

Neue Themen


Oben