# Punktezähler



## Punktetafel (26. Jun 2007)

hallo

ich habe folgendes Problem: ich würde gerne eine Punktetafel erstellen. Ich habe mir schon Gedanken bezüglich des Layouts gemacht und habe mich für ein sehr einfaches Modell ohne viel Schnick-Schnack entschieden.

Hier meine Idee: Ich wurde gerne zwei Fenster (quasi Displays) erstellen unter denen jeweils zwei Pfeile (hoch und runter) ODER ein "+" und ein "-" als Buttons zu finden sind. Ziel ist es, dass beim Anklicken der Buttons die Punktezahl auf dem "Display" steigt, so dass man immer den aktuellen Punktestand ablesen kann. 

Bei der Umsetzung dieser Idee bin ich auf Schwierigkeiten gestoßen, da ich relativ wenig Praxis in solchen Sachen habe.

Wäre nett, wenn ihr mir helfen könnten

MFG


----------



## The_S (26. Jun 2007)

Wobei genau hast du denn Probleme?


----------



## Punktetafel (26. Jun 2007)

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

public class punkte extends Applet{
    int lehrer;
    int schueler;
    Label l1,l2;
    TextField tf1,tf2;
    Button b1,b2,b3,b4;

    public void init (){
        l1=new Label ("Lehrer");
        l2=new Label ("Schüler");
        tf1=new TextField(10);
        tf2=new TextField(10);
        b1= new Button("+");
        b2=new Button("-");
        b3=new Button("+");
        b4=new Button("-");
        lehrer = 0;
        schueler= 0;
        setLayout(new GridLayout(4,2,9,5));
        add(l1); add(l2);
        add(tf1); add(tf2);
        add(b1); add(b3);
        add(b2); add(b4);

        tf1.setText(""+lehrer);
        tf2.setText(""+schueler);

        b1.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent e){
                lehrer=lehrer+1;
                tf1.setText(""+lehrer);
            }
        });
        b2.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent e){
                lehrer=lehrer-1;
                tf1.setText(""+lehrer);
            }
        });
        b3.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent e){
                schueler=schueler+1;
                tf2.setText(""+schueler);
            }
        });
        b4.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent e){
                schueler=schueler-1;
                tf2.setText(""+schueler);
            }
        });
    }
}



=> so weit bin ich... ich würde aber gerne, dass die buttons kleiner werden; die Schrift in den "Displays" größer und zentriert (also quasi in der Mitte) und die Überschriften größer und zentriert werden


----------



## The_S (26. Jun 2007)

- kleiner Buttons wirste ohne Wechsel des Layouts nicht hinbekommen
- du kannst die Schrift mit setFont verändern
- setAlignment kannst du die Position des Textes verändern
- nächstes mal bitte Code-Tags verwenden


----------



## Punktetafel (26. Jun 2007)

herzlichen dank


----------



## Punktetafel (26. Jun 2007)

wenn du Zeit haben solltest... bekommst du eine "bessere" Version hin... das alles ist für einen Abi-Ball und soll per Beamer an die Wand projiziert werden...

wäre also gut wenn es einigermaßen gut aussehen würde

ich bin mit dem, was ich vorhin geposte habe schon am Ende meines Lateins

wäre sehr nett 

MFG


----------



## Jonnsn (26. Jun 2007)

in der Art?


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

public class punkte extends Applet {
	int lehrer;

	int schueler;

	Label l1, l2;

	TextField tf1, tf2;

	Button b1, b2, b3, b4;

