# Focus Problem



## ET5F1 (1. Dez 2006)

Hallo ich mal wieder.

Kleines Problem und zwar

Starte ein Programm über ein Button.

Wenn ich mit der Mouse nicht vom Button weg gehe kann ich nichts eingeben.

Erst wenn ich die Mouse vom Button wegnehme geht es.

Wer kann helfen?


----------



## The_S (1. Dez 2006)

Naja, wenn eine Componente keinen Fokus hat, dann kann sie auch nicht auf Eingaben reagieren. Logisch oder? Definier mal "weg gehen" und "Maus vom Button wegnehmen". Evtl. hilft dir die Methode requestFocusInWindow() weiter.


----------



## ET5F1 (1. Dez 2006)

package Konzentrationstest;

import Tauglichkeitstester.ControlPanel;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;


public class ZeichenPanelGUIKonzentration extends JFrame {
  // Anfang Variablen
  private ZeichenPanel zeichenFlaeche = new ZeichenPanel(200,200);
  private JButton jButton1 = new JButton();
  private JButton jButton2 = new JButton();
  private JButton jButton3 = new JButton();
  protected TauglichkeitsTest tTest = new KonzentrationsTest(350, 240);;
  //private JTextField jTextField1 = new JTextField();
  private JScrollPane jScrollPanejTextArea1 = new JScrollPane();
  private JTextArea jTextArea1 = new JTextArea("");
  private JButton jbutton4 = new JButton();
  private JButton jbutton5 = new JButton();
  private JLabel jlb1 = new JLabel();
  private JLabel jlb2 = new JLabel();
  // Ende Variablen

  //Eine private Klasse
  private class TauglichkeitsTestKeyAdapter extends KeyAdapter
    {
        public void keyTyped(KeyEvent keyevent)
        {
            if(tTest instanceof KonzentrationsTest)
            {
                char c = keyevent.getKeyChar();
                if(((KonzentrationsTest)tTest).istAktiv() && c == ((KonzentrationsTest)tTest).gibZiffer())
                {
                    tTest.stoppen();
                    zeichenFlaeche.stop();
                    //jTextField1.setText(tTest.holeErgebnis());
                    jlb1.setText(tTest.holeErgebnis());

                    jButton1.setEnabled(false);
                    jButton2.setEnabled(false);
                    jButton3.setEnabled(true);
                }
            }
        }
        private TauglichkeitsTestKeyAdapter()
        {
        }

    }

  public ZeichenPanelGUIKonzentration (String title) {
    // Frame-Initialisierung
    super (title);
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    this.addKeyListener(new TauglichkeitsTestKeyAdapter());
        addMouseListener(new MouseAdapter() {

            public void mouseEntered(MouseEvent mouseevent)
            {
                requestFocus();
            }

        });
    int frameWidth = 800;
    int frameHeight = 600;
    setSize(frameWidth, frameHeight);
    Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
    int x = (d.width - getSize().width) / 2;
    int y = (d.height - getSize().height) / 2 ;
    setLocation(x, y);
    Container cp = getContentPane();
    cp.setLayout(null);

    // Anfang Komponenten

    zeichenFlaeche.setBounds(225, 80, 350, 240);
    cp.add(zeichenFlaeche);
    zeichenFlaeche.setTauglichkeitsTest(tTest);


    jButton1.setBounds(30, 80, 130, 40);
    jButton1.setText("Start");
    jButton1.setBorder(BorderFactory.createLineBorder(Color.blue, 2));
    jButton1.setFont(new Font("MS Sant Serif", 1, 14));
    cp.add(jButton1);
    jButton1.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        jButton1ActionPerformed(evt);
      }
    });

    jButton2.setBounds(30, 180, 130, 40);
    jButton2.setText("Stop");
    jButton2.setBorder(BorderFactory.createLineBorder(Color.blue, 2));
    jButton2.setFont(new Font("MS Sant Serif", 1, 14));
    cp.add(jButton2);
    jButton2.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        jButton2ActionPerformed(evt);
      }
    });

    jButton3.setBounds(30, 280, 130, 40);
    jButton3.setText("Neu");
    jButton3.setBorder(BorderFactory.createLineBorder(Color.blue, 2));
    jButton3.setFont(new Font("MS Sant Serif", 1, 14));
    cp.add(jButton3);
    jButton3.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        jButton3ActionPerformed(evt);
      }
    });

    jlb1.setBounds(620, 163, 150, 75);
    jlb1.setText("Reaktionszeit");
    jlb1.setFont(new Font("MS Sans Serif", 1, 20));
    jlb1.setForeground(Color.red);
    jlb1.setBorder(BorderFactory.createLineBorder(Color.black, 5));
    jlb1.setHorizontalAlignment(SwingConstants.CENTER);
    jlb1.setHorizontalTextPosition(SwingConstants.CENTER);
    cp.add(jlb1);


    //jTextField1.setBounds(0, 40, 281, 24);
    //jTextField1.setText("Reaktionszeit");
    //cp.add(jTextField1);


    jScrollPanejTextArea1.setBounds(225, 400, 350, 100);
    jTextArea1.setText("(Strings)");
    jTextArea1.setForeground(Color.black);
    jTextArea1.setFont(new Font("MS Sans Serif", 1, 11));
    jTextArea1.setBackground(Color.LIGHT_GRAY);
    jTextArea1.setEditable(false);
    jScrollPanejTextArea1.setViewportView(jTextArea1);
    jTextArea1.setText(tTest.zeigeHilfe());
    cp.add(jScrollPanejTextArea1);


    jbutton4.setBounds(625, 80, 130, 40);
    jbutton4.setText("Hauptmenü");
    jbutton4.setBorder(BorderFactory.createLineBorder(Color.blue, 2));
    jbutton4.setHorizontalAlignment(SwingConstants.CENTER);
    jbutton4.setHorizontalTextPosition(SwingConstants.CENTER);
    jbutton4.setFont(new Font("MS Sans Serif", 1, 14));
    cp.add(jbutton4);
    jbutton4.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        jbutton4ActionPerformed(evt); } });

    jbutton5.setBounds(625, 280, 130, 40);
    jbutton5.setText("Highscore");
    jbutton5.setBorder(BorderFactory.createLineBorder(Color.blue, 2));
    jbutton5.setHorizontalAlignment(SwingConstants.CENTER);
    jbutton5.setHorizontalTextPosition(SwingConstants.CENTER);
    jbutton5.setFont(new Font("MS Sans Serif", 1, 14));
    cp.add(jbutton5);
    jbutton5.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        jbutton5ActionPerformed(evt); } });


    jlb2.setBounds(225, 20, 350, 50);
    jlb2.setText("Konzentrationstest");
    jlb2.setHorizontalAlignment(SwingConstants.CENTER);
    jlb2.setHorizontalTextPosition(SwingConstants.CENTER);
    jlb2.setFont(new Font("MS Sans Serif", 1, 24));
    cp.add(jlb2);
    // Ende Komponenten

    setVisible(true);
  }

  // Anfang Ereignisprozeduren
  public void paint(Graphics g)
  {
    super.paintComponents(g);
  }
  //start
  public void jButton1ActionPerformed(ActionEvent evt) {
     jButton1.setEnabled(false);
                if(tTest instanceof KonzentrationsTest){
                    jButton1.setEnabled(false);
                    jButton2.setEnabled(true);
                    jButton3.setEnabled(false);
                }
                zeichenFlaeche.start();
                tTest.starten();
  }
  //stop
  public void jButton2ActionPerformed(ActionEvent evt) {
     tTest.stoppen();
                zeichenFlaeche.stop();
                //jTextField1.setText(tTest.holeErgebnis());
                jButton1.setEnabled(false);
                jButton2.setEnabled(false);
                jButton3.setEnabled(true);
                //jTextField1.setText("***Abbruch***");
  }
  //neu
  public void jButton3ActionPerformed(ActionEvent evt) {
     if(tTest instanceof KonzentrationsTest){
        tTest = new KonzentrationsTest(200, 200);

     }
     reset(tTest);
     zeichenFlaeche.repaint();
  }

  //Hauptmenü

  public void jbutton4ActionPerformed(ActionEvent evt){
    this.setVisible(false);
    ControlPanel.main(null);
  }

  private void reset(TauglichkeitsTest tauglichkeitstest)
  {
      jButton1.setEnabled(true);
      jButton2.setEnabled(false);
      jButton3.setEnabled(false);
      zeichenFlaeche.setTauglichkeitsTest(tauglichkeitstest);
      jTextArea1.setText(tauglichkeitstest.zeigeHilfe());
      jlb1.setText("Reaktionszeit ");
      //jTextField1.setText(" ");
  }
  public boolean isFocusablejButton1()
  {

      jButton1.requestFocus(false);
      return false;
  }

//  public void jbutton4ActionPerformed(ActionEvent evt) {
//
//  }
  public void jbutton5ActionPerformed(ActionEvent evt) {

  }
  // Ende Ereignisprozeduren

  public static void main (String[] args) {
    new ZeichenPanelGUIKonzentration("Tauglichkeitstest");
  }
}


Das ist das programm.einfach mal ausprobieren dann versteht man es besser.


----------



## The_S (1. Dez 2006)

1. Verwende Code-Tags
2. das ControlPanel fehlt


----------



## ET5F1 (1. Dez 2006)

Verstehe ich nicht wo soll das hin und was macht das dann?

Tut mir leid bin noch nicht lange dabei.
Sorry.
Aber ein bisschen genauer.


----------



## The_S (1. Dez 2006)

Mir fehlt der Source-Code für das Tauglichkeitstester.ControlPanel. Ohne den kann ich das nicht testen. Und du solltest der Übersichtlichkeit halber Code-Tags verwenden.


----------



## ET5F1 (1. Dez 2006)

Ach ja sorry hier ist er.package Konzentrationstest;

import Tauglichkeitstester.ControlPanel;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;


public class ZeichenPanelGUIKonzentration extends JFrame {
  // Anfang Variablen
  private ZeichenPanel zeichenFlaeche = new ZeichenPanel(200,200);
  private JButton jButton1 = new JButton();
  private JButton jButton2 = new JButton();
  private JButton jButton3 = new JButton();
  protected TauglichkeitsTest tTest = new KonzentrationsTest(350, 240);;
  //private JTextField jTextField1 = new JTextField();
  private JScrollPane jScrollPanejTextArea1 = new JScrollPane();
  private JTextArea jTextArea1 = new JTextArea("");
  private JButton jbutton4 = new JButton();
  private JButton jbutton5 = new JButton();
  private JLabel jlb1 = new JLabel();
  private JLabel jlb2 = new JLabel();
  // Ende Variablen

  //Eine private Klasse
  private class TauglichkeitsTestKeyAdapter extends KeyAdapter
    {
        public void keyTyped(KeyEvent keyevent)
        {
            if(tTest instanceof KonzentrationsTest)
            {
                char c = keyevent.getKeyChar();
                if(((KonzentrationsTest)tTest).istAktiv() && c == ((KonzentrationsTest)tTest).gibZiffer())
                {
                    tTest.stoppen();
                    zeichenFlaeche.stop();
                    //jTextField1.setText(tTest.holeErgebnis());
                    jlb1.setText(tTest.holeErgebnis());

                    jButton1.setEnabled(false);
                    jButton2.setEnabled(false);
                    jButton3.setEnabled(true);
                }
            }
        }
        private TauglichkeitsTestKeyAdapter()
        {
        }

    }

