# DarstellungsHilfe bei GUI



## Daphko (4. Mai 2008)

Hallo alle zusammen,

Ich lern gerade Java im Studium, leider sind wir noch ned so weit dass ich genau wüsste wie man GUI-Programmiert!

Deswegen hab ich mal ne Frage, auch weil ich keine Tutorials dazu gefunden habe.

Ich wollte bissel so einen kleinen FM machen, aber wirklich nix besonderes! Hab einmal einen kleinen Code in Applet und in JFrame geschrieben!

Im Applet hat man den Vorteil das man die Timeout Zeit des Threads bestimmen kann, ist dann cool das dann die Zeit nicht so schnell verlauft!

So wie kann ich alles besser machen? Die Schrift vergrößern? Organisierter? Kann ich im Applet auch OOP benutzen?
Welche Methoden gibt es damit das Aussehen man besser gestalten kann?




```
import java.awt.*;
import java.awt.event.*;

public class FM extends Frame
{
  
    String Team1 = "FC Bayern München";
    String Team2 = "VfL Bochum";
    static int ToreTeam1, ToreTeam2;
    static int i;
    static String Team1Tore = "0", Team2Tore = "0";
    static String SpielZeit = "Spielzeit";
    static String Zeit = "0";
    
  public static void main( String[] args )
  {
    MyAwtFrame frm = new MyAwtFrame();
    frm.setTitle( "My AWT Frame" );
    frm.setSize( 400, 300 );
    frm.setVisible( true );
    
    for(i=0; i<=90; i++)
        {
           int Zufall = (int)(Math.random()*100);
            if(Zufall == 1)
            {
                ToreTeam1++;
                Team1Tore = Integer.toString(ToreTeam1);
            }
            if(Zufall == 9)
            {
                ToreTeam2++;
                Team2Tore = Integer.toString(ToreTeam2);
            }
            Zeit = Integer.toString(i);

        }
  }

  public MyAwtFrame()
  {
    addWindowListener(
      new WindowAdapter() {
        public void windowClosing( WindowEvent ev ) {
          dispose();
          System.exit( 0 ); } } );
  }

  public  void paint( Graphics g )
  {
        g.setColor  (Color.red);

        g.drawString(Team1, 50, 50 );
        g.drawString(Team2, 180, 50 );
        g.drawString(Team1Tore, 50, 75);
        g.drawString(Team2Tore, 180, 75);
        g.drawString(SpielZeit, 50, 25);
        g.drawString(Zeit, 180, 25);
  }
  
}


Dann noch mal Applet:


import java.applet.*;
import java.awt.*;

public class FM extends Applet implements Runnable
{
    String Team1 = "FC Bayern München";
    String Team2 = "VfL Bochum";
    int ToreTeam1, ToreTeam2, i=0;
    String Team1Tore = "0", Team2Tore = "0";
    String SpielZeit = "Spielzeit";
    String Zeit = "0";
    
    

    public void init()
    {
        setBackground (Color.blue);
    }

    public void start ()
    {
        // Schaffen eines neuen Threads, in dem das Spiel läuft
        Thread th = new Thread (this);
        // Starten des Threads
        th.start ();
    }

    public void stop()
    {

    }

    public void destroy()
    {

    }

    public void run ()
    {
        // Erniedrigen der ThreadPriority um zeichnen zu erleichtern
        Thread.currentThread().setPriority(Thread.MIN_PRIORITY);

        // Solange true ist läuft der Thread weiter
        for(i=0; i<=90; i++)
        {
           int Zufall = (int)(Math.random()*100);
            if(Zufall == 1)
            {
                ToreTeam1++;
                Team1Tore = Integer.toString(ToreTeam1);
            }
            if(Zufall == 9)
            {
                ToreTeam2++;
                Team2Tore = Integer.toString(ToreTeam2);
            }
            Zeit = Integer.toString(i);
            // Neuzeichnen des Applets
            repaint();

            try
            {
                // Stoppen des Threads für in Klammern angegebene Millisekunden
                Thread.sleep (150);
            }
            catch (InterruptedException ex)
            {
                // do nothing
            }

            // Zurücksetzen der ThreadPriority auf Maximalwert
            Thread.currentThread().setPriority(Thread.MAX_PRIORITY);
        }
    }


    public void paint (Graphics g)
    {
        g.setColor  (Color.red);

        g.drawString(Team1, 50, 50 );
        g.drawString(Team2, 180, 50 );
        g.drawString(Team1Tore, 50, 75);
        g.drawString(Team2Tore, 180, 75);
        g.drawString(SpielZeit, 50, 25);
        g.drawString(Zeit, 180, 25);
    }

}
```
[/code]


----------



## pyr0t0n (4. Mai 2008)

Daphko hat gesagt.:
			
		

> Die Schrift vergrößern?



Schrift vergrößern oder ne andere Schriftart benutzen kannst du mit

```
g.setFont(new Font(Font.DIALOG, Font.BOLD, 35));
```

g ist halt das graphics objekt aber da kennste ja sicherlich ^^




			
				Daphko hat gesagt.:
			
		

> Kann ich im Applet auch OOP benutzen?



Ja du kannst im Applet genauso OOP programmieren wie in Normalen Anwendungen auch.


----------



## foobar (4. Mai 2008)

Was ist denn ein FM?


----------



## Guest (4. Mai 2008)

FM = Fussball Manager 

Ja ok dann weiss ich bescheid! 

Wie kann ich den bei JavaAnwendung ein kleines timeout erzeugen wie im Applet man das machen kann ? 
Damit zum beispiel die forschleife nicht so schnell durchlauft ?


----------



## Lulumann6 (4. Mai 2008)

eine kleine anmerkung, hier solltest du ein "else if" benutzen, weil wenn zufall schon 1 ist brauchst du nicht noch überprüfen ob es auch 9 ist.

```
if(Zufall == 1) 
            { 
                ToreTeam1++; 
                Team1Tore = Integer.toString(ToreTeam1); 
            } 
            else if(Zufall == 9) 
            { 
                ToreTeam2++; 
                Team2Tore = Integer.toString(ToreTeam2); 
            }
```



> Wie kann ich den bei JavaAnwendung ein kleines timeout erzeugen wie im Applet man das machen kann ?
> Damit zum beispiel die forschleife nicht so schnell durchlauft ?


genaus so, auch mit Thread.sleep(150)


----------