	public void init() {
		setSize(240,200);
		setLayout(null);
		l1 = new Label("Lehrer");
		l1.setBounds(10,10,100,10);
		l1.setAlignment(1);
		l2 = new Label("Schüler");
		l2.setBounds(120,10,100,10);
		l2.setAlignment(1);
		tf1 = new TextField(10);
		tf1.setFont(new Font("Arial",Font.BOLD,40));
		tf1.setBounds(10,40,100,50);
		tf2 = new TextField(10);
		tf2.setBounds(120,40,100,50);
		tf2.setFont(new Font("Arial",Font.BOLD,40));
		b1 = new Button("+");
		b1.setBounds(50,100,30,30);
		b2 = new Button("-");
		b2.setBounds(50,160,30,30);
		b3 = new Button("+");
		b3.setBounds(150,100,30,30);
		b4 = new Button("-");
		b4.setBounds(150,160,30,30);
		lehrer = 0;
		schueler = 0;
		add(l1);
		add(l2);
		add(tf1);
		add(tf2);
		add(b1);
		add(b3);
		add(b2);
		add(b4);

		tf1.setText("" + lehrer);
		tf2.setText("" + schueler);

		b1.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				lehrer = lehrer + 1;
				tf1.setText("" + lehrer);
			}
		});
		b2.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				lehrer = lehrer - 1;
				tf1.setText("" + lehrer);
			}
		});
		b3.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				schueler = schueler + 1;
				tf2.setText("" + schueler);
			}
		});
		b4.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				schueler = schueler - 1;
				tf2.setText("" + schueler);
			}
		});
	}
}
```


----------



## merlin2 (26. Jun 2007)

Punktetafel hat gesagt.:
			
		

> wäre also gut wenn es einigermaßen gut aussehen würde


Ich finde, dass Swing-Komponenten besser aussehen als AWT-Komponenten.


----------



## Punktetafel (26. Jun 2007)

boa vielen dank... das ist perfekt... die Überschrift "Lehrer" und "schüler" ist zwar ein wenig klein.. aber damit müsste ich zurecht kommen

wirkllich du hast mir sehr geholfen

nochmals danke


----------



## Punktetafel (26. Jun 2007)

ahhh... ich hab noch ein Problem... und zwar soll das Applet per Beamer an die WAnd projiziert werden, so dass jeder den Punktestand überwachen kann...

jetzt lässt sich das Applet aber nicht über den ganzen Bildschirm abbilden... wie kann ich das beheben...

wenn ihr noch Geduld und Durchhaltevermögen besitzt, um mir diese Frage zu beantworten, wäre ich euch sehr verbunden

MFG


----------



## Jonnsn (26. Jun 2007)

Anpassung der schriftgröße der Labels:

```
l1 = new Label("Lehrer");
      l1.setBounds(10,10,100,20);
      l1.setAlignment(1);
      l1.setFont(new Font("Arial",Font.BOLD,20));
      l2 = new Label("Schüler");
      l2.setBounds(120,10,100,20);
      l2.setAlignment(1);
      l2.setFont(new Font("Arial",Font.BOLD,20));
```

Das Applet größer kriegst du wenn du bei 
	
	
	
	





```
setSize(240,200);
```
erste Zahl = Breite
zweite Zahl = Höhe
die werte änderst - allerdings bezweifle ich dass das das ist was du willst  :? 
Ein Appelt einfach größer abbilden geht meines Wissens nach nicht...
höchstens eben alle Teile entsprechend vergrößern - das geht natürlich


----------



## Guest (26. Jun 2007)

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

public class punkte2 extends Applet { 
   int lehrer; 

   int schueler; 

   Label l1, l2; 

   TextField tf1, tf2; 

   Button b1, b2, b3, b4; 

   public void init() { 
      setSize(800,600);
      setFont(new Font("Arial",Font.BOLD,40));
      setLayout(null); 
      l1 = new Label("Lehrer"); 
      l1.setBounds(75,75,200,50); 
      l1.setAlignment(1); 
      l2 = new Label("Schüler"); 
      l2.setBounds(485,75,200,50); 
      l2.setAlignment(1); 
      tf1 = new TextField(10); 
      tf1.setFont(new Font("Arial",Font.BOLD,120)); 
      tf1.setBounds(100,140,150,150); 
      tf2 = new TextField(10); 
      tf2.setBounds(510,140,150,150); 
      tf2.setFont(new Font("Arial",Font.BOLD,120)); 
      b1 = new Button("+"); 
      b1.setBounds(150,370,50,50); 
      b2 = new Button("-"); 
      b2.setBounds(150,430,50,50); 
      b3 = new Button("+"); 
      b3.setBounds(560,370,50,50); 
      b4 = new Button("-"); 
      b4.setBounds(560,430,50,50); 
      lehrer = 0; 
      schueler = 0; 
      add(l1); 
      add(l2); 
      add(tf1); 
      add(tf2); 
      add(b1); 
      add(b3); 
      add(b2); 
      add(b4); 

      tf1.setText("" + lehrer); 
      tf2.setText("" + schueler); 

      b1.addActionListener(new ActionListener() { 
         public void actionPerformed(ActionEvent e) { 
            lehrer = lehrer + 1; 
            tf1.setText("" + lehrer); 
         } 
      }); 
      b2.addActionListener(new ActionListener() { 
         public void actionPerformed(ActionEvent e) { 
            lehrer = lehrer - 1; 
            tf1.setText("" + lehrer); 
         } 
      }); 
      b3.addActionListener(new ActionListener() { 
         public void actionPerformed(ActionEvent e) { 
            schueler = schueler + 1; 
            tf2.setText("" + schueler); 
         } 
      }); 
      b4.addActionListener(new ActionListener() { 
         public void actionPerformed(ActionEvent e) { 
            schueler = schueler - 1; 
            tf2.setText("" + schueler); 
         } 
      }); 
   } 
}
```



