Enigma, variablen übernehmen

Klauziii

Mitglied
Hallo Leute,
ich programmiere von der Schule aus eine Enigma und habe auch eine Oberfläche zum eingeben etc geschrieben. Nur wenn ich jetzt versuche die Variablen unter der Eingabe zu verwenden werden sie mir rot angekreidet. Bin noch Anfänger mit Java, deshalb vielleicht einfaches Programmiererdeutsch für mich verwenden 😀 bin mir sicher das meine Variante nicht gerade die einfachste ist 😀 danke 🙂 ab ca 120 hauts dann nicht mehr hin ...


Java:
package enigm;


import java.io.*;

import enig.BufferedReader;
import enig.InputStreamReader;
import enig.string;
import Enigmapane.java;

import javax.swing.*;

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

public class Enigmapane extends JFrame implements ActionListener {
	
    private static JLabel        msgLabel       = new JLabel("Starttext: ");
    private static JLabel        keyLabel        = new JLabel("Walzen: ");
    private static JLabel        actionLabel     = new JLabel("Ringstellung: ");
    private static JLabel        resultLabel     = new JLabel("Endtext: ");
    private static JTextField    msgTextField    = new JTextField(20);
    private static JTextField    resultTextField = new JTextField(20);
    private static JSpinner      keySpinner1     = new JSpinner( new SpinnerNumberModel(5, 1, 5, 1) );
    private static JSpinner      keySpinner2     = new JSpinner( new SpinnerNumberModel(5, 1, 5, 1) );
    private static JSpinner      keySpinner3     = new JSpinner( new SpinnerNumberModel(5, 1, 5, 1) );
    private static JSpinner      keySpinner4     = new JSpinner( new SpinnerNumberModel(1, 1, 26, 1) );
    private static JSpinner      keySpinner5     = new JSpinner( new SpinnerNumberModel(1, 1, 26, 1) );
    private static JSpinner      keySpinner6     = new JSpinner( new SpinnerNumberModel(1, 1, 26, 1) );
    private static JButton       actionButton    = new JButton("Los");
    private static JPanel        panel           = new JPanel();
    
    public static void main(String[] args) {
		new Enigmapane();
    }
    public Enigmapane() {
    	this.setSize(500, 300);
    	this.setTitle("Enigma");
    	this.setLocationRelativeTo(null);
    	this.setDefaultCloseOperation(EXIT_ON_CLOSE);
    	this.setResizable(false);
    	
    	panel.setLayout(new GridBagLayout());
    	
    	addComponent(panel, msgLabel, 0, 0, 1, 1, GridBagConstraints.LINE_START);
    	addComponent(panel, msgTextField, 1, 0, 2, 1, GridBagConstraints.LINE_START);
    	
    	addComponent(panel, keyLabel, 0, 1, 1, 1, GridBagConstraints.LINE_START);
    	addComponent(panel, keySpinner1, 1, 1, 1, 1, GridBagConstraints.LINE_START);
    	
    	addComponent(panel, keyLabel, 0, 1, 1, 1, GridBagConstraints.LINE_START);
    	addComponent(panel, keySpinner2, 1, 1, 1, 1, GridBagConstraints.LINE_START);
    	
    	addComponent(panel, keyLabel, 0, 1, 1, 1, GridBagConstraints.LINE_START);
    	addComponent(panel, keySpinner3, 1, 1, 1, 1, GridBagConstraints.LINE_START);
    	
    	addComponent(panel, keyLabel, 0, 1, 1, 1, GridBagConstraints.LINE_START);
    	addComponent(panel, keySpinner4, 1, 1, 1, 1, GridBagConstraints.LINE_START);
    	
    	addComponent(panel, keyLabel, 0, 1, 1, 1, GridBagConstraints.LINE_START);
    	addComponent(panel, keySpinner5, 1, 1, 1, 1, GridBagConstraints.LINE_START);
    	
    	addComponent(panel, keyLabel, 0, 1, 1, 1, GridBagConstraints.LINE_START);
    	addComponent(panel, keySpinner6, 1, 1, 1, 1, GridBagConstraints.LINE_START);
    	
    	addComponent(panel, actionLabel, 0, 2, 1, 1, GridBagConstraints.LINE_START);
    	addComponent(panel, resultLabel, 0, 3, 1, 1, GridBagConstraints.LINE_START);
    	addComponent(panel, resultTextField, 1, 3, 2, 1, GridBagConstraints.LINE_START);
    	resultTextField.setEditable(false);
    	
    	addComponent(panel, actionButton, 1, 4, 1, 1, GridBagConstraints.CENTER);
    	actionButton.addActionListener(this);
    	
    	this.add(panel);
    	this.setVisible(true);
    }
    
