package ep2_k_3;
import java.awt.EventQueue;
import java.awt.GridBagLayout;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class WackelSchloss {
boolean direction = true;
String[] combination = {"5","2","1","7","7","1"};
int i=0;
WackelThread thread1 = new WackelThread();
WackelThread2 thread2 = new WackelThread2();
private JFrame frame;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
WackelSchloss window = new WackelSchloss();
window.frame.setVisible(true);
window.frame.setSize(200, 200);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the application.
*/
public WackelSchloss() {
initialize();
}
/**
* Initialize the contents of the frame.
*/
public void initialize() {
frame = new JFrame();
frame.setBounds(100, 100, 145, 147);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
GridBagLayout gridBagLayout = new GridBagLayout();
gridBagLayout.columnWidths = new int[]{0, 0, 0, 0};
gridBagLayout.rowHeights = new int[]{0, 0, 0, 0, 0};
gridBagLayout.columnWeights = new double[]{0.0, 0.0, 0.0, Double.MIN_VALUE};
gridBagLayout.rowWeights = new double[]{0.0, 0.0, 0.0, 0.0, Double.MIN_VALUE};
frame.getContentPane().setLayout(gridBagLayout);
JButton btn1 = new JButton("1");
GridBagConstraints gbc_btn1 = new GridBagConstraints();
gbc_btn1.insets = new Insets(0, 0, 5, 5);
gbc_btn1.gridx = 0;
gbc_btn1.gridy = 0;
frame.getContentPane().add(btn1, gbc_btn1);
JButton btn2 = new JButton("2");
GridBagConstraints gbc_btn2 = new GridBagConstraints();
gbc_btn2.insets = new Insets(0, 0, 5, 5);
gbc_btn2.gridx = 1;
gbc_btn2.gridy = 0;
frame.getContentPane().add(btn2, gbc_btn2);
JButton btn3 = new JButton("3");
GridBagConstraints gbc_btn3 = new GridBagConstraints();
gbc_btn3.insets = new Insets(0, 0, 5, 0);
gbc_btn3.gridx = 2;
gbc_btn3.gridy = 0;
frame.getContentPane().add(btn3, gbc_btn3);
JButton btn0 = new JButton("0");
btn0.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
}
});
GridBagConstraints gbc_btn0 = new GridBagConstraints();
gbc_btn0.insets = new Insets(0, 0, 5, 5);
gbc_btn0.gridx = 0;
gbc_btn0.gridy = 1;
frame.getContentPane().add(btn0, gbc_btn0);
JButton btn4 = new JButton("4");
GridBagConstraints gbc_btn4 = new GridBagConstraints();
gbc_btn4.insets = new Insets(0, 0, 5, 0);
gbc_btn4.gridx = 2;
gbc_btn4.gridy = 1;
frame.getContentPane().add(btn4, gbc_btn4);
JButton btn9 = new JButton("9");
GridBagConstraints gbc_btn9 = new GridBagConstraints();
gbc_btn9.insets = new Insets(0, 0, 5, 5);
gbc_btn9.gridx = 0;
gbc_btn9.gridy = 2;
frame.getContentPane().add(btn9, gbc_btn9);
JButton btn5 = new JButton("5");
GridBagConstraints gbc_btn5 = new GridBagConstraints();
gbc_btn5.insets = new Insets(0, 0, 5, 0);
gbc_btn5.gridx = 2;
gbc_btn5.gridy = 2;
frame.getContentPane().add(btn5, gbc_btn5);
JButton btn8 = new JButton("8");
GridBagConstraints gbc_btn8 = new GridBagConstraints();
gbc_btn8.insets = new Insets(0, 0, 0, 5);
gbc_btn8.gridx = 0;
gbc_btn8.gridy = 3;
frame.getContentPane().add(btn8, gbc_btn8);
JButton btn7 = new JButton("7");
GridBagConstraints gbc_btn7 = new GridBagConstraints();
gbc_btn7.insets = new Insets(0, 0, 0, 5);
gbc_btn7.gridx = 1;
gbc_btn7.gridy = 3;
frame.getContentPane().add(btn7, gbc_btn7);
JButton btn6 = new JButton("6");
GridBagConstraints gbc_btn6 = new GridBagConstraints();
gbc_btn6.gridx = 2;
gbc_btn6.gridy = 3;
frame.getContentPane().add(btn6, gbc_btn6);
// Zuweisen von ActionCommands zu den Buttons
btn0.setActionCommand("0");
btn1.setActionCommand("1");
btn2.setActionCommand("2");
btn3.setActionCommand("3");
btn4.setActionCommand("4");
btn5.setActionCommand("5");
btn6.setActionCommand("6");
btn7.setActionCommand("7");
btn8.setActionCommand("8");
btn9.setActionCommand("9");
ActionListener listener = new ActionListener() {
@SuppressWarnings("deprecation")
@Override
public void actionPerformed(ActionEvent e) {
//ActionCommand wird bei jedem Aufruf mit dem String Array gegengeprüft
//in dem String Array ist der richtige Code gespeichert
if (e.getActionCommand().equals(combination[i])) {
if (i==5) {
System.exit(0);
}
frame.getContentPane().setBackground(Color.green);
i++;
}
else {
i=0;
frame.getContentPane().setBackground(Color.red);
//zahlenRotieren(ba);
if (direction==true) {
System.out.println("direction true erreicht im listener");
thread1.stop();
thread2.start();
}
else {
thread2.stop();
thread1.start();
}
direction = !direction;
}
}
};
// Zuweisen von Actionlistenern zu den Buttons
btn0.addActionListener(listener);
btn1.addActionListener(listener);
btn2.addActionListener(listener);
btn3.addActionListener(listener);
btn4.addActionListener(listener);
btn5.addActionListener(listener);
btn6.addActionListener(listener);
btn7.addActionListener(listener);
btn8.addActionListener(listener);
btn9.addActionListener(listener);
JButton[] baa = {btn0,btn1,btn2,btn3,btn4,btn5,btn6,btn7,btn8,btn9,btn0};
zahlenRotieren(baa);
//zahlenRueckwaertsrotieren(ba);
}
public void zahlenRotieren(JButton[] ba){
for (JButton b : ba ) {
if (b.getActionCommand().equals("0") && b.getText().equals("0")) {
b.setActionCommand("1");
b.setText("1");
}
else if (b.getActionCommand().equals("1") && b.getText().equals("1")) {
b.setActionCommand("2");
b.setText("2");
}
else if (b.getActionCommand().equals("2") && b.getText().equals("2")) {
b.setActionCommand("3");
b.setText("3");
}
else if (b.getActionCommand().equals("3") && b.getText().equals("3")) {
b.setActionCommand("4");
b.setText("4");
}
else if (b.getActionCommand().equals("4") && b.getText().equals("4")) {
b.setActionCommand("5");
b.setText("5");
}
else if (b.getActionCommand().equals("5") && b.getText().equals("5")) {
b.setActionCommand("6");
b.setText("6");
}
else if (b.getActionCommand().equals("6") && b.getText().equals("6")) {
b.setActionCommand("7");
b.setText("7");
}
else if (b.getActionCommand().equals("7") && b.getText().equals("7")) {
b.setActionCommand("8");
b.setText("8");
}
else if (b.getActionCommand().equals("8") && b.getText().equals("8")) {
b.setActionCommand("9");
b.setText("9");
}
else if (b.getActionCommand().equals("9") && b.getText().equals("9")) {
b.setActionCommand("0");
b.setText("0");
}
b.repaint();
}
}
public void zahlenRueckwaertsrotieren(JButton[] ba){
for (JButton b : ba ) {
if (b.getActionCommand().equals("2") && b.getText().equals("2")) {
b.setActionCommand("1");
b.setText("1");
}
else if (b.getActionCommand().equals("3") && b.getText().equals("3")) {
b.setActionCommand("2");
b.setText("2");
}
else if (b.getActionCommand().equals("4") && b.getText().equals("4")) {
b.setActionCommand("3");
b.setText("3");
}
else if (b.getActionCommand().equals("5") && b.getText().equals("5")) {
b.setActionCommand("4");
b.setText("4");
}
else if (b.getActionCommand().equals("6") && b.getText().equals("6")) {
b.setActionCommand("5");
b.setText("5");
}
else if (b.getActionCommand().equals("7") && b.getText().equals("7")) {
b.setActionCommand("6");
b.setText("6");
}
else if (b.getActionCommand().equals("8") && b.getText().equals("8")) {
b.setActionCommand("7");
b.setText("7");
}
else if (b.getActionCommand().equals("9") && b.getText().equals("9")) {
b.setActionCommand("8");
b.setText("8");
}
else if (b.getActionCommand().equals("0") && b.getText().equals("0")) {
b.setActionCommand("9");
b.setText("9");
}
else if (b.getActionCommand().equals("1") && b.getText().equals("1")) {
b.setActionCommand("0");
b.setText("0");
}
b.repaint();
}
}
}
package ep2_k_3;
public class WackelThread extends Thread {
@Override
public void run() {
super.run();
System.out.println("Thread 1 erreicht");
//Neue Fenster erstellen und sichtbar machen
WackelSchloss wackel = new WackelSchloss();
// For Schleife für den Farbwechsel
while (true) {
try {
// Eine Sekunde warten
Thread.sleep(1000);
System.out.println("Sleep erreicht von thread1");
wackel.zahlenRotieren(wackel.baa);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
private int buffer =-1;
synchronized void send(int i) {
try {
while (buffer >= 0) wait();
buffer = i;
notify();
} catch (InterruptedException e) {}
}
synchronized int receive() {
int result = 0;
try {
while ((result=buffer)<0) wait();
buffer = -1;
notify();
} catch (InterruptedException e) {}
return result;
}
}
package ep2_k_3;
public class WackelThread2 extends Thread {
@Override
public void run() {
super.run();
//Neue Fenster erstellen und sichtbar machen
WackelSchloss wackel = new WackelSchloss();
// For Schleife für den Farbwechsel
while (true) {
try {
// Eine Sekunde warten
Thread.sleep(1000);
System.out.println("Thread 2 erreicht");
wackel.zahlenRueckwaertsrotieren(wackel.baa);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
private int buffer =-1;
synchronized void send(int i) {
try {
while (buffer >= 0) wait();
buffer = i;
notify();
} catch (InterruptedException e) {}
}
synchronized int receive() {
int result = 0;
try {
while ((result=buffer)<0) wait();
buffer = -1;
notify();
} catch (InterruptedException e) {}
return result;
}
}
Comments
0 B
|👍
/👎