  public ZeichenPanelGUIKonzentration (String title) {
    // Frame-Initialisierung
    super (title);
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    this.addKeyListener(new TauglichkeitsTestKeyAdapter());
        addMouseListener(new MouseAdapter() {

            public void mouseEntered(MouseEvent mouseevent)
            {
                requestFocus();
            }

        });
    int frameWidth = 800;
    int frameHeight = 600;
    setSize(frameWidth, frameHeight);
    Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
    int x = (d.width - getSize().width) / 2;
    int y = (d.height - getSize().height) / 2 ;
    setLocation(x, y);
    Container cp = getContentPane();
    cp.setLayout(null);

    // Anfang Komponenten

    zeichenFlaeche.setBounds(225, 80, 350, 240);
    cp.add(zeichenFlaeche);
    zeichenFlaeche.setTauglichkeitsTest(tTest);


    jButton1.setBounds(30, 80, 130, 40);
    jButton1.setText("Start");
    jButton1.setBorder(BorderFactory.createLineBorder(Color.blue, 2));
    jButton1.setFont(new Font("MS Sant Serif", 1, 14));
    cp.add(jButton1);
    jButton1.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        jButton1ActionPerformed(evt);
      }
    });

    jButton2.setBounds(30, 180, 130, 40);
    jButton2.setText("Stop");
    jButton2.setBorder(BorderFactory.createLineBorder(Color.blue, 2));
    jButton2.setFont(new Font("MS Sant Serif", 1, 14));
    cp.add(jButton2);
    jButton2.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        jButton2ActionPerformed(evt);
      }
    });

    jButton3.setBounds(30, 280, 130, 40);
    jButton3.setText("Neu");
    jButton3.setBorder(BorderFactory.createLineBorder(Color.blue, 2));
    jButton3.setFont(new Font("MS Sant Serif", 1, 14));
    cp.add(jButton3);
    jButton3.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        jButton3ActionPerformed(evt);
      }
    });

    jlb1.setBounds(620, 163, 150, 75);
    jlb1.setText("Reaktionszeit");
    jlb1.setFont(new Font("MS Sans Serif", 1, 20));
    jlb1.setForeground(Color.red);
    jlb1.setBorder(BorderFactory.createLineBorder(Color.black, 5));
    jlb1.setHorizontalAlignment(SwingConstants.CENTER);
    jlb1.setHorizontalTextPosition(SwingConstants.CENTER);
    cp.add(jlb1);


    //jTextField1.setBounds(0, 40, 281, 24);
    //jTextField1.setText("Reaktionszeit");
    //cp.add(jTextField1);


    jScrollPanejTextArea1.setBounds(225, 400, 350, 100);
    jTextArea1.setText("(Strings)");
    jTextArea1.setForeground(Color.black);
    jTextArea1.setFont(new Font("MS Sans Serif", 1, 11));
    jTextArea1.setBackground(Color.LIGHT_GRAY);
    jTextArea1.setEditable(false);
    jScrollPanejTextArea1.setViewportView(jTextArea1);
    jTextArea1.setText(tTest.zeigeHilfe());
    cp.add(jScrollPanejTextArea1);


    jbutton4.setBounds(625, 80, 130, 40);
    jbutton4.setText("Hauptmenü");
    jbutton4.setBorder(BorderFactory.createLineBorder(Color.blue, 2));
    jbutton4.setHorizontalAlignment(SwingConstants.CENTER);
    jbutton4.setHorizontalTextPosition(SwingConstants.CENTER);
    jbutton4.setFont(new Font("MS Sans Serif", 1, 14));
    cp.add(jbutton4);
    jbutton4.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        jbutton4ActionPerformed(evt); } });

    jbutton5.setBounds(625, 280, 130, 40);
    jbutton5.setText("Highscore");
    jbutton5.setBorder(BorderFactory.createLineBorder(Color.blue, 2));
    jbutton5.setHorizontalAlignment(SwingConstants.CENTER);
    jbutton5.setHorizontalTextPosition(SwingConstants.CENTER);
    jbutton5.setFont(new Font("MS Sans Serif", 1, 14));
    cp.add(jbutton5);
    jbutton5.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        jbutton5ActionPerformed(evt); } });


    jlb2.setBounds(225, 20, 350, 50);
    jlb2.setText("Konzentrationstest");
    jlb2.setHorizontalAlignment(SwingConstants.CENTER);
    jlb2.setHorizontalTextPosition(SwingConstants.CENTER);
    jlb2.setFont(new Font("MS Sans Serif", 1, 24));
    cp.add(jlb2);
    // Ende Komponenten

    setVisible(true);
  }

  // Anfang Ereignisprozeduren
  public void paint(Graphics g)
  {
    super.paintComponents(g);
  }
  //start
  public void jButton1ActionPerformed(ActionEvent evt) {
     jButton1.setEnabled(false);
                if(tTest instanceof KonzentrationsTest){
                    jButton1.setEnabled(false);
                    jButton2.setEnabled(true);
                    jButton3.setEnabled(false);
                }
                zeichenFlaeche.start();
                tTest.starten();
  }
  //stop
  public void jButton2ActionPerformed(ActionEvent evt) {
     tTest.stoppen();
                zeichenFlaeche.stop();
                //jTextField1.setText(tTest.holeErgebnis());
                jButton1.setEnabled(false);
                jButton2.setEnabled(false);
                jButton3.setEnabled(true);
                //jTextField1.setText("***Abbruch***");
  }
  //neu
  public void jButton3ActionPerformed(ActionEvent evt) {
     if(tTest instanceof KonzentrationsTest){
        tTest = new KonzentrationsTest(200, 200);

     }
     reset(tTest);
     zeichenFlaeche.repaint();
  }

  //Hauptmenü

  public void jbutton4ActionPerformed(ActionEvent evt){
    this.setVisible(false);
    ControlPanel.main(null);
  }

  private void reset(TauglichkeitsTest tauglichkeitstest)
  {
      jButton1.setEnabled(true);
      jButton2.setEnabled(false);
      jButton3.setEnabled(false);
      zeichenFlaeche.setTauglichkeitsTest(tauglichkeitstest);
      jTextArea1.setText(tauglichkeitstest.zeigeHilfe());
      jlb1.setText("Reaktionszeit ");
      //jTextField1.setText(" ");
  }
  public boolean isFocusablejButton1()
  {

      jButton1.requestFocus(false);
      return false;
  }

//  public void jbutton4ActionPerformed(ActionEvent evt) {
//
//  }
  public void jbutton5ActionPerformed(ActionEvent evt) {

  }
  // Ende Ereignisprozeduren

  public static void main (String[] args) {
    new ZeichenPanelGUIKonzentration("Tauglichkeitstest");
  }
}


----------



## The_S (1. Dez 2006)

Ich hab leider immernoch nicht die Source für dein ControlPanel :roll:

[edit] Was außerdem noch fehlt ist ZeichenPanel und Konzentrationstest. Mal ganz davon abgesehen, dass du immernoch keine Code-Tags verwendet hast ...


----------



## ET5F1 (1. Dez 2006)

Tut mir leid ich weiß nicht was es heißt:Code-Tags

package Konzentrationstest;

import java.awt.*;
import java.lang.reflect.InvocationTargetException;
import javax.swing.*;

public class ZeichenPanel extends JPanel
{
    private TauglichkeitsTest tTest;
    private Runnable neuzeichnenRun;
    private Thread dieserThread;

    public ZeichenPanel(int i, int j)
    {
        setPreferredSize(new Dimension(i, j));
        setBorder(BorderFactory.createLineBorder(Color.black, 10));
        setOpaque(true);
        setBackground(Color.white);
        neuzeichnenRun = new Runnable() {

            public void run()
            {
                neuzeichnen();
            }

        };
    }
    public void setTauglichkeitsTest(TauglichkeitsTest tauglichkeitstest)
    {
        tTest = tauglichkeitstest;
    }
    public void paintComponent(Graphics g)
    {
        super.paintComponent(g);
        if(tTest != null)
            tTest.zeigeTestFigur(g);
    }
    public void start()
    {
        dieserThread = new Thread(neuzeichnenRun);
        dieserThread.start();
    }
    public void stop()
    {
        if(dieserThread != null)
        {
            dieserThread.interrupt();
            dieserThread = null;
        }
    }
    private void neuzeichnen()
    {
        for(Thread thread = Thread.currentThread(); thread == dieserThread
        {
            try
            {
                SwingUtilities.invokeAndWait(dieserThread);
            }
            catch(InterruptedException interruptedexception) { }
            catch(InvocationTargetException invocationtargetexception) { }
            if(dieserThread != null)
                synchronized(dieserThread)
                {
                    repaint();
                }
        }
    }
}package Konzentrationstest;

import Tauglichkeitstester.ControlPanel;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;


public class ZeichenPanelGUIKonzentration extends JFrame {
  // Anfang Variablen
  private ZeichenPanel zeichenFlaeche = new ZeichenPanel(200,200);
  private JButton jButton1 = new JButton();
  private JButton jButton2 = new JButton();
  private JButton jButton3 = new JButton();
  protected TauglichkeitsTest tTest = new KonzentrationsTest(350, 240);;
  //private JTextField jTextField1 = new JTextField();
  private JScrollPane jScrollPanejTextArea1 = new JScrollPane();
  private JTextArea jTextArea1 = new JTextArea("");
  private JButton jbutton4 = new JButton();
  private JButton jbutton5 = new JButton();
  private JLabel jlb1 = new JLabel();
  private JLabel jlb2 = new JLabel();
  // Ende Variablen

  //Eine private Klasse
  private class TauglichkeitsTestKeyAdapter extends KeyAdapter
    {
        public void keyTyped(KeyEvent keyevent)
        {
            if(tTest instanceof KonzentrationsTest)
            {
                char c = keyevent.getKeyChar();
                if(((KonzentrationsTest)tTest).istAktiv() && c == ((KonzentrationsTest)tTest).gibZiffer())
                {
                    tTest.stoppen();
                    zeichenFlaeche.stop();
                    //jTextField1.setText(tTest.holeErgebnis());
                    jlb1.setText(tTest.holeErgebnis());

                    jButton1.setEnabled(false);
                    jButton2.setEnabled(false);
                    jButton3.setEnabled(true);
                }
            }
        }
        private TauglichkeitsTestKeyAdapter()
        {
        }

    }