    private void addComponent(JPanel p, JComponent c, int x, int y, int width, int height, int align) {
    	GridBagConstraints gc = new GridBagConstraints();
    	gc.gridx = x;
    	gc.gridy = y;
    	gc.gridwidth = width;
    	gc.gridheight = height;
    	gc.weightx = 100.0;
    	
    	
    	gc.weighty = 100.0;
    	gc.insets = new Insets(5, 5, 5, 5);
    	gc.anchor = align;
    	gc.fill = GridBagConstraints.NONE;
    	p.add(c, gc);
    	
    

}}









public class enig{
public static void main (String[] args ) throws IOException {
	BufferedReader input=new BufferedReader (new InputStreamReader (System.in)); 

char buchstabe;
int v1zahl; int v2zahl;int v3zahl;int v4zahl;int v5zahl;int v6zahl;int vuzahl;
int r1zahl; int r2zahl;int r3zahl;int rs; int as; int länge; int ruzahl;
int r4zahl; int r5zahl;int r1; int r2; int r3;

r1=(rs-1)+(as-1)+1;
r2=1; r3=1;
	for (int i = 0; i < länge; i++){
		
	
		
	
	    if(msgTextfield =='A') r1zahl=1+keySpinner4;
	    else if(msgTextfield =='B')r1zahl=2+keySpinner4;
	    else if(msgTextfield =='C')r1zahl=3+keySpinner4;
	    else if(msgTextfield =='D')r1zahl=4+keySpinner4;
	    else if(msgTextfield =='E')r1zahl=5+keySpinner4;
	    else if(msgTextfield =='F')r1zahl=6+keySpinner4;
	    else if(msgTextfield =='G')r1zahl=7+keySpinner4;
	    else if(msgTextfield =='H')r1zahl=8+keySpinner4;
	    else if(msgTextfield =='I')r1zahl=9+keySpinner4;
	    else if(msgTextfield =='J')r1zahl=10+keySpinner4;
	    else if(msgTextfield =='K')r1zahl=11+keySpinner4;
	    else if(msgTextfield =='L')r1zahl=12+keySpinner4;
	    else if(msgTextfield =='M')r1zahl=13+keySpinner4;
	    else if(msgTextfield =='N')r1zahl=14+keySpinner4;
	    else if(msgTextfield =='O')r1zahl=15+keySpinner4;
	    else if(msgTextfield =='P')r1zahl=16+keySpinner4;
	    else if(msgTextfield =='Q')r1zahl=17+keySpinner4;
	    else if(msgTextfield =='R')r1zahl=18+keySpinner4;
	    else if(msgTextfield =='S')r1zahl=19+keySpinner4;
	    else if(msgTextfield =='T')r1zahl=20+keySpinner4;
	    else if(msgTextfield =='U')r1zahl=21+keySpinner4;
	    else if(msgTextfield =='V')r1zahl=22+keySpinner4;
	    else if(msgTextfield =='W')r1zahl=23+keySpinner4;
	    else if(msgTextfield =='X')r1zahl=24+keySpinner4;
	    else if(msgTextfield =='Y')r1zahl=25+keySpinner4;
	    else if(msgTextfield =='Z')r1zahl=26+keySpinner4;
	    
	    r1zahl=r1zahl-(rs-1)+(as-1)+r1;
	    
//if (r1zahl>26)r1zahl=r1zahl-26;
	 
	    
	    
	    
	    
//Rotor 1
	    

	
	if(r1zahl==1) v1zahl=5;
    else if(r1zahl==2)v1zahl=11;
    else if(r1zahl==3)v1zahl=13;
    else if(r1zahl==4)v1zahl=6;
    else if(r1zahl==5)v1zahl=12;
    else if(r1zahl==6)v1zahl=7;
    else if(r1zahl==7)v1zahl=4;
    else if(r1zahl==8)v1zahl=17;
    else if(r1zahl==9)v1zahl=22;
    else if(r1zahl==10)v1zahl=26;
    else if(r1zahl==11)v1zahl=14;
    else if(r1zahl==12)v1zahl=20;
    else if(r1zahl==13)v1zahl=15;
    else if(r1zahl==14)v1zahl=23;
    else if(r1zahl==15)v1zahl=25;
    else if(r1zahl==16)v1zahl=8;
    else if(r1zahl==17)v1zahl=24;
    else if(r1zahl==18)v1zahl=21;
    else if(r1zahl==19)v1zahl=19;
    else if(r1zahl==20)v1zahl=16;
    else if(r1zahl==21)v1zahl=1;
    else if(r1zahl==22)v1zahl=9;
    else if(r1zahl==23)v1zahl=2;
    else if(r1zahl==24)v1zahl=18;
    else if(r1zahl==25)v1zahl=3;
    else if(r1zahl==26)v1zahl=10;
	
//Rotor 2
	
	v1zahl=r2zahl;
	if(r2zahl==1) v2zahl=1;
	else if(r2zahl==2)v2zahl=10;
	else if(r2zahl==3)v2zahl=4;
	else if(r2zahl==4)v2zahl=11;
	else if(r2zahl==5)v2zahl=19;
	else if(r2zahl==6)v2zahl=9;
	else if(r2zahl==7)v2zahl=18;
	else if(r2zahl==8)v2zahl=21;
	else if(r2zahl==9)v2zahl=24;
	else if(r2zahl==10)v2zahl=2;
	else if(r2zahl==11)v2zahl=12;
	else if(r2zahl==12)v2zahl=8;
	else if(r2zahl==13)v2zahl=23;
	else if(r2zahl==14)v2zahl=20;
	else if(r2zahl==15)v2zahl=13;
	else if(r2zahl==16)v2zahl=3;
	else if(r2zahl==17)v2zahl=17;
	else if(r2zahl==18)v2zahl=7;
	else if(r2zahl==19)v2zahl=26;
	else if(r2zahl==20)v2zahl=14;
	else if(r2zahl==21)v2zahl=16;
	else if(r2zahl==22)v2zahl=25;
	else if(r2zahl==23)v2zahl=2;
	else if(r2zahl==24)v2zahl=18;
	else if(r2zahl==25)v2zahl=15;
	else if(r2zahl==26)v2zahl=5;

//Rotor 3
	
	v2zahl=r3zahl;
	if(r3zahl==1) v3zahl=2;
	else if(r3zahl==2)v3zahl=4;
	else if(r3zahl==3)v3zahl=6;
	else if(r3zahl==4)v3zahl=8;
	else if(r3zahl==5)v3zahl=10;
	else if(r3zahl==6)v3zahl=12;
	else if(r3zahl==7)v3zahl=3;
	else if(r3zahl==8)v3zahl=16;
	else if(r3zahl==9)v3zahl=18;
	else if(r3zahl==10)v3zahl=20;
	else if(r3zahl==11)v3zahl=24;
	else if(r3zahl==12)v3zahl=22;
	else if(r3zahl==13)v3zahl=26;
	else if(r3zahl==14)v3zahl=14;
	else if(r3zahl==15)v3zahl=25;
	else if(r3zahl==16)v3zahl=5;
	else if(r3zahl==17)v3zahl=9;
	else if(r3zahl==18)v3zahl=23;
	else if(r3zahl==19)v3zahl=7;
	else if(r3zahl==20)v3zahl=1;
	else if(r3zahl==21)v3zahl=11;
	else if(r3zahl==22)v3zahl=13;
	else if(r3zahl==23)v3zahl=21;
	else if(r3zahl==24)v3zahl=19;
	else if(r3zahl==25)v3zahl=17;
	else if(r3zahl==26)v3zahl=15;

 //if (zahl>26)zahl-26;
 //if (zahl<1)zahl=zahl2-zahl1; 26-zahl;
	
//Rotor 4
 
	v3zahl=r4zahl;
	
	if(r4zahl==1) v4zahl=5;
    else if(r4zahl==2)v4zahl=19;
    else if(r4zahl==3)v4zahl=15;
    else if(r4zahl==4)v4zahl=22;
    else if(r4zahl==5)v4zahl=16;
    else if(r4zahl==6)v4zahl=26;
    else if(r4zahl==7)v4zahl=10;
    else if(r4zahl==8)v4zahl=1;
    else if(r4zahl==9)v4zahl=25;
    else if(r4zahl==10)v4zahl=17;
    else if(r4zahl==11)v4zahl=21;
    else if(r4zahl==12)v4zahl=9;
    else if(r4zahl==13)v4zahl=18;
    else if(r4zahl==14)v4zahl=8;
    else if(r4zahl==15)v4zahl=24;
    else if(r4zahl==16)v4zahl=12;
    else if(r4zahl==17)v4zahl=14;
    else if(r4zahl==18)v4zahl=6;
    else if(r4zahl==19)v4zahl=20;
    else if(r4zahl==20)v4zahl=7;
    else if(r4zahl==21)v4zahl=11;
    else if(r4zahl==22)v4zahl=4;
    else if(r4zahl==23)v4zahl=3;
    else if(r4zahl==24)v4zahl=13;
    else if(r4zahl==25)v4zahl=23;
    else if(r4zahl==26)v4zahl=2;	
	
	
//Rotor 5
	
	v4zahl=r5zahl;
	
	if(r5zahl==1) v5zahl=22;
    else if(r5zahl==2)v5zahl=26;
    else if(r5zahl==3)v5zahl=2;
    else if(r5zahl==4)v5zahl=18;
    else if(r5zahl==5)v5zahl=7;
    else if(r5zahl==6)v5zahl=9;
    else if(r5zahl==7)v5zahl=20;
    else if(r5zahl==8)v5zahl=25;
    else if(r5zahl==9)v5zahl=21;
    else if(r5zahl==10)v5zahl=16;
    else if(r5zahl==11)v5zahl=19;
    else if(r5zahl==12)v5zahl=4;
    else if(r5zahl==13)v5zahl=14;
    else if(r5zahl==14)v5zahl=8;
    else if(r5zahl==15)v5zahl=12;
    else if(r5zahl==16)v5zahl=24;
    else if(r5zahl==17)v5zahl=1;
    else if(r5zahl==18)v5zahl=23;
    else if(r5zahl==19)v5zahl=13;
    else if(r5zahl==20)v5zahl=10;
    else if(r5zahl==21)v5zahl=17;
    else if(r5zahl==22)v5zahl=15;
    else if(r5zahl==23)v5zahl=6;
    else if(r5zahl==24)v5zahl=5;
    else if(r5zahl==25)v5zahl=3;
    else if(r5zahl==26)v5zahl=11;	
		
	
	
	
	
	
	

//UKW
	
	v5zahl=ruzahl;
	if(ruzahl==1) vuzahl=5;
    else if(ruzahl==2)vuzahl=10;
    else if(ruzahl==3)vuzahl=13;
    else if(ruzahl==4)vuzahl=26;
    else if(ruzahl==5)vuzahl=1;
    else if(ruzahl==6)vuzahl=12;
    else if(ruzahl==7)vuzahl=25;
    else if(ruzahl==8)vuzahl=24;
    else if(ruzahl==9)vuzahl=22;
    else if(ruzahl==10)vuzahl=2;
    else if(ruzahl==11)vuzahl=23;
    else if(ruzahl==12)vuzahl=6;
    else if(ruzahl==13)vuzahl=3;
    else if(ruzahl==14)vuzahl=18;
    else if(ruzahl==15)vuzahl=17;
    else if(ruzahl==16)vuzahl=21;
    else if(ruzahl==17)vuzahl=15;
    else if(ruzahl==18)vuzahl=14;
    else if(ruzahl==19)vuzahl=20;
    else if(ruzahl==20)vuzahl=19;
    else if(ruzahl==21)vuzahl=16;
    else if(ruzahl==22)vuzahl=9;
    else if(ruzahl==23)vuzahl=11;
    else if(ruzahl==24)vuzahl=8;
    else if(ruzahl==25)vuzahl=7;
    else if(ruzahl==26)vuzahl=4;	
	

	r1zahl=v1zahl+(rs-1)-(as-1)-r1;




	
	}




}
}
 