das ist schon mal größer... muss noch bissle probieren ... irgendwann ist es so wie ichs brauch 

danke...


----------



## Jonnsn (26. Jun 2007)

eben ... so geht es natürlich.



			
				merlin2 hat gesagt.:
			
		

> Punktetafel hat gesagt.:
> 
> 
> 
> ...


Das wäre übrigens die Swing Variante (noch kleines Format!):

```
import java.applet.*;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;

public class punkte extends Applet {
   int lehrer;

   int schueler;

   JLabel l1, l2;

   JTextField tf1, tf2;

   JButton b1, b2, b3, b4;

   public void init() {
      setSize(240,200);
      setLayout(null);
      l1 = new JLabel("Lehrer",JLabel.CENTER);
      l1.setBounds(10,10,100,20);
      l1.setFont(new Font("Arial",Font.BOLD,20));
      l2 = new JLabel("Schüler",JLabel.CENTER);
      l2.setBounds(120,10,100,20);
      l2.setFont(new Font("Arial",Font.BOLD,20));
      tf1 = new JTextField(10);
      tf1.setFont(new Font("Arial",Font.BOLD,40));
      tf1.setBounds(10,40,100,50);
      tf1.setAlignmentX(1);
      tf1.setHorizontalAlignment(JTextField.CENTER);
      tf2 = new JTextField(10);
      tf2.setBounds(120,40,100,50);
      tf2.setFont(new Font("Arial",Font.BOLD,40));
      tf2.setHorizontalAlignment(JTextField.CENTER);
      b1 = new JButton("+");
      b1.setBounds(40,100,45,30);
      b2 = new JButton("-");
      b2.setBounds(40,160,45,30);
      b3 = new JButton("+");
      b3.setBounds(150,100,45,30);
      b4 = new JButton("-");
      b4.setBounds(150,160,45,30);
      lehrer = 0;
      schueler = 0;
      add(l1);
      add(l2);
      add(tf1);
      add(tf2);
      add(b1);
      add(b3);
      add(b2);
      add(b4);

      tf1.setText("" + lehrer);
      tf2.setText("" + schueler);

      b1.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent e) {
            lehrer = lehrer + 1;
            tf1.setText("" + lehrer);
         }
      });
      b2.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent e) {
            lehrer = lehrer - 1;
            tf1.setText("" + lehrer);
         }
      });
      b3.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent e) {
            schueler = schueler + 1;
            tf2.setText("" + schueler);
         }
      });
      b4.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent e) {
            schueler = schueler - 1;
            tf2.setText("" + schueler);
         }
      });
   }
}
```


----------



## Punktetafel (26. Jun 2007)

sieht wirklich gut aus...

gruß


----------



## Jonnsn (26. Jun 2007)

wobei mir eben noch auffiel dass man dann auch gleich ein JApplet daraus machen könnte !?!


----------



## Punktetafel (26. Jun 2007)

????


----------



## Jonnsn (26. Jun 2007)

anaja ich kenn die Vorteil von JApplet noch nciht so recht - aber du kannst gerne einfach mal aus dem extends Applet ein extends JApplet machen ;-)


----------



## Punktetafel (26. Jun 2007)

das was jetzt rausgekommen ist... ist um ein vielfaches besser als ich es mir jemals erhofft habe...


----------



## The_S (27. Jun 2007)

Wenn du es über den Bildschirm ausbreiten möchtest, warum machst du dann kein JFrame draus, sondern bindest es ungünstigerweiße als Applet in eine Webiste ein? Und was mir auch nicht so ganz in den sinn kommen will, ist die Tatsache, dass es ja hier scheinbar um eine Präsentation mit statischem Inhalt geht. Warum verwendest du da dann nicht einfach PowerPoint oder eine ähnliche Präsentationssoftware ???:L

@Jonnsn

der Vorteil von JApplet ist, dass es Swing ist und kein AWT


----------



## Jonnsn (27. Jun 2007)

Hobbit_Im_Blutrausch hat gesagt.:
			
		

> Wenn du es über den Bildschirm ausbreiten möchtest, warum machst du dann kein JFrame draus, sondern bindest es ungünstigerweiße als Applet in eine Webiste ein? Und was mir auch nicht so ganz in den sinn kommen will, ist die Tatsache, dass es ja hier scheinbar um eine Präsentation mit statischem Inhalt geht. Warum verwendest du da dann nicht einfach PowerPoint oder eine ähnliche Präsentationssoftware ???:L


Zugegebenen - das hab ich mich auch gefagt :lol: 


			
				Hobbit_Im_Blutrausch hat gesagt.:
			
		