  public ZeichenPanelGUIKonzentration (String title) {
    // Frame-Initialisierung
    super (title);
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    this.addKeyListener(new TauglichkeitsTestKeyAdapter());
        addMouseListener(new MouseAdapter() {

            public void mouseEntered(MouseEvent mouseevent)
            {
                requestFocus();
            }

        });
    int frameWidth = 800;
    int frameHeight = 600;
    setSize(frameWidth, frameHeight);
    Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
    int x = (d.width - getSize().width) / 2;
    int y = (d.height - getSize().height) / 2 ;
    setLocation(x, y);
    Container cp = getContentPane();
    cp.setLayout(null);

    // Anfang Komponenten

    zeichenFlaeche.setBounds(225, 80, 350, 240);
    cp.add(zeichenFlaeche);
    zeichenFlaeche.setTauglichkeitsTest(tTest);


    jButton1.setBounds(30, 80, 130, 40);
    jButton1.setText("Start");
    jButton1.setBorder(BorderFactory.createLineBorder(Color.blue, 2));
    jButton1.setFont(new Font("MS Sant Serif", 1, 14));
    cp.add(jButton1);
    jButton1.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        jButton1ActionPerformed(evt);
      }
    });

    jButton2.setBounds(30, 180, 130, 40);
    jButton2.setText("Stop");
    jButton2.setBorder(BorderFactory.createLineBorder(Color.blue, 2));
    jButton2.setFont(new Font("MS Sant Serif", 1, 14));
    cp.add(jButton2);
    jButton2.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        jButton2ActionPerformed(evt);
      }
    });

    jButton3.setBounds(30, 280, 130, 40);
    jButton3.setText("Neu");
    jButton3.setBorder(BorderFactory.createLineBorder(Color.blue, 2));
    jButton3.setFont(new Font("MS Sant Serif", 1, 14));
    cp.add(jButton3);
    jButton3.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        jButton3ActionPerformed(evt);
      }
    });

    jlb1.setBounds(620, 163, 150, 75);
    jlb1.setText("Reaktionszeit");
    jlb1.setFont(new Font("MS Sans Serif", 1, 20));
    jlb1.setForeground(Color.red);
    jlb1.setBorder(BorderFactory.createLineBorder(Color.black, 5));
    jlb1.setHorizontalAlignment(SwingConstants.CENTER);
    jlb1.setHorizontalTextPosition(SwingConstants.CENTER);
    cp.add(jlb1);


    //jTextField1.setBounds(0, 40, 281, 24);
    //jTextField1.setText("Reaktionszeit");
    //cp.add(jTextField1);


    jScrollPanejTextArea1.setBounds(225, 400, 350, 100);
    jTextArea1.setText("(Strings)");
    jTextArea1.setForeground(Color.black);
    jTextArea1.setFont(new Font("MS Sans Serif", 1, 11));
    jTextArea1.setBackground(Color.LIGHT_GRAY);
    jTextArea1.setEditable(false);
    jScrollPanejTextArea1.setViewportView(jTextArea1);
    jTextArea1.setText(tTest.zeigeHilfe());
    cp.add(jScrollPanejTextArea1);


    jbutton4.setBounds(625, 80, 130, 40);
    jbutton4.setText("Hauptmenü");
    jbutton4.setBorder(BorderFactory.createLineBorder(Color.blue, 2));
    jbutton4.setHorizontalAlignment(SwingConstants.CENTER);
    jbutton4.setHorizontalTextPosition(SwingConstants.CENTER);
    jbutton4.setFont(new Font("MS Sans Serif", 1, 14));
    cp.add(jbutton4);
    jbutton4.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        jbutton4ActionPerformed(evt); } });

    jbutton5.setBounds(625, 280, 130, 40);
    jbutton5.setText("Highscore");
    jbutton5.setBorder(BorderFactory.createLineBorder(Color.blue, 2));
    jbutton5.setHorizontalAlignment(SwingConstants.CENTER);
    jbutton5.setHorizontalTextPosition(SwingConstants.CENTER);
    jbutton5.setFont(new Font("MS Sans Serif", 1, 14));
    cp.add(jbutton5);
    jbutton5.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        jbutton5ActionPerformed(evt); } });


    jlb2.setBounds(225, 20, 350, 50);
    jlb2.setText("Konzentrationstest");
    jlb2.setHorizontalAlignment(SwingConstants.CENTER);
    jlb2.setHorizontalTextPosition(SwingConstants.CENTER);
    jlb2.setFont(new Font("MS Sans Serif", 1, 24));
    cp.add(jlb2);
    // Ende Komponenten

    setVisible(true);
  }

  // Anfang Ereignisprozeduren
  public void paint(Graphics g)
  {
    super.paintComponents(g);
  }
  //start
  public void jButton1ActionPerformed(ActionEvent evt) {
     jButton1.setEnabled(false);
                if(tTest instanceof KonzentrationsTest){
                    jButton1.setEnabled(false);
                    jButton2.setEnabled(true);
                    jButton3.setEnabled(false);
                }
                zeichenFlaeche.start();
                tTest.starten();
  }
  //stop
  public void jButton2ActionPerformed(ActionEvent evt) {
     tTest.stoppen();
                zeichenFlaeche.stop();
                //jTextField1.setText(tTest.holeErgebnis());
                jButton1.setEnabled(false);
                jButton2.setEnabled(false);
                jButton3.setEnabled(true);
                //jTextField1.setText("***Abbruch***");
  }
  //neu
  public void jButton3ActionPerformed(ActionEvent evt) {
     if(tTest instanceof KonzentrationsTest){
        tTest = new KonzentrationsTest(200, 200);

     }
     reset(tTest);
     zeichenFlaeche.repaint();
  }

  //Hauptmenü

  public void jbutton4ActionPerformed(ActionEvent evt){
    this.setVisible(false);
    ControlPanel.main(null);
  }

  private void reset(TauglichkeitsTest tauglichkeitstest)
  {
      jButton1.setEnabled(true);
      jButton2.setEnabled(false);
      jButton3.setEnabled(false);
      zeichenFlaeche.setTauglichkeitsTest(tauglichkeitstest);
      jTextArea1.setText(tauglichkeitstest.zeigeHilfe());
      jlb1.setText("Reaktionszeit ");
      //jTextField1.setText(" ");
  }
  public boolean isFocusablejButton1()
  {

      jButton1.requestFocus(false);
      return false;
  }

//  public void jbutton4ActionPerformed(ActionEvent evt) {
//
//  }
  public void jbutton5ActionPerformed(ActionEvent evt) {

  }
  // Ende Ereignisprozeduren

  public static void main (String[] args) {
    new ZeichenPanelGUIKonzentration("Tauglichkeitstest");
  }
}


package Konzentrationstest;

import java.awt.*;
import java.lang.reflect.InvocationTargetException;
import javax.swing.*;

public class ZeichenPanel extends JPanel
{
    private TauglichkeitsTest tTest;
    private Runnable neuzeichnenRun;
    private Thread dieserThread;

    public ZeichenPanel(int i, int j)
    {
        setPreferredSize(new Dimension(i, j));
        setBorder(BorderFactory.createLineBorder(Color.black, 10));
        setOpaque(true);
        setBackground(Color.white);
        neuzeichnenRun = new Runnable() {

            public void run()
            {
                neuzeichnen();
            }

        };
    }
    public void setTauglichkeitsTest(TauglichkeitsTest tauglichkeitstest)
    {
        tTest = tauglichkeitstest;
    }
    public void paintComponent(Graphics g)
    {
        super.paintComponent(g);
        if(tTest != null)
            tTest.zeigeTestFigur(g);
    }
    public void start()
    {
        dieserThread = new Thread(neuzeichnenRun);
        dieserThread.start();
    }
    public void stop()
    {
        if(dieserThread != null)
        {
            dieserThread.interrupt();
            dieserThread = null;
        }
    }
    private void neuzeichnen()
    {
        for(Thread thread = Thread.currentThread(); thread == dieserThread
        {
            try
            {
                SwingUtilities.invokeAndWait(dieserThread);
            }
            catch(InterruptedException interruptedexception) { }
            catch(InvocationTargetException invocationtargetexception) { }
            if(dieserThread != null)
                synchronized(dieserThread)
                {
                    repaint();
                }
        }
    }
}package Konzentrationstest;


import java.awt.Graphics;

public abstract class TauglichkeitsTest
{
    private Verzoegerer verzoegerer;
      private Thread thread;
      private int millis;

    protected int breite;
    protected int hoehe;
    protected int xMitte;
    protected int yMitte;
    protected boolean istAktiv;

    public TauglichkeitsTest(int i, int j)
    {
        breite = i;
        hoehe = j;
        xMitte = i / 2;
        yMitte = j / 2;
        istAktiv = false;
    }
    public final void starten()
    {
        istAktiv = true;
        warten((int)(Math.random() * 3000D));
    }
    public void stoppen()
    {
        istAktiv = false;
        if(verzoegerer != null)
        {
            verzoegerer.stop();
            verzoegerer = null;
        }
    }
    public boolean istAktiv()
    {
        return istAktiv;
    }
    private void warten(int i)
    {
        verzoegerer = new Verzoegerer(i);
    }
    public abstract void tueNachStart();
    public abstract String zeigeHilfe();
    public abstract String holeErgebnis();
    public abstract void zeigeTestFigur(Graphics g);

    private class Verzoegerer  implements Runnable
    {
        public void run()
        {
            for(Thread thread1 = Thread.currentThread(); thread == thread1; thread = null)
            {
                try
                {
                    Thread.sleep(millis);
                }
                catch(InterruptedException interruptedexception)
                {
                    return;
                }
                tueNachStart();
            }

        }
        public void stop()
        {
            if(thread != null)
            {
                thread.interrupt();
                thread = null;
            }
        }
        private Verzoegerer(int i)
        {
            millis = i;
            thread = new Thread(this);
            thread.start();
        }

    }
}

package Konzentrationstest;


import java.awt.*;

public class TastaturTest extends TauglichkeitsTest
{
    protected StoppUhr eineStoppUhr;
    protected ZiffernFeld einZiffernFeld;

    public TastaturTest(int i, int j)
    {
        super(i, j);
        einZiffernFeld = new ZiffernFeld(xMitte, yMitte, Color.RED);
        eineStoppUhr = new StoppUhr();
    }
    public void tueNachStart()
    {
        einZiffernFeld.waehleZiffer();
        eineStoppUhr.starten();
    }
    public void stoppen()
    {
        eineStoppUhr.stoppen();
    }
    public char gibZiffer()
    {
        return einZiffernFeld.gibZiffer();
    }
    public String holeErgebnis()
    {
        return "Reaktionszeit: " + eineStoppUhr;
    }
    public String zeigeHilfe()
    {
        return "Klicken Sie auf 'Start' und warten Sie bis eine Ziffer angezeigt wird.\nDrücken Sie dann möglichst schnell die entsprechende Zifferntaste.";
    }
    public void zeigeTestFigur(Graphics g)
    {
        einZiffernFeld.zeichne(g);
    }
}

package Konzentrationstest;

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

public class StoppUhrGUI extends JFrame {
  // Anfang Variablen
  private StoppUhr stoppUhr = new StoppUhr();
  private JButton jButton1 = new JButton();
  private JButton jButton2 = new JButton();
  private JTextField jTextField1 = new JTextField();
  // Ende Variablen

  public StoppUhrGUI (String title) {
    // Frame-Initialisierung
    super (title);
    addWindowListener(new WindowAdapter() {
      public void windowClosing (WindowEvent evt) {System.exit(0);}});
    setSize(300, 300);
    Container cp = getContentPane();
    cp.setLayout(null);

    // Anfang Komponenten

    jButton1.setBounds(32, 16, 97, 25);
    jButton1.setText("starten");
    cp.add(jButton1);
    jButton1.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        jButton1ActionPerformed(evt);
      }
    });

    jButton2.setBounds(136, 16, 89, 25);
    jButton2.setText("stoppen");
    cp.add(jButton2);
    jButton2.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        jButton2ActionPerformed(evt);
      }
    });

    jTextField1.setBounds(32, 72, 193, 24);
    jTextField1.setText("Stoppzeit");
    cp.add(jTextField1);
    // Ende Komponenten

    setVisible(true);
  }

  // Anfang Ereignisprozeduren
  public void jButton1ActionPerformed(ActionEvent evt) {
     stoppUhr.starten();
     jTextField1.setText("Stoppzeit");
  }

  public void jButton2ActionPerformed(ActionEvent evt) {
     stoppUhr.stoppen();
     String str = stoppUhr.toString();
     jTextField1.setText(str);
  }

  // Ende Ereignisprozeduren

  public static void main (String[] args) {
    new StoppUhrGUI("StoppUhrGUI");
  }
}

package Konzentrationstest;


public class StoppUhr
{
    protected long startZeit;
    protected long stoppZeit;
    protected boolean istAktiv;

    public StoppUhr()
    {
        istAktiv = false;
    }
    public void starten()
    {
        if(!istAktiv)
        {
            istAktiv = true;
            startZeit = System.currentTimeMillis();
        }
    }
    public void stoppen()
    {
        if(istAktiv)
        {
            istAktiv = false;
            stoppZeit = System.currentTimeMillis();
        }
    }
    public long gibLaufzeit()
    {
        return (istAktiv ? System.currentTimeMillis() : stoppZeit) - startZeit;
    }
    public boolean istAktiv()
    {
        return istAktiv;
    }
    public String toString()
    {
        double d = (double)gibLaufzeit() / 1000D;
        return Double.toString(d) + " Sek.";
    }
}

package Konzentrationstest;
import java.awt.*;

public class KonzentrationsTest extends TauglichkeitsTest
{
    protected StoppUhr eineStoppUhr;
    protected ZiffernFeld einZiffernFeld;