Zuletzt bearbeitet:
Zeile 22:
[Java] private static JTextField msgTextField = new JTextField(20); [/Java]

Zeile 121:
[Java] if(msgTextfield =='A') r1zahl=1+keySpinner4; [/Java]

Ich glaub, dass du das mit equals() und nicht mit "==" machen musst, da es ja ein String ist.
 
Zuletzt bearbeitet:
Also mal auf die Schnelle finde ich erstmal die variable länge nirgendwo initialisiert. Dein TextField musst du zudem auch erstmal auslesen mit getText() (gibt nen String zurück) und dir dann halt dein character rausholen. Ist schon arg kompliziert gemacht..
 
Du hast zwei Klassen: Enigmapane und enig. In Enigmapane werden die ganzen Variablen wie die JTextFields deklariert, in der Klasse enig werden sie verwendet. Das geht so nicht. Woher soll die Klasse enig wissen, welche Variablen du in Enigmapane deklariert hast?
Vielleicht wären ein paar Basics gut?
 
Ja, "irgendwie" geht das schon. Da die ganzen Variablen aus deiner Enigmapane-KLasse statisch sind, kannst du von überall her auf sie zugreifen.
Diese Art der Kommunikation zwischen Klassen würde ich mir aber gar nicht erst angewöhnen. Das führt früher oder später zu massiven Problemen.
Wir wäre es, wenn du den Code aus der main deiner enig-Klasse in eine Methode von Enigmapane packst?
Wenn du wirklich noch solche Fragen stellen musst wie oben, würde ich dringend raten, daß du ein paar Grundlagen lernst.
 
Zuletzt bearbeitet:

Zurück
Oben