Focus Problem

Status
Nicht offen für weitere Antworten.

ET5F1

Mitglied
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

Top Contributor
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

Mitglied
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.
 

ET5F1

Mitglied
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

Top Contributor
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

Mitglied
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

Top Contributor
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

Mitglied
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

Top Contributor
Code Tags:

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


die machen aus:


public static void main (String[] arg){

}


Code:
public static void main (String[] arg){

}
 

The_S

Top Contributor
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.
 

The_S

Top Contributor
??? 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

Mitglied
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

Mitglied
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

Top Contributor
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

Top Contributor
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

Mitglied
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

Mitglied
Code:
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

Top Contributor
Na also ... geht doch :D . 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.
 
A

Azrahel NA

Gast
@ 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

Mitglied
Code:
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

Top Contributor
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.
 
A

Azrahel NA

Gast
Hobbit_Im_Blutrausch hat gesagt.:
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.

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 :D
 

The_S

Top Contributor
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

:cool:
 

ET5F1

Mitglied
Code:
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

Mitglied
Code:
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

Top Contributor
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 :)
 

The_S

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

ET5F1

Mitglied
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

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


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

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

ET5F1

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

The_S

Top Contributor
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

Mitglied
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

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

ET5F1

Mitglied
Code:
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

Top Contributor
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

Mitglied
Code:
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

Mitglied
Da steht Ziffern feld das müsste es doch sein oder?
Code:
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

Top Contributor
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

Mitglied
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

Top Contributor
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

Code:
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

Mitglied
Code:
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

Mitglied
Code:
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