    public KonzentrationsTest(int i, int j)
    {
        super(i, j);
        einZiffernFeld = new ZiffernFeld(xMitte, yMitte, Color.RED);
        eineStoppUhr = new StoppUhr();
    }
    public void tueNachStart()
    {
        einZiffernFeld.waehleZiffer();
        eineStoppUhr.starten();
    }
    public void stoppen()
    {
        eineStoppUhr.stoppen();
    }
    public char gibZiffer()
    {
        return einZiffernFeld.gibZiffer();
    }
    public String holeErgebnis()
    {
        return " " + eineStoppUhr;
    }
    public String zeigeHilfe()
    {
        return "Klicken Sie auf 'Start'\nWarten Sie bis eine Ziffer angezeigt wird.\nDrücken Sie dann möglichst schnell\n die entsprechende Zifferntaste.";
    }
    public void zeigeTestFigur(Graphics g)
    {
        einZiffernFeld.zeichne(g);
    }
}





Hoffe du hast jetzt alles!!!!


----------



## WieselAc (1. Dez 2006)

Code Tags:

[*code] [*/code]  (ohne sterne)


die machen aus:


public static void main (String[] arg){

}



```
public static void main (String[] arg){

}
```


----------



## The_S (1. Dez 2006)

Ziffernfeld fehlt mindestens noch. Du hast bei deiner Antwort über den eingabefeld einen Button, da steht "Code" trauf. Auf den klickste einmal, postest eine Klasse, drückst nochmal drauf. Das machste bei jeder Klasse oder bei jedem Codeschnippsel das de hast.


----------



## ET5F1 (1. Dez 2006)

Danke für eure Hilfe.

Geht zwar nicht aber ich versuche weiter.


----------



## The_S (1. Dez 2006)

??? Was denn für ne Hilfe? Evtl. kann ich dir helfen, wenn du 

a) Gscheid erklärst was geht, was net und was soll
b) mir die fehlende Klasse ZiffernFeld und ControlPanel schichskt


----------



## ET5F1 (1. Dez 2006)

Also nochmal so halt.

Ich wähle den Konzentrationstester aus.

Dann kann man über die Start taste das Programm Starten.

Dann erscheint ein Buchstabe im Bild, diesen Buchstabe muss man über die Tastatur eingeben.

So wenn du die Mouse nicht vom Startbutton wegnimmst kann man keine Eingabe machen über die Tastatur.

Erst wenn ich die Mouse bewege also vom Startbutton wegnehme kann ich den Buchstabe über die Tastertur machen.

Das ist das Problem. Ich meine es ist was mit dem Focus.

    Oder??


----------



## ET5F1 (1. Dez 2006)

package Konzentrationstest;

import java.awt.*;
import java.lang.reflect.InvocationTargetException;
import javax.swing.*;

public class ZeichenPanel extends JPanel
{
    private TauglichkeitsTest tTest;
    private Runnable neuzeichnenRun;
    private Thread dieserThread;