> @Jonnsn
> 
> der Vorteil von JApplet ist, dass es Swing ist und kein AWT


Aha....     Klasse. Dacht ich mir doch fast...


----------



## Punktetafel (28. Jun 2007)

Hey jungs

folgendes.. habt ihr ne ahnung wie man in den punktestand (erste version) ne digitale uhr einbringen könnte (also eine stopuhr mit drei knöpfen "reset" "start" und "stop"

das wäre mal interessant

liege grüße


----------



## Punktetafel (28. Jun 2007)

und wie soll man das bitte in eine powerpoint präsentation einbetten... ich bin leicht verwirrt...


----------



## The_S (29. Jun 2007)

Du sollst das nicht in eine PowerPoint Präsentation einbetten, sondern wenn es einzig und allein der Präsentation von Sachverhalten und/oder Daten nutzt (wovon ich aufgrund des Thread-Verlaufs stark ausgehe), dann sollst du das Programm weglassen und gleich eine Präsentation machen.

Ja, das geht. Kannst die paint-Methode einer Componente überschreiben und dort die Uhr zeichnen. Die Klasse GregorianCalendar hilft dir bei der Zeit ermittlung. Außerdem sollte das ganze dann in einem seperaten Thread laufen, um die GUI nicht zu blockieren. Für den Stop, Start und Reste-Button kannst du ganz normale Buttons verwenden.

Erwarte aber nicht, dass dir jemand soetwas hier programmiert  .


----------



## merlin2 (29. Jun 2007)

Hobbit_Im_Blutrausch hat gesagt.:
			
		

> Für den Stop, Start und Reste-Button kannst du ganz normale Buttons verwenden


*J*Buttons.


----------



## The_S (29. Jun 2007)

Kniebohrer ...


----------



## merlin2 (29. Jun 2007)

Buttons ohne 'J' *sind* abnormal. Diese ganzen AWT-Komponenten sind Mist. Und wenn punktetafel dann tatsächlich Buttons(AWT) nimmt, kommt bei der derzeitigen Swing-Fassung seines Programms wohl nichts Gutes raus.


----------



## The_S (2. Jul 2007)

Schonmal dran gedacht, dass man auch von "Knöpfen" aka "Buttons" im normalen Sinne reden kann, OHNE gleich bezug auf eine Klasse zu nehmen?


----------



## merlin2 (2. Jul 2007)

Mich stört nur das "normal", da dies schon wieder eine spezielle Art Button bezeichnet.


----------



## The_S (3. Jul 2007)

... gut, ich rede in Zukunft von "Knöpfen" und "Auswahlbestätigungs-Einheiten" wenn ich einen Button meine, aber keine Klasse direkt ansprechen will :roll:

Soll ich jetzt noch meine Beiträge dementsprechend alle anpassen, damit unser Zauberer zufrieden ist?


----------



## merlin2 (3. Jul 2007)

Anscheinend verstehst du mich (absichtlich?) falsch.  
Wenn du aber "*normale* Buttons" schreibst, nachdem bereits von AWT auf Swing gewechselt wurde, so *könnte* das tatsächlich (absichtlich) missverstanden werden.
Den Namen "Auswahlbestätigungs-Einheiten" find ich gut.


----------



## Jango (3. Jul 2007)

merlin2 hat gesagt.:
			
		

> Anscheinend verstehst du mich (absichtlich?) falsch.
> Wenn du aber "*normale* Buttons" schreibst, nachdem bereits von AWT auf Swing gewechselt wurde, so *könnte* das tatsächlich (absichtlich) missverstanden werden.
> Den Namen "Auswahlbestätigungs-Einheiten" find ich gut.



Korinthenkacker  :roll:


----------



## merlin2 (3. Jul 2007)

Danke für das Kompliment!


----------



## Leroy42 (3. Jul 2007)

merlin2 hat gesagt.:
			
		

> Danke für das Kompliment!



Nun ja, wenn du das als Kompliment empfindest, wissen
wir ja, wie du dich selbst definierst!


----------



## The_S (4. Jul 2007)

merlin2 hat gesagt.:
			
		

> Anscheinend verstehst du mich (absichtlich?) falsch.
> Wenn du aber "*normale* Buttons" schreibst, nachdem bereits von AWT auf Swing gewechselt wurde, so *könnte* das tatsächlich (absichtlich) missverstanden werden.
> Den Namen "Auswahlbestätigungs-Einheiten" find ich gut.



Ich verstehe dich nicht absichtlich falsch. Man kann ja darauf hinweisen, dass es sowohl JButtons und Buttons gibt. Aber bei einem mal sollte es dann auch gut sein und man muss nicht noch großartig darauf rumreiten. Zumal ich ja nichts dagegen gesagt hab  .


----------