Mitglied
Code:
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);
    }
}
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
E focus problem (mit mehreren frames) Allgemeine Java-Themen 10
S KeyListener ohne Focus - Wie? Allgemeine Java-Themen 2
B Focus auf das Eingabefeld richten Allgemeine Java-Themen 4
C Swing Focus nach Beendigung eines Modal-JDialogs Allgemeine Java-Themen 5
P Listener für Tastatureingaben ohne Focus Allgemeine Java-Themen 4
D Focus und Status Allgemeine Java-Themen 2
E Focus nach Start eines externen Programmes Allgemeine Java-Themen 6
H Focus Gained nach Fensterwechsel Allgemeine Java-Themen 13
H Fenster focus Allgemeine Java-Themen 5
ARadauer mit keylistener hören auch wenn frame nicht den focus hat Allgemeine Java-Themen 2
P Focus über einer JComponent Allgemeine Java-Themen 9
M Focus setzen - Frage zu FAQ Artikel Allgemeine Java-Themen 6
TheJavaKid Focus für KeyListener setzen Allgemeine Java-Themen 5
krgewb Problem mit Umlauten und Eszett bei InputStream Allgemeine Java-Themen 3
Max246Sch Backtracking Problem Box Filler Allgemeine Java-Themen 6
NightVision402 VisualVM Startskript Problem Allgemeine Java-Themen 3
javaBoon86 Email Server Connection Problem Allgemeine Java-Themen 1
F Problem mit PDFBOX Library Allgemeine Java-Themen 1
A Java modul Problem Allgemeine Java-Themen 4
D Read JSON File Problem Allgemeine Java-Themen 9
urmelausdemeis Exception in thread "main" java.lang.Error: Unresolved compilation problem: Allgemeine Java-Themen 7
J Problem mit JasperReports Allgemeine Java-Themen 8
M log4j Problem mit jlink Allgemeine Java-Themen 19
8u3631984 Problem beim Mocken von Record Klassen Allgemeine Java-Themen 4
torresbig Website login Problem - Jsoup, wie bisher, klappt nicht! Allgemeine Java-Themen 31
P Selenium . getText Problem Allgemeine Java-Themen 9
A Jar zu Exe Problem Allgemeine Java-Themen 13
sserio Variablen Liste erstellt und ein Problem mit dem Index Allgemeine Java-Themen 6
S Folgendes Problem bei einem Programm Allgemeine Java-Themen 1
stormyark Problem beim Klassen erstellen Allgemeine Java-Themen 1
A Thread.sleep Problem Allgemeine Java-Themen 2
A Problem bei der Nachbarschafttest Allgemeine Java-Themen 11
Splayfer Problem: no main manifest attribute Allgemeine Java-Themen 3
G javamail Problem beim Empfangen von Nachrichten Allgemeine Java-Themen 3
Splayfer JDA Problem mit MessageCounter Allgemeine Java-Themen 0
Splayfer Problem mit BufferedWriter Allgemeine Java-Themen 3
F Streams als Alternative für dieses Problem ? Allgemeine Java-Themen 15
N Maven Problem mit Datenbanktreiber (H2 Embedded) Allgemeine Java-Themen 12
T Problem beim Umwandeln in eine Jar-Datei Allgemeine Java-Themen 3
B Einfach Elemente zweier Arraylisten kreuz und quer vergleichen, min und max Problem? Allgemeine Java-Themen 16
C ArrayList Problem Allgemeine Java-Themen 3
kev34 nim-Spiel problem Allgemeine Java-Themen 1
D Firebase retrieve data Problem, Child Element wird nicht angesprochen Allgemeine Java-Themen 0
G Welches Problem besteht bei den Typparametern? Allgemeine Java-Themen 5
temi Problem mit Aufrufreihenfolge bei Vererbung Allgemeine Java-Themen 3
Sumo_ow "ArrayIndexOutofBoundsException: 2" Array Problem Allgemeine Java-Themen 6
T PIM basierend auf netbeans via AnyDesk Problem Allgemeine Java-Themen 3
xGh0st2014 Problem mit Java Array Allgemeine Java-Themen 1
Kirby.exe Verständnis Problem bei Rucksack Problem Allgemeine Java-Themen 6
B Eclipse-Lombok-Problem Allgemeine Java-Themen 19
I Input/Output ObjectOutputStream - Problem Allgemeine Java-Themen 7
1 Multiple Choice Knapsack- Problem Allgemeine Java-Themen 2
kodela Problem mit strukturiertem Array Allgemeine Java-Themen 18
E Problem mit Gridlayout und Button Allgemeine Java-Themen 2
A Array Problem Allgemeine Java-Themen 8
bueseb84 Problem Allgemeine Java-Themen 0
S Problem mit Arrays Allgemeine Java-Themen 1
D Nullpointer Exception Problem Allgemeine Java-Themen 5
B Problem mit meinen Klassen Allgemeine Java-Themen 6
A HashMap Methode "get()"-Problem Allgemeine Java-Themen 28
J Problem beim Umstellen auf Java jdk 13 Allgemeine Java-Themen 3
J Problem bei Install java 13 Allgemeine Java-Themen 3
X Profitable Reise Problem Allgemeine Java-Themen 32
A Problem beim öffnen von Java-Installern Allgemeine Java-Themen 1
Dann07 Problem mit JavaMail API Allgemeine Java-Themen 26
J Problem beim Generischen Klassen und Interfaces Allgemeine Java-Themen 2
L Klassen Algorithmus für das folgende Problem entwickeln? Allgemeine Java-Themen 30
J Clear-Problem Allgemeine Java-Themen 10
B Problem zu einem Java Projekt Allgemeine Java-Themen 6
S JFileChooser Problem Allgemeine Java-Themen 4
M Traveling Salesman - MST Heuristik Problem Allgemeine Java-Themen 4
J Traveling Salesman Problem Allgemeine Java-Themen 14
E Java Editor Problem mit 2er Exceptions Allgemeine Java-Themen 12
C code oder Bibliotheken für 2-Center Problem Allgemeine Java-Themen 4
M Salesman Problem - Bruteforce Algorithmus Allgemeine Java-Themen 23
S Methoden Problem mit NullPointerException Allgemeine Java-Themen 9
Javafan02 Problem mit if-clause Allgemeine Java-Themen 17
J Lombok Problem mit Konstruktoren bei Verberbung Allgemeine Java-Themen 1
kodela Event Handling Problem mit der Alt-Taste Allgemeine Java-Themen 16
W Threads Problem Allgemeine Java-Themen 15
D (Verständnis-)Problem mit Unterklasse Allgemeine Java-Themen 4
S Problem mit Generic bei unmodifiableCollection Allgemeine Java-Themen 4
S jserialcomm Problem Allgemeine Java-Themen 1
Flynn Thread-Problem... Allgemeine Java-Themen 2
J Generische Interface - Problem Allgemeine Java-Themen 3
G Problem beim GUI Allgemeine Java-Themen 9
L Applet Problem "security: Trusted libraries list file not found" ? Allgemeine Java-Themen 7
A OOP Problem beim Berechnen der größten Fläche eines Ringes Allgemeine Java-Themen 19
T Problem mit externen Datenbankzugriff über SSH Tunnel Allgemeine Java-Themen 4
F Problem beim Einlesen einer Textdatei Allgemeine Java-Themen 12
S Java OpenOffice Problem mit Windows-Benutzerwechsel Allgemeine Java-Themen 19
K Threads RAM Problem Allgemeine Java-Themen 20
P Operatoren Problem mit Zähler in recursiver Schleife Allgemeine Java-Themen 2
C Int Problem Allgemeine Java-Themen 8
C J2V8 NodeJs Java Bride Problem und Frage!?!? Allgemeine Java-Themen 1
J Problem bei Hashmap Key-Abfrage Allgemeine Java-Themen 4
C Webseiten Programm problem Allgemeine Java-Themen 5
M LocalDate Problem Allgemeine Java-Themen 4
J "Problem Objektorientierung" Allgemeine Java-Themen 20
geekex Problem Meldung! Was tun?! Allgemeine Java-Themen 19

Ähnliche Java Themen

Neue Themen


Oben