    public ZeichenPanel(int i, int j)
    {
        setPreferredSize(new Dimension(i, j));
        setBorder(BorderFactory.createLineBorder(Color.black, 10));
        setOpaque(true);
        setBackground(Color.white);
        neuzeichnenRun = new Runnable() {

            public void run()
            {
                neuzeichnen();
            }

        };
    }
    public void setTauglichkeitsTest(TauglichkeitsTest tauglichkeitstest)
    {
        tTest = tauglichkeitstest;
    }
    public void paintComponent(Graphics g)
    {
        super.paintComponent(g);
        if(tTest != null)
            tTest.zeigeTestFigur(g);
    }
    public void start()
    {
        dieserThread = new Thread(neuzeichnenRun);
        dieserThread.start();
    }
    public void stop()
    {
        if(dieserThread != null)
        {
            dieserThread.interrupt();
            dieserThread = null;
        }
    }
    private void neuzeichnen()
    {
        for(Thread thread = Thread.currentThread(); thread == dieserThread
        {
            try
            {
                SwingUtilities.invokeAndWait(dieserThread);
            }
            catch(InterruptedException interruptedexception) { }
            catch(InvocationTargetException invocationtargetexception) { }
            if(dieserThread != null)
                synchronized(dieserThread)
                {
                    repaint();
                }
        }
    }
}


----------



## The_S (1. Dez 2006)

Wie bekommt das Textfeld wo man eingeben soll denn den Focus? Und "wegnehmen" ist wirklcih nur bewegen ohne dass du sonst noch was machst (Klicken z. B.)?


----------



## The_S (1. Dez 2006)

Es nützt mir auch nichts, wenn du noch 500 mal den Code von ZeichenPanel reinsetzt. Ich brauche ZIFFERNFELD und CONTROLPANEL. Ist das denn so schwer zu verstehen?

[edit] Jetzt hast du schon wieder keine Code-Tags verwendet und das obwohl ich mehrmals darum gebittet habe und du von zwei Leuten erklärt bekommen hast was code-tags sind und wie man sie einsetzt ... Außerdem bringst du es nicht zustande einfach alle Klassen zu posten, die ich zum Testen benötige. Du bringst mich echt noch auf die Palme! Ich für meinen Teil verweigere in diesem Thread jeglichen Support bis du Code-Tags verwendest und endlich mal sinnvolles von dir gibst  :bloed: . Vielleicht findeste ja nen anderen Dummen, der sich mit dir rumärgert :roll: .


----------



## ET5F1 (1. Dez 2006)

Ja ist leider Schwer.
Tut mir leid wie gesagt bin ganz neu dabei.
Sorry.

Mit wegnehmen meine ich man muss die Mouse einmal bewegen.Aber muss vom Startbutton weg.
 Versuche es dir zu schicken. Oder Kann ich dir das ganze Programm über eine E-mail schicken?


----------



## ET5F1 (1. Dez 2006)

```
package Tauglichkeitstester;

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import Einschaetzungstest.ZeichenPanelGUIEinschaetzung;
import Reaktionstest.ZeichenPanelGUIReaktion;
import Konzentrationstest.ZeichenPanelGUIKonzentration;

public class ControlPanel extends JFrame implements ActionListener {


   private  Button prog1 = null;
   private  Button prog2 = null;
   private  Button prog3 = null;
   private  Button prog4 = null;
   private  Button exit  = null;

   public ControlPanel(String title) {

     super (title);
     this.setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
     int frameWidth = 800;
     int frameHeight = 600;
     setSize(frameWidth, frameHeight);
     Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
     int x = (d.width - getSize().width) / 2;
     int y = (d.height - getSize().height) / 2 ;
     setLocation(x, y);
     Panel cp = new Panel(null);
     add(cp);
     setLayout(null);
     cp.setBackground(Color.yellow);

     
     
     //Anfang Komponente
     prog1 = new Button("Einschätzungstester");
     prog1.setBackground(Color.RED);
     prog1.setForeground(Color.black);
     prog1.setFont(new Font("MS Sant Serif", 1, 30));
     prog1.setBounds(152, 80, 473, 81);

     prog2 = new Button("Reaktionstester");
     prog2.setBackground(Color.blue);
     prog2.setForeground(Color.black);
     prog2.setFont(new Font("MS Sant Serif", 1, 30));
     prog2.setBounds(152, 224, 473, 81);

     prog3 = new Button("Konzentrationstester");
     prog3.setBackground(Color.orange);
     prog3.setForeground(Color.black);
     prog3.setFont(new Font("MS Sant Serif", 1, 30));
     prog3.setBounds(152, 376, 473, 81);
     
        
        exit = new Button ( "EXIT");
        exit.setBackground(Color.PINK);
        exit.setForeground(Color.black);
        exit.setFont(new Font("MS Sant Serif", 1, 12));
        exit.setBounds(600,500,150,40);

        add(prog1);
        add(prog2);
        add(prog3);
        add (exit);

        prog1.addActionListener(this);
        prog2.addActionListener(this);
        prog3.addActionListener(this);
        exit.addActionListener(this);

         setVisible(true);
   }

   //Ende Komponente

//   public void ControlPanelSichtbar (){
//     this.setVisible(true);
//   }
   public static void main(String[] args) {
      new ControlPanel("Tauglichkeitstester");

   }

   public void actionPerformed(ActionEvent evt) {

      if (evt.getSource() == prog1) {
         ZeichenPanelGUIEinschaetzung.main(null);// Starter Klasse des 1. Programms
         this.setVisible(false);
        }
      else if (evt.getSource() == prog2) {
         ZeichenPanelGUIReaktion.main(null); // Starter Klasse des 2. Programms
          this.setVisible(false);
      }
      else if (evt.getSource() == prog3) {
         ZeichenPanelGUIKonzentration.main(null); // Starter Klasse des 3. Programms
         this.setVisible(false);
      }
      else if (evt.getSource() == exit) {
              System.exit(0);

      }
   }
}
```


----------



## The_S (1. Dez 2006)

Na also ... geht doch  . Und jetzt noch das ZiffernFeld dann bin ich glücklich :toll:

[edit] OK, jetzt fehlen noch die Klassen "ZeichenPanelGUIEinschaetzung" und "ZeichenPanelGUIReaktion". Ich würde vorschlagen du lädst das Programm als jar mal irgendwo hoch bevor wir uns da ewig mit rumärgern.


----------



## Azrahel NA (1. Dez 2006)

@ Hobbit Ja, gib ihm mal noch ein zwei Posts Zeit, das mit den CodeTags hat er ja auch verstanden  manche brauchen halt ein wenig länger, und wir machen ja auch nit immer alles richtig und stehen auch mal aufm Schlauch


----------



## ET5F1 (1. Dez 2006)

```
package Konzentrationstest;

import java.awt.*;
import java.lang.reflect.InvocationTargetException;
import javax.swing.*;

public class ZeichenPanel extends JPanel
{
    private TauglichkeitsTest tTest;
    private Runnable neuzeichnenRun;
    private Thread dieserThread;

    public ZeichenPanel(int i, int j)
    {
        setPreferredSize(new Dimension(i, j));
        setBorder(BorderFactory.createLineBorder(Color.black, 10));
        setOpaque(true);
        setBackground(Color.white);
        neuzeichnenRun = new Runnable() {

            public void run()
            {
                neuzeichnen();
            }

        };
    }
    public void setTauglichkeitsTest(TauglichkeitsTest tauglichkeitstest)
    {
        tTest = tauglichkeitstest;
    }
    public void paintComponent(Graphics g)
    {
        super.paintComponent(g);
        if(tTest != null)
            tTest.zeigeTestFigur(g);
    }
    public void start()
    {
        dieserThread = new Thread(neuzeichnenRun);
        dieserThread.start();
    }
    public void stop()
    {
        if(dieserThread != null)
        {
            dieserThread.interrupt();
            dieserThread = null;
        }
    }
    private void neuzeichnen()
    {
        for(Thread thread = Thread.currentThread(); thread == dieserThread;)
        {
            try
            {
                SwingUtilities.invokeAndWait(dieserThread);
            }
            catch(InterruptedException interruptedexception) { }
            catch(InvocationTargetException invocationtargetexception) { }
            if(dieserThread != null)
                synchronized(dieserThread)
                {
                    repaint();
                }
        }
    }
}
```


----------



## The_S (1. Dez 2006)

Ich fasse mal eben zusammen, du hast jetzt folgende Klassen gepostet:

1x ControlPanel
1x KonzentrationsTest
1x StoppUhrGUI
1x StoppUhr
1x TastaturTest
1x Tauglichkeitstest
4x ZeichenPanel
3x ZeichenPanelGUIKonzentration

Was ich noch brauche ist:

1x ZiffernFeld
1x ZeichenPanelGUIEinschaetzung
1x ZeichenPanelGUIReaktion

evtl. kommt da auch noch was dazu, jenachdem was die noch benötigten Klassen wiederrum für Klassen benötigen.


----------



## Azrahel NA (1. Dez 2006)

Hobbit_Im_Blutrausch hat gesagt.:
			
		

> Ich fasse mal eben zusammen, du hast jetzt folgende Klassen gepostet:
> 
> 1x ControlPanel
> 1x KonzentrationsTest
> ...



Ich hätt gern noch 
1 x ZiffernFeld 
2.4 x StoppUhr
0.223 x ControlPanel

 

Sorry heut war was in meinem Essen das ganz komisch auf mich wirkt... aber ihr seid manchmel echt zu gut... euch würd ich gern mal alle auf einem Haufen erleben


----------



## The_S (1. Dez 2006)

Azrahel NA hat gesagt.:
			
		

> Ich hätt gern noch
> 1 x ZiffernFeld
> 2.4 x StoppUhr
> 0.223 x ControlPanel



lol, okay ich geb die Bestellung auf. Ebay ich, Versandkosten du. Alternativ tausche ich auch gegen

1x WeltDominator


----------



## ET5F1 (1. Dez 2006)

```
package Reaktionstest;

import Tauglichkeitstester.ControlPanel;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;



public class ZeichenPanelGUIReaktion extends JFrame {
public Font font;
public Color farbe;



  // Anfang Variablen
  private ZeichenPanel zeichenFlaeche = new ZeichenPanel(200,200);
  private JButton jButton1 = new JButton();
  private JButton jButton2 = new JButton();
  private JButton jButton3 = new JButton();
  private JButton jbutton4 = new JButton();
  private JButton jbutton5 = new JButton();
  protected TauglichkeitsTest tTest = new ReaktionsTest(350, 240);;
  //private JTextField jTextField1 = new JTextField();
  private JScrollPane jScrollPanejTextArea1 = new JScrollPane();
  private JTextArea jTextArea1 = new JTextArea("");

  private JLabel jlb1 = new JLabel();

  private JLabel jlb2 = new JLabel();
  // Ende Variablen

  public ZeichenPanelGUIReaktion (String title) {
    // Frame-Initialisierung
    super (title);
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    int frameWidth = 800;
    int frameHeight = 600;
    setSize(frameWidth, frameHeight);
    Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
    int x = (d.width - getSize().width) / 2;
    int y = (d.height - getSize().height) / 2 ;
    setLocation(x, y);
    Container cp = getContentPane();
    cp.setLayout(null);

    // Anfang Komponenten

    zeichenFlaeche.setBounds(225, 80, 350, 240);

    cp.add(zeichenFlaeche);
    zeichenFlaeche.setTauglichkeitsTest(tTest);


    jButton1.setBounds(30, 80, 130, 40);
    jButton1.setText("Start");
    jButton1.setBorder(BorderFactory.createLineBorder(Color.blue, 2));
    jButton1.setBackground(Color.lightGray);
    jButton1.setForeground(Color.black);
    jButton1.setFont(new Font ("MS Sant Serif" , 1, 14));
    cp.add(jButton1);
    jButton1.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        jButton1ActionPerformed(evt);
      }
    });





    jButton2.setBounds(30, 180, 130, 40);
    jButton2.setText("Stop");
    jButton2.setBorder(BorderFactory.createLineBorder(Color.blue, 2));
    jButton2.setBackground(Color.lightGray);
    jButton2.setForeground(Color.black);
    jButton2.setFont(new Font ("MS Sant Serif" , 1, 14));
    cp.add(jButton2);
    jButton2.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        jButton2ActionPerformed(evt);
      }
    });

    jButton3.setBounds(30, 280, 130, 40);
    jButton3.setText("Neu");
    jButton3.setBorder(BorderFactory.createLineBorder(Color.blue, 2));
    jButton3.setBackground(Color.lightGray);
    jButton3.setForeground(Color.black);
    jButton3.setFont(new Font ("MS Sant Serif" , 1, 14));
    cp.add(jButton3);
    jButton3.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        jButton3ActionPerformed(evt);
      }
    });

      jlb1.setBounds(620, 163, 150, 75);
      jlb1.setText("Reaktionszeit");
      jlb1.setForeground(Color.red);
      jlb1.setBorder(BorderFactory.createLineBorder(Color.black, 5));
      jlb1.setFont(new Font("MS Sant Serif",1, 20));
      jlb1.setHorizontalAlignment(SwingConstants.CENTER);
      jlb1.setHorizontalTextPosition(SwingConstants.CENTER);
      jlb1.setBackground(Color.white);
      cp.add(jlb1);

    //jTextField1.setBounds(630, 163, 120, 75);
    //jTextField1.setText("Reaktionszeit");
    //font = new Font ("Times New Roman", Font.BOLD,38);
    //cp.add(jTextField1);
//     public void setEditable(boolean allowed)
//     public boolean isEditable()
//     public void setEchoCharacter(char c)
//     public char getEchoChar()
//

    jScrollPanejTextArea1.setBounds(225, 400, 350, 100);
    jTextArea1.setText("(String)");
    jTextArea1.setFont(new Font("MS Sans Serif", 1, 11));
    jTextArea1.setBackground(Color.LIGHT_GRAY);
    jTextArea1.setForeground(Color.black);
    jScrollPanejTextArea1.setViewportView(jTextArea1);
    jTextArea1.setText(tTest.zeigeHilfe());
    jTextArea1.setEditable(false);
    cp.add(jScrollPanejTextArea1);


    jbutton4.setBounds(625, 80, 130, 40);
    jbutton4.setText("Hauptmenü");
    jbutton4.setBorder(BorderFactory.createLineBorder(Color.blue, 2));
    jbutton4.setBackground(Color.lightGray);
    jbutton4.setForeground(Color.black);
    jbutton4.setFont(new Font ("MS Sant Serif" , 1, 14));
    cp.add(jbutton4);
    jbutton4.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
      jbutton4ActionPerformed(evt);
    }
    });

    jbutton5.setBounds(625, 280, 130, 40);
    jbutton5.setText("Highscore");
    jbutton5.setBorder(BorderFactory.createLineBorder(Color.blue, 2));
    jbutton5.setBackground(Color.lightGray);
    jbutton5.setForeground(Color.black);
    jbutton5.setFont(new Font ("MS Sant Serif" , 1, 14));
    cp.add(jbutton5);
    jbutton5.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        jbutton5ActionPerformed(evt);
    }
    });



    jlb2.setBounds(225, 20, 350, 50);
    jlb2.setText("Reaktionstester");
    jlb2.setHorizontalAlignment(SwingConstants.CENTER);
    jlb2.setHorizontalTextPosition(SwingConstants.CENTER);
    jlb2.setFont(new Font("MS Sans Serif", 1, 24));
    cp.add(jlb2);
    // Ende Komponenten

    setVisible(true);
  }

  // Anfang Ereignisprozeduren
  public void paint(Graphics g)
  {
    super.paintComponents(g);
  }
  //start
  public void jButton1ActionPerformed(ActionEvent evt) {
     jButton1.setEnabled(false);
                if(tTest instanceof ReaktionsTest){
                    jButton1.setEnabled(false);
                    jButton2.setEnabled(true);
                    jButton3.setEnabled(false);
                }
                zeichenFlaeche.start();
                tTest.starten();
  }
  //stop
  public void jButton2ActionPerformed(ActionEvent evt) {
     tTest.stoppen();
                zeichenFlaeche.stop();
                //jTextField1.setText(tTest.holeErgebnis());

                jlb1.setText(tTest.holeErgebnis());
                jButton1.setEnabled(false);
                jButton2.setEnabled(false);
                jButton3.setEnabled(true);
  }
  //neu
  public void jButton3ActionPerformed(ActionEvent evt) {
     if(tTest instanceof ReaktionsTest){
        tTest = new ReaktionsTest(350, 240);

     }
     reset(tTest);
     zeichenFlaeche.repaint();
  }
  
  //Hauptmenü
  
  public void jbutton4ActionPerformed(ActionEvent evt){
    this.setVisible(false);
    ControlPanel.main(null);
  }
  
  private void reset(TauglichkeitsTest tauglichkeitstest)
  {
      jButton1.setEnabled(true);
      jButton2.setEnabled(false);
      jButton3.setEnabled(false);
      zeichenFlaeche.setTauglichkeitsTest(tauglichkeitstest);
      jTextArea1.setText(tauglichkeitstest.zeigeHilfe());

      //jTextField1.setText(" ");
      jlb1.setText("Reaktionszeit ");
  }


//  public void jbutton4ActionPerformed(ActionEvent evt) {
//
//  }
  public void jbutton5ActionPerformed(ActionEvent evt) {

  }
  // Ende Ereignisprozeduren

  public static void main (String[] args) {
    new ZeichenPanelGUIReaktion("Reakionstester");
  }
}
```


----------



## ET5F1 (1. Dez 2006)

```
package Konzentrationstest;

import Tauglichkeitstester.ControlPanel;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;


public class ZeichenPanelGUIKonzentration extends JFrame {
  // Anfang Variablen
  private ZeichenPanel zeichenFlaeche = new ZeichenPanel(200,200);
  private JButton jButton1 = new JButton();
  private JButton jButton2 = new JButton();
  private JButton jButton3 = new JButton();
  protected TauglichkeitsTest tTest = new KonzentrationsTest(350, 240);;
  //private JTextField jTextField1 = new JTextField();
  private JScrollPane jScrollPanejTextArea1 = new JScrollPane();
  private JTextArea jTextArea1 = new JTextArea("");
  private JButton jbutton4 = new JButton();
  private JButton jbutton5 = new JButton();
  private JLabel jlb1 = new JLabel();
  private JLabel jlb2 = new JLabel();
  // Ende Variablen

  //Eine private Klasse
  private class TauglichkeitsTestKeyAdapter extends KeyAdapter
    {
        public void keyTyped(KeyEvent keyevent)
        {
            if(tTest instanceof KonzentrationsTest)
            {
                char c = keyevent.getKeyChar();
                if(((KonzentrationsTest)tTest).istAktiv() && c == ((KonzentrationsTest)tTest).gibZiffer())
                {
                    tTest.stoppen();
                    zeichenFlaeche.stop();
                    //jTextField1.setText(tTest.holeErgebnis());
                    jlb1.setText(tTest.holeErgebnis());

                    jButton1.setEnabled(false);
                    jButton2.setEnabled(false);
                    jButton3.setEnabled(true);
                }
            }
        }
        private TauglichkeitsTestKeyAdapter()
        {
        }

    }

  public ZeichenPanelGUIKonzentration (String title) {
    // Frame-Initialisierung
    super (title);
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    this.addKeyListener(new TauglichkeitsTestKeyAdapter());
        addMouseListener(new MouseAdapter() {

            public void mouseEntered(MouseEvent mouseevent)
            {
                requestFocus();
            }

        });
    int frameWidth = 800;
    int frameHeight = 600;
    setSize(frameWidth, frameHeight);
    Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
    int x = (d.width - getSize().width) / 2;
    int y = (d.height - getSize().height) / 2 ;
    setLocation(x, y);
    Container cp = getContentPane();
    cp.setLayout(null);

    // Anfang Komponenten

    zeichenFlaeche.setBounds(225, 80, 350, 240);
    cp.add(zeichenFlaeche);
    zeichenFlaeche.setTauglichkeitsTest(tTest);


    jButton1.setBounds(30, 80, 130, 40);
    jButton1.setText("Start");
    jButton1.setBorder(BorderFactory.createLineBorder(Color.blue, 2));
    jButton1.setFont(new Font("MS Sant Serif", 1, 14));
    cp.add(jButton1);
    jButton1.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        jButton1ActionPerformed(evt);
      }
    });

    jButton2.setBounds(30, 180, 130, 40);
    jButton2.setText("Stop");
    jButton2.setBorder(BorderFactory.createLineBorder(Color.blue, 2));
    jButton2.setFont(new Font("MS Sant Serif", 1, 14));
    cp.add(jButton2);
    jButton2.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        jButton2ActionPerformed(evt);
      }
    });

    jButton3.setBounds(30, 280, 130, 40);
    jButton3.setText("Neu");
    jButton3.setBorder(BorderFactory.createLineBorder(Color.blue, 2));
    jButton3.setFont(new Font("MS Sant Serif", 1, 14));
    cp.add(jButton3);
    jButton3.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        jButton3ActionPerformed(evt);
      }
    });

    jlb1.setBounds(620, 163, 150, 75);
    jlb1.setText("Reaktionszeit");
    jlb1.setFont(new Font("MS Sans Serif", 1, 20));
    jlb1.setForeground(Color.red);
    jlb1.setBorder(BorderFactory.createLineBorder(Color.black, 5));
    jlb1.setHorizontalAlignment(SwingConstants.CENTER);
    jlb1.setHorizontalTextPosition(SwingConstants.CENTER);
    cp.add(jlb1);


    //jTextField1.setBounds(0, 40, 281, 24);
    //jTextField1.setText("Reaktionszeit");
    //cp.add(jTextField1);


    jScrollPanejTextArea1.setBounds(225, 400, 350, 100);
    jTextArea1.setText("(Strings)");
    jTextArea1.setForeground(Color.black);
    jTextArea1.setFont(new Font("MS Sans Serif", 1, 11));
    jTextArea1.setBackground(Color.LIGHT_GRAY);
    jTextArea1.setEditable(false);
    jScrollPanejTextArea1.setViewportView(jTextArea1);
    jTextArea1.setText(tTest.zeigeHilfe());
    cp.add(jScrollPanejTextArea1);


    jbutton4.setBounds(625, 80, 130, 40);
    jbutton4.setText("Hauptmenü");
    jbutton4.setBorder(BorderFactory.createLineBorder(Color.blue, 2));
    jbutton4.setHorizontalAlignment(SwingConstants.CENTER);
    jbutton4.setHorizontalTextPosition(SwingConstants.CENTER);
    jbutton4.setFont(new Font("MS Sans Serif", 1, 14));
    cp.add(jbutton4);
    jbutton4.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        jbutton4ActionPerformed(evt); } });

    jbutton5.setBounds(625, 280, 130, 40);
    jbutton5.setText("Highscore");
    jbutton5.setBorder(BorderFactory.createLineBorder(Color.blue, 2));
    jbutton5.setHorizontalAlignment(SwingConstants.CENTER);
    jbutton5.setHorizontalTextPosition(SwingConstants.CENTER);
    jbutton5.setFont(new Font("MS Sans Serif", 1, 14));
    cp.add(jbutton5);
    jbutton5.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        jbutton5ActionPerformed(evt); } });


    jlb2.setBounds(225, 20, 350, 50);
    jlb2.setText("Konzentrationstest");
    jlb2.setHorizontalAlignment(SwingConstants.CENTER);
    jlb2.setHorizontalTextPosition(SwingConstants.CENTER);
    jlb2.setFont(new Font("MS Sans Serif", 1, 24));
    cp.add(jlb2);
    // Ende Komponenten

    setVisible(true);
  }

  // Anfang Ereignisprozeduren
  public void paint(Graphics g)
  {
    super.paintComponents(g);
  }
  //start
  public void jButton1ActionPerformed(ActionEvent evt) {
     jButton1.setEnabled(false);
                if(tTest instanceof KonzentrationsTest){
                    jButton1.setEnabled(false);
                    jButton2.setEnabled(true);
                    jButton3.setEnabled(false);
                }
                zeichenFlaeche.start();
                tTest.starten();
  }
  //stop
  public void jButton2ActionPerformed(ActionEvent evt) {
     tTest.stoppen();
                zeichenFlaeche.stop();
                //jTextField1.setText(tTest.holeErgebnis());
                jButton1.setEnabled(false);
                jButton2.setEnabled(false);
                jButton3.setEnabled(true);
                //jTextField1.setText("***Abbruch***");
  }
  //neu
  public void jButton3ActionPerformed(ActionEvent evt) {
     if(tTest instanceof KonzentrationsTest){
        tTest = new KonzentrationsTest(200, 200);

     }
     reset(tTest);
     zeichenFlaeche.repaint();
  }
  
  //Hauptmenü
  
  public void jbutton4ActionPerformed(ActionEvent evt){
    this.setVisible(false);
    ControlPanel.main(null);
  }
  
  private void reset(TauglichkeitsTest tauglichkeitstest)
  {
      jButton1.setEnabled(true);
      jButton2.setEnabled(false);
      jButton3.setEnabled(false);
      zeichenFlaeche.setTauglichkeitsTest(tauglichkeitstest);
      jTextArea1.setText(tauglichkeitstest.zeigeHilfe());
      jlb1.setText("Reaktionszeit ");
      //jTextField1.setText(" ");
  }
  public boolean isFocusablejButton1()
  {

      jButton1.requestFocus(false);
      return false;
  }

//  public void jbutton4ActionPerformed(ActionEvent evt) {
//
//  }
  public void jbutton5ActionPerformed(ActionEvent evt) {

  }
  // Ende Ereignisprozeduren

  public static void main (String[] args) {
    new ZeichenPanelGUIKonzentration("Tauglichkeitstest");
  }
}
```


----------



## The_S (1. Dez 2006)

OK, ich brauche noch

1x Reaktionstest
1x ZeichenPanelGUIEinschaetzung
1x ZiffernFeld



[edit] Ich würde auch gerne tauschen. Kann dir 1x ZeichenPanelGUIReaktion, 3x ZeichenPanel und 2x ZeichenPanelGUIKonzentration anbieten


----------



## ET5F1 (1. Dez 2006)

pls gib mal Email ich schick euch  das komplett Programm


----------



## The_S (1. Dez 2006)

steht im Profil. Kann ich aber erst abrufen wenn ich daheim bin. Also erwarte net zu schnell hilfe  .


----------



## ET5F1 (1. Dez 2006)

ja ist ok. 
Schiche es dir dann per E-Mail danke.


----------



## ET5F1 (1. Dez 2006)

Deine Mail Adresse steht da nich drin könnte Dir nur über Forum direkt ne Mail schicken aber an die kann ich keinen Anhang beifügen.....Melde mich gleich von zu Hause.


----------



## Leroy42 (1. Dez 2006)

@ET5F1
Zitiere mal diesen Post um zu sehen wie man code-Tags einsetzt:


---> Hier steht [ c o d e ]  (ohne meine Blanks)

```
...
```
<--- Hier steht [ / c o d e ]  (ohne meine Blanks)

Edit: Schon wieder übersehen daß es bereits ein 3 Seiten langer Thread ist


----------



## ET5F1 (4. Dez 2006)

hallo da sind wir wieder.
Hatte keine Zeit am Wochende um das Programm zu schicken.
Können wir heute weiter machen?


----------



## The_S (4. Dez 2006)

klar, was gibts?


----------



## ET5F1 (4. Dez 2006)

Ja immer noch das Problem mit dem Focus.


----------



## The_S (4. Dez 2006)

und wie soll ich dir ohne neuen Input helfen? Hätte man dir anhand der bereits genannten Daten helfen können, wäre dies längst geschehen  .


----------



## ET5F1 (4. Dez 2006)

Du hast doch das Programm und wenn du auf Konzentrationstest gehst und den Startbutton drückst
und die Mouse nicht bewegst kannst du denn angezeigten Buchstabe nicht über die Tastertur 
eingeben.Erst wenn du die Mouse vom Startbutton weg nimmst(also bewegst),kann der Buchstabe eingegen werde.

Hast du es so ausprobiert und auch verstanden wasb ich meine?

Wenn es der Fall ist können wir weiter machen.


----------



## The_S (4. Dez 2006)

Woher soll ich das Programm haben? Du hast doch selber gesagt, dass du es nicht geschafft hast mir ne E-Mail zu schicken ...


----------



## ET5F1 (4. Dez 2006)

```
package Tauglichkeitstester;

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import Einschaetzungstest.ZeichenPanelGUIEinschaetzung;
import Reaktionstest.ZeichenPanelGUIReaktion;
import Konzentrationstest.ZeichenPanelGUIKonzentration;

public class ControlPanel extends JFrame implements ActionListener {


   private  Button prog1 = null;
   private  Button prog2 = null;
   private  Button prog3 = null;
   private  Button prog4 = null;
   private  Button exit  = null;

   public ControlPanel(String title) {

     super (title);
     this.setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
     int frameWidth = 800;
     int frameHeight = 600;
     setSize(frameWidth, frameHeight);
     Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
     int x = (d.width - getSize().width) / 2;
     int y = (d.height - getSize().height) / 2 ;
     setLocation(x, y);
     Panel cp = new Panel(null);
     add(cp);
     setLayout(null);
     //cp.setBackground(Color.yellow);

     
     
     //Anfang Komponente
     prog1 = new Button("Einschätzungstester");
     prog1.setBackground(Color.RED);
     prog1.setForeground(Color.black);
     prog1.setFont(new Font("MS Sant Serif", 1, 30));
     prog1.setBounds(152, 80, 473, 81);

     prog2 = new Button("Reaktionstester");
     prog2.setBackground(Color.blue);
     prog2.setForeground(Color.black);
     prog2.setFont(new Font("MS Sant Serif", 1, 30));
     prog2.setBounds(152, 224, 473, 81);

     prog3 = new Button("Konzentrationstester");
     prog3.setBackground(Color.orange);
     prog3.setForeground(Color.black);
     prog3.setFont(new Font("MS Sant Serif", 1, 30));
     prog3.setBounds(152, 376, 473, 81);
     
        
        exit = new Button ( "EXIT");
        exit.setBackground(Color.PINK);
        exit.setForeground(Color.black);
        exit.setFont(new Font("MS Sant Serif", 1, 12));
        exit.setBounds(600,500,150,40);

        add(prog1);
        add(prog2);
        add(prog3);
        add (exit);

        prog1.addActionListener(this);
        prog2.addActionListener(this);
        prog3.addActionListener(this);
        exit.addActionListener(this);

         setVisible(true);
   }

   //Ende Komponente

//   public void ControlPanelSichtbar (){
//     this.setVisible(true);
//   }
   public static void main(String[] args) {
      new ControlPanel("Tauglichkeitstester");

   }

   public void actionPerformed(ActionEvent evt) {

      if (evt.getSource() == prog1) {
         ZeichenPanelGUIEinschaetzung.main(null);// Starter Klasse des 1. Programms
         this.setVisible(false);
        }
      else if (evt.getSource() == prog2) {
         ZeichenPanelGUIReaktion.main(null); // Starter Klasse des 2. Programms
          this.setVisible(false);
      }
      else if (evt.getSource() == prog3) {
         ZeichenPanelGUIKonzentration.main(null); // Starter Klasse des 3. Programms
         this.setVisible(false);
      }
      else if (evt.getSource() == exit) {
              System.exit(0);

      }
   }
}
```


----------



## The_S (4. Dez 2006)

lol, mach sowas nie wieder ... meine Kollegen schauen scho merkwürdig weil ich hier vor lachen fast flach liege. Lies dir doch den Thread nomma durch. Dann wirste feststellen, dass ich ControlPanel scho habe (mittlerweile 2x). Aber weil dus bist, liste ich dir nochmal auf was ich an Klassen habe und was ich brauche:

Was ich habe:

2x ControlPanel 
1x KonzentrationsTest 
1x StoppUhrGUI 
1x StoppUhr 
1x TastaturTest 
1x Tauglichkeitstest 
4x ZeichenPanel 
4x ZeichenPanelGUIKonzentration 
1x ZeichenPanelGUIReaktion

Was ich noch brauche ist: 

1x ZiffernFeld 
1x ZeichenPanelGUIEinschaetzung


----------



## ET5F1 (4. Dez 2006)

```
package Einschaetzungstest;

import Tauglichkeitstester.ControlPanel;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;


public class ZeichenPanelGUIEinschaetzung extends JFrame {
  // Anfang Variablen
  private ZeichenPanel zeichenFlaeche = new ZeichenPanel(200,200);
  private JButton jButton1 = new JButton();
  private JButton jButton2 = new JButton();
  private JButton jButton3 = new JButton();
  private JButton jButton4 = new JButton();
  private JButton jButton5 = new JButton();
  private JLabel jlb1 = new JLabel();
  protected TauglichkeitsTest tTest = new EinschaetzungsTest(350, 240);;
  //private JTextField jTextField1 = new JTextField();
  private JScrollPane jScrollPanejTextArea1 = new JScrollPane();
  private JTextArea jTextArea1 = new JTextArea("");



  private JLabel jlb2 = new JLabel();



  // Ende Variablen

  public ZeichenPanelGUIEinschaetzung (String title) {
    // Frame-Initialisierung
    super (title);
    this.setDefaultCloseOperation(EXIT_ON_CLOSE);
    int frameWidth = 800;
    int frameHeight = 600;
    setSize(frameWidth, frameHeight);
    Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
    int x = (d.width - getSize().width) / 2;
    int y = (d.height - getSize().height) / 2 ;
    setLocation(x, y);
    Container cp = getContentPane();
    cp.setLayout(null);

    // Anfang Komponenten

    zeichenFlaeche.setBounds(225, 80, 350, 240);
    cp.add(zeichenFlaeche);
    zeichenFlaeche.setTauglichkeitsTest(tTest);


    jButton1.setBounds(30, 80, 130, 40);
    jButton1.setText("Start");
    jButton1.setBorder(BorderFactory.createLineBorder(Color.blue, 2));
    jButton1.setBackground(Color.lightGray);
    jButton1.setForeground(Color.black);
    jButton1.setFont(new Font("MS Sans Serif", 1, 14));
    cp.add(jButton1);
    jButton1.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        jButton1ActionPerformed(evt);
      }
    });

    jButton2.setBounds(30, 180, 130, 40);
    jButton2.setText("Stop");
    jButton2.setBorder(BorderFactory.createLineBorder(Color.blue, 2));
    jButton2.setBackground(Color.lightGray);
    jButton2.setForeground(Color.black);
    jButton2.setFont(new Font("MS Sans Serif", 1, 14));
    cp.add(jButton2);
    jButton2.setEnabled(false);
    jButton2.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        jButton2ActionPerformed(evt);
      }
    });

    jButton3.setBounds( 30, 280, 130, 40);
    jButton3.setText("Neu");
    jButton3.setBorder(BorderFactory.createLineBorder(Color.blue, 2));
    jButton3.setBackground(Color.lightGray);
    jButton3.setForeground(Color.black);
    jButton3.setFont(new Font("MS Sans Serif", 1, 14));
    cp.add(jButton3);
    jButton3.setEnabled(false);
    jButton3.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        jButton3ActionPerformed(evt);
      }
    });

    //jTextField1.setBounds(630, 163, 120, 75);
    //jTextField1.setText("Reaktionszeit");
    //cp.add(jTextField1);

    jlb1.setBounds(620, 163, 150, 75);
    jlb1.setText("Abweichung");
    jlb1.setFont(new Font("MS Sant Serif",1, 22));
    jlb1.setForeground(Color.red);
    jlb1.setBackground(Color.white);
    jlb1.setBorder(BorderFactory.createLineBorder(Color.black, 5));
    jlb1.setOpaque(true);
    jlb1.setHorizontalAlignment(SwingConstants.CENTER);
    jlb1.setHorizontalTextPosition(SwingConstants.CENTER);
    cp.add(jlb1);

    jScrollPanejTextArea1.setBounds(225, 400, 350, 100);
    jTextArea1.setText("(Strings)");
    jTextArea1.setFont(new Font("MS Sans Serif", 1, 11));
    jTextArea1.setBackground(Color.LIGHT_GRAY);
    jTextArea1.setForeground(Color.black);
    jScrollPanejTextArea1.setViewportView(jTextArea1);
    jTextArea1.setText(tTest.zeigeHilfe());
    jTextArea1.setEditable(false);
    cp.add(jScrollPanejTextArea1);

    jButton4.setBounds(625, 80, 130, 40);
    jButton4.setText("Hauptmenü");
    jButton4.setBorder(BorderFactory.createLineBorder(Color.blue, 2));
    jButton4.setBackground(Color.lightGray);
    jButton4.setForeground(Color.black);
    jButton4.setHorizontalAlignment(SwingConstants.CENTER);
    jButton4.setHorizontalTextPosition(SwingConstants.CENTER);
    jButton4.setFont(new Font("MS Sans Serif", 1, 14));
    cp.add(jButton4);
    jButton4.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        jButton4ActionPerformed(evt);
         }
          });

    jButton5.setBounds(625, 280, 130, 40);
    jButton5.setText("Highscore");
    jButton5.setBorder(BorderFactory.createLineBorder(Color.blue, 2));
    jButton5.setBackground(Color.lightGray);
    jButton5.setForeground(Color.black);
    jButton5.setHorizontalAlignment(SwingConstants.CENTER);
    jButton5.setHorizontalTextPosition(SwingConstants.CENTER);
    jButton5.setFont(new Font("MS Sans Serif", 1, 14));
    cp.add(jButton5);
    jButton5.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        jButton5ActionPerformed(evt); } });


    jlb2.setBounds(225, 20, 350, 50);
    jlb2.setText("Einschätzungstest");
    jlb2.setBackground(Color.white);
    jlb2.setOpaque(false);
    jlb2.setHorizontalAlignment(SwingConstants.CENTER);
    jlb2.setHorizontalTextPosition(SwingConstants.CENTER);
    jlb2.setFont(new Font("MS Sans Serif", 1, 24));
    jlb2.setForeground(Color.black);
    cp.add(jlb2);






    // Ende Komponenten

    setVisible(true);
  }

  // Anfang Ereignisprozeduren
  public void paint(Graphics g)
  {
    super.paintComponents(g);
  }
  //start
  public void jButton1ActionPerformed(ActionEvent evt) {
     jButton1.setEnabled(false);
                if(tTest instanceof EinschaetzungsTest){
                    jButton1.setEnabled(false);
                    jButton2.setEnabled(true);
                    jButton3.setEnabled(false);
                }
                zeichenFlaeche.start();
                tTest.starten();
                this.setSize(800,600);
  }
  //stop
  public void jButton2ActionPerformed(ActionEvent evt) {
     tTest.stoppen();
                zeichenFlaeche.stop();
                //jTextField1.setText(tTest.holeErgebnis());
                jlb1.setText(tTest.holeErgebnis());
                jButton1.setEnabled(false);
                jButton2.setEnabled(false);
                jButton3.setEnabled(true);
                this.setSize(800,601);
  }
  //neu
  public void jButton3ActionPerformed(ActionEvent evt) {
     if(tTest instanceof EinschaetzungsTest){
        tTest = new EinschaetzungsTest(200, 200);

     }
     reset(tTest);
     zeichenFlaeche.repaint();
  }
  
  //Zurück zum Hauptmenü
  
  public void jButton4ActionPerformed(ActionEvent evt){
    this.setVisible(false);
    ControlPanel.main(null);
  }
  
  private void reset(TauglichkeitsTest tauglichkeitstest)
  {
      jButton1.setEnabled(true);
      jButton2.setEnabled(false);
      jButton3.setEnabled(false);
      zeichenFlaeche.setTauglichkeitsTest(tauglichkeitstest);
      jTextArea1.setText(tauglichkeitstest.zeigeHilfe());
      //jTextField1.setText(" ");
      jlb1.setText(" ");
  }



  public void jButton5ActionPerformed(ActionEvent evt) {

  }
  // Ende Ereignisprozeduren

  public static void main (String[] args) {
    new ZeichenPanelGUIEinschaetzung("Tauglichkeitstester");
  }
}
```


----------



## ET5F1 (4. Dez 2006)

Da steht Ziffern feld das müsste es doch sein oder?
	
	
	
	





```
package Konzentrationstest;

import java.awt.*;
import java.lang.reflect.InvocationTargetException;
import javax.swing.*;

public class ZeichenPanel extends JPanel
{
    private TauglichkeitsTest tTest;
    private Runnable neuzeichnenRun;
    private Thread dieserThread;

    public ZeichenPanel(int i, int j)
    {
        setPreferredSize(new Dimension(i, j));
        setBorder(BorderFactory.createLineBorder(Color.black, 10));
        setOpaque(true);
        setBackground(Color.white);
        neuzeichnenRun = new Runnable() {

            public void run()
            {
                neuzeichnen();
            }

        };
    }
    public void setTauglichkeitsTest(TauglichkeitsTest tauglichkeitstest)
    {
        tTest = tauglichkeitstest;
    }
    public void paintComponent(Graphics g)
    {
        super.paintComponent(g);
        if(tTest != null)
            tTest.zeigeTestFigur(g);
    }
    public void start()
    {
        dieserThread = new Thread(neuzeichnenRun);
        dieserThread.start();
    }
    public void stop()
    {
        if(dieserThread != null)
        {
            dieserThread.interrupt();
            dieserThread = null;
        }
    }
    private void neuzeichnen()
    {
        for(Thread thread = Thread.currentThread(); thread == dieserThread;)
        {
            try
            {
                SwingUtilities.invokeAndWait(dieserThread);
            }
            catch(InterruptedException interruptedexception) { }
            catch(InvocationTargetException invocationtargetexception) { }
            if(dieserThread != null)
                synchronized(dieserThread)
                {
                    repaint();
                }
        }
    }
}
```


----------



## The_S (4. Dez 2006)

Du hast mir jetzt 5. mal die Klasse ZeichenPanel geschickt. Ich benötige aber die Klasse ZiffernFeld. Zusätzlich benötige ich jetzt noch ReaktionsTest und EinschaetzungsTest.

Du hast das Programm nicht wirklich selber geschrieben und hast auch eigentlich überhaupt keine Ahnung von Java oder? Lies erstmal ein Grundlagenbuch. Bzw. wenn de magst den GUI-Teil von einem ... :roll:


----------



## ET5F1 (4. Dez 2006)

Nein das Programm habe ich nicht selber geschrieben wir haben es bekommen und ändern einige Sachen.Das programm so wie es da jetzt steht wurde von uns geändert aber wir verstehen nicht ,was du mit ziffern Feld meinst.Da steht Ziffern feld und wir haben es jetzt so oft verschickt und du sagst immer ,das wir das falsche schicken.Wir öffnen alle Progamme und nur bei einem steht Ziffern Feld und das ist falsch.Da wissen wir auch nicht weiter,aber ich glaube du könntest das Problem mit dem Focus auch nicht beheben,weil Du ja noch in der Ausbildung bist.

Ich habe dir das Controll Pannel geschickt und da kannst du das Programm ausprobieren,aber du willst dies und das haben.  Ich glaube du hast die Funktion garnicht kappiert.

Oder?

Liege ich falsch? :shock:


----------



## The_S (4. Dez 2006)

ET5F1 hat gesagt.:
			
		

> was du mit ziffern Feld meinst.



Ich will doch einfach nur die Klasse ZiffernFeld, die eindeutig des öffteren in dem Source-Code benötigt wird.



			
				ET5F1 hat gesagt.:
			
		

> Da steht Ziffern feld



Ja klar steht da ZiffernFeld ... Guck ma ich kann das auch


```
Lösung
```

Jetzt steht da Lösung. Weißte jetzt wies geht?

Nur weil irgendwo in dem Code mal ZiffernFeld steht, heißt das noch lange nicht dass das die Klasse dazu beinhaltet. Und ne innere Klasse kann ich auch nirgends finden ...



			
				ET5F1 hat gesagt.:
			
		

> Wir öffnen alle Progamme und nur bei einem steht Ziffern Feld und das ist falsch



??? Definiere "Wir öffnen alle Programme", "nur bei einem steht Ziffern Feld" und "das ist falsch".



			
				ET5F1 hat gesagt.:
			
		

> Ich habe dir das Controll Pannel



ja, 3x mittlerweile :roll:



			
				ET5F1 hat gesagt.:
			
		

> und da kannst du das Programm ausprobieren



Nein, eben nicht. Weil mir die schon ca. 5.367.509 benannten Klassen immernoch fehlen.



			
				ET5F1 hat gesagt.:
			
		

> aber du willst dies und das haben



Wenn du nicht in der Lage bist das Problem genau zu beschreiben, mir das Programm zum Testen als jar zu schicken und es auch nciht auf die Reihe bekommst den KOMPLETTEN Source hier reinzustellen, dann brauch ich halt mal ALLE Klassen und net nur einige und davon die hälfte 5x.



			
				ET5F1 hat gesagt.:
			
		

> Ich glaube du hast die Funktion garnicht kappiert.



wtf? Welche Funktion denn? Hör mal, dieser Thread is mittlerweile 4 Seiten lang. Und du hast es immernoch nicht geschafft dein Problem nachvollziehbar darzustellen. Deshalb hab ich auch noch nicht mal angefagen überhaupt zu probieren diese Funktion (was auch immer damit gemeint ist) zu verstehen. Da das überhaupt nicht möglich ist (selbst wenn ich wüsste, was du mit "die Funktion" meinst) ohne den Ist-Zustand zu kennen.



			
				ET5F1 hat gesagt.:
			
		

> aber ich glaube du könntest das Problem mit dem Focus auch nicht beheben,weil Du ja noch in der Ausbildung bist.



loooooooooooooooooooooooooooooooooooool ... OMFG ... was bist du eigentlich? Ein Troll?


----------



## ET5F1 (4. Dez 2006)

Hier kommt alles was ich habe.
Und dann bist du dran.


----------



## ET5F1 (4. Dez 2006)

```
package Einschaetzungstest;

import java.awt.Color;

public class Ballon extends Kreis
{
    private Runnable wachseRadiusRun;
    private Thread thread;
    
    public Ballon(int i, int j, Color color)
    {
        super(i, j, 0, color);               // Kreis mit Radius 0 wird erzeugt
        wachseRadiusRun = new Runnable() 
        {

            public void run()
            {
                wachseRadius();
            }
        };
    }
    public void start()
    {
        thread = new Thread(wachseRadiusRun);
        thread.start();
    }
    private void wachseRadius()
    {
        for(Thread thread1 = Thread.currentThread(); thread1 == thread;)
        {
            try
            {
                Thread.sleep(50L);   //Schnelligkeit des Wachsens
            }
            catch(InterruptedException interruptedexception)
            {
                return;
            }
            synchronized(thread1)
            {
                if(radius < 120)    //maximale Ballondurchmesser
                    radius++;
            }
        }
    }
    public void stop()
    {
        if(thread != null)
        {
            thread.interrupt();
            thread = null;
        }
    }
}
```


----------



## ET5F1 (4. Dez 2006)

```
package Einschaetzungstest;

import java.awt.*;

public class BallonFeld
{
    protected Quadrat quadrat;
    protected Ballon ballon;
    protected KQuadrat kQuadrat;
    private Figur figur;
    private int xMitte;
    private int yMitte;
    private Runnable warteRun;
    private Thread dieserThread;

    public BallonFeld(int i, int j, int k)
    {
        xMitte = i;
        yMitte = j;
        int l = k / 10;
        int i1 = k / 4;
        int j1 = i1 + (int)(Math.random() * (double)(k - i1 - 2 * l));
        int k1 = (int)((1.0D - 2D * Math.random()) * (double)(i - j1 / 2 - l));
        int l1 = (int)((1.0D - 2D * Math.random()) * (double)(j - j1 / 2 - l));
        quadrat = new Quadrat(i - k1, j - l1, j1, Color.GREEN);
        ballon = new Ballon(i + k1, j + l1, Color.RED);
        kQuadrat = new KQuadrat(i, j, j1, quadrat.gibFarbe(), ballon);
        figur = null;
        warteRun = new Runnable() {

            public void run()
            {
                warte(2000);    //2000bei anderen Werten keine Veränderung zu sehen 
            }

        };
    }
    public void starten()
    {
        figur = quadrat;
        dieserThread = new Thread(warteRun);
        dieserThread.start();
    }
    private void warte(int i)
    {
        for(Thread thread = Thread.currentThread(); dieserThread == thread;)
        {
            try
            {
                Thread.sleep(1000L);//war 2000 -Quadrat wird angezeigt
            }
            catch(InterruptedException interruptedexception)
            {
                return;
            }
            if(dieserThread != null)
            {
                dieserThread = null;
                ballon.start();
                figur = ballon;
            }
        }

    }
    public void stoppen()
    {
        if(dieserThread != null)
        {
            dieserThread.interrupt();
            dieserThread = null;
        }
        ballon.stop();
        ballon.setzeMittelpunkt(xMitte, yMitte);
        figur = kQuadrat;
    }
    public int ergebnis()
    {
        return (int)Math.round((((double)quadrat.gibSeite() - 2D * (double)ballon.gibRadius()) * 100D) / (double)quadrat.gibSeite());
    }
    public void darstellen(Graphics g)
    {
        if(figur != null)
            figur.darstellen(g);
    }
}
```


----------



## ET5F1 (4. Dez 2006)

```
package Einschaetzungstest;


import java.awt.Graphics;

public class EinschaetzungsTest extends TauglichkeitsTest
{
    protected BallonFeld einBallonFeld;
    
    public EinschaetzungsTest(int i, int j)
    {
        super(i, j);
        einBallonFeld = new BallonFeld(xMitte, yMitte, (Math.min(i, j) * 9) / 10);
    }
    public void tueNachStart()
    {
        einBallonFeld.starten();
    }
    public void stoppen()
    {
        super.stoppen();
        einBallonFeld.stoppen();
    }
    public String holeErgebnis()
    {
        return " " + Integer.toString(Math.abs(einBallonFeld.ergebnis())) + "% " + (einBallonFeld.ergebnis() >= 0 ? einBallonFeld.ergebnis() <= 0 ? "" : "zu klein" : "zu groß");
    }
    public String zeigeHilfe()
    {
        return "Klicken Sie auf 'Start'\nWarten Sie bis das gruene Quadrat erscheint.\nNach 2 Sekunden beginnt ein roter Ballon zu wachsen.\nWenn Sie glauben,\ndass der Ballon gerade noch durch das gruene Quadrat passt,\nklicken Sie auf 'Stopp'.";
    }
    public void zeigeTestFigur(Graphics g)
    {
        einBallonFeld.darstellen(g);
    }
}
```


----------



## The_S (4. Dez 2006)

kommt da noch was? Oder sollen wir jetzt hier 

http://www.java-forum.org/de/viewtopic.php?t=40483&highlight=

weitermachen :roll: ?


----------



## Azrahel (4. Dez 2006)

@ET5F1 Also am besten das ganze an Sun schicken, sollen die sich damit rumprügeln. Weil dasn die Java so schwer gemacht haben ist ja eindeutig deren schuld.  :meld: Ist ja bekannt das man dafür mindestens 28 Semester studiert haben muss, und dann sind wir natürlich viel zu unwissend dafür.

@Hobbit, da haste keine Chance... *eingeh vor lachen*
Schade das du erst in der Ausbildung bist, wenn du schon ausgebildet wärst könntest du vielleicht das Ziffernfeld hellsehen.  :bae: Aber so müssen da Profis ran.


Werd ich jetzt aus dem Forum verbannt wegen Zynismus?


----------



## Leroy42 (4. Dez 2006)

Azrahel hat gesagt.:
			
		

> Werd ich jetzt aus dem Forum verbannt wegen Zynismus?



 :shock: Da müßte ich ja schon monatelang Hausverbot haben.

Außerdem war dein Post _höchstens_ sarkastisch, falls nicht
sogar noch ironisch.


----------



## WieselAc (4. Dez 2006)

1 x *Respekt* und *Anerkennung* für den Einsatzwillen!!!!

____________________________________________


hab auch bei mir mal gesucht aber das verschollene "ZiffernFeld" konnt ich auch bei mir nitt finden


----------



## The_S (4. Dez 2006)

So, nachdem ich ja in der Ausbildung noch net hellsehen kann, hab ich mal nen (ausgebildeten) Arbeitskollege gefragt. Und siehe da, er konnte mir die Antwort sagen. Ich hoffe sie hilft dir weiter!


```
42
```

 :shock: ...


----------



## Azrahel (4. Dez 2006)

Jetzt habt ihrs geschafft, der Azrahel wurde grade mit nem Lachmuskelkrampf  und anschliessender Atemnot vom Notarzt abgeholt...


----------



## SniperWolf26 (6. Dez 2006)

Hi gib mir mal deine Mail Adresse und ich schick Dir das Programm zu....


----------



## The_S (6. Dez 2006)

SniperWolf26 hat gesagt.:
			
		

> Hi gib mir mal deine Mail Adresse und ich schick Dir das Programm zu....



Du redest mit?


----------



## SniperWolf26 (6. Dez 2006)

mit Dir :lol:


----------



## The_S (6. Dez 2006)

Und welches Prog willste mir schicken?  ???:L


----------



## SniperWolf26 (6. Dez 2006)

```
package Konzentrationstest;



import java.awt.*;

public class ZiffernFeld
{
    protected int xMitte;
    protected int yMitte;
    protected Color farbe;
    private char ziffer;
    private Font font;

    public ZiffernFeld(int i, int j, Color color)
    {
        xMitte = i;
        yMitte = j;
        farbe = color;
        ziffer = '\0'; //Keine Ziffer
//        ziffer = 'a';  //Eine Ziffer
//        System.out.println("Ausgabe"+ziffer);
        font = new Font("Times New Roman", Font.BOLD, 72);
    }
    public void waehleZiffer()
    {
        ziffer = (char)(97 + (int)(Math.random() * 25D));
    }
    public char gibZiffer()
    {
        return ziffer;
    }
    public void zeichne(Graphics g)
    {
        g.setFont(font);
        g.setColor(farbe);
        FontMetrics fontmetrics = g.getFontMetrics(font);
//        String s = ""+ziffer;
        String s = (ziffer!='\0') ? "" + ziffer : "";
        g.drawString(s, xMitte - fontmetrics.stringWidth(s) / 2, yMitte + fontmetrics.getAscent() / 2);
    }
    public static void main(String[] _)
    {
      new ZiffernFeld(200,200,Color.RED);
    }
}
```


----------



## SniperWolf26 (6. Dez 2006)

Ich habe 1 mal ZiffernFeld möchte jemand tauschen? :wink:


----------



## The_S (6. Dez 2006)

Haste nen Doppelaccount odda was? Das lass mal nicht nen Mod bzw. Admin sehen  .

Schick mir doch einfach ne E-Mail übers Forum. Ich antwort dir dann mit meiner richtigen Adresse an die du dann das Prog im Anhang schicken kannst.


----------



## The_S (6. Dez 2006)

SniperWolf26 hat gesagt.:
			
		

> Ich habe 1 mal ZiffernFeld möchte jemand tauschen? :wink:



Joa *meld* Bekommst 1x Controlpanel dafür. Source findeste in einigen Seiten vorher


----------



## WieselAc (6. Dez 2006)

:applaus:   :applaus:   :applaus:   :applaus:   :applaus:   :applaus:   :applaus: 

Ich werd bekloppt !!!

:applaus:   :applaus:   :applaus:   :applaus:   :applaus:   :applaus:   :applaus: 

Das ich dass noch erleben durfte!!!!!!!!!!!



Ich muss weinen


----------



## dhachim (6. Dez 2006)

Ich brech weg  Sowas lustiges habe ich schon lange nicht mehr gelesen. Danke euch.

@Hobbit: Meine Anerkennung hast du. Du musst Geduld zum abwinken haben. 


@ ET5F1: Beim nächsten mal Poste bitte im Anfängerforum, denn da gehörst du noch hin. Wie ich den Thread verfolgt habe, hast du keinen blassen Schimmer von Java. Du solltest dringend mal ein Paar Kapitel zur Objektorientierung lesen. 
www.javabuch.de

Wenn du mal verstanden hast wie ein Java Programm funktioniert, und was referenzen und Objekte sind, wirst du erstens verstehen, was die Leute hier im Forum von dir brauchen, und vielleicht wirst du auch konkretere Fragenm stellen können, ohne seitenweise Code zu posten.

Es ist selten, dass du so Leute wie den lieben Herrn Hobbit triffst der sich die Mühen macht den ganzen Wulst den du bietest zu lesen.


so long 
Daniel Hachim


----------

