klammer wird als Fehler makiert


#1
hi in diesem code werden ein par geschwungene klammern als falsch makiert aber sobald ich sie entferne weden sie aber wieder als Fehler makiert kann mir da jemand Helfen Bitte?
Javascript:
import java.awt.EventQueue;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.border.EmptyBorder;

public class Verschlüsslung extends JFrame implements KeyListener {

   /**
    *
    */

   private JPanel contentPane;
   private JTextField txtv1;

   /**
    * Launch the application.
    */
   public static void main(String[] args) {
       EventQueue.invokeLater(new Runnable() {
           public void run() {
               try {
                   Verschlüsslung frame = new Verschlüsslung();
                   frame.setVisible(true);
               } catch (Exception e) {
                   e.printStackTrace();
               }
           }
       });
   }

   /**
    * Create the frame.
    */
   public Verschlüsslung() {
       boolean A = false, B = false, C = false, D = false, E = false, F = false, G = false, H = false, I = false,
               J = false, K = false, L = false, M = false, N = false, O = false, P = false, Q = false, R = false,
               S = false, T = false, U = false, V = false, W = false, X = false, Y = false, Z = false;
      
       //content pane erstellen
       setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
       setBounds(100, 100, 450, 300);
       contentPane = new JPanel();
       contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
       setContentPane(contentPane);
       contentPane.setLayout(null);
       //Text Feld erstellen
       txtv1 = new JTextField();
       txtv1.setBounds(10, 11, 412, 239);
       contentPane.add(txtv1);
       txtv1.setColumns(10);
       txtv1.setEditable(false);

   }
  
   //Keyhandler
   @Override
   public void keyPressed(KeyEvent e) {
       if (e.getKeyCode() == KeyEvent.VK_A) {
           boolean A = true;
       }if (e.getKeyCode() == KeyEvent.VK_B) {
           boolean B = true;
       }if (e.getKeyCode() == KeyEvent.VK_C) {
           boolean C = true;
       }if (e.getKeyCode() == KeyEvent.VK_D) {
           boolean D = true;
       }if (e.getKeyCode() == KeyEvent.VK_E) {
           boolean E = true;
       }if (e.getKeyCode() == KeyEvent.VK_F) {
           boolean F = true;
       }if (e.getKeyCode() == KeyEvent.VK_G) {
           boolean G = true;
       }if (e.getKeyCode() == KeyEvent.VK_H) {
           boolean H = true;
       }if (e.getKeyCode() == KeyEvent.VK_I) {
           boolean I = true;
       }if (e.getKeyCode() == KeyEvent.VK_J) {
           boolean J = true;
       }if (e.getKeyCode() == KeyEvent.VK_K) {
           boolean K = true;
       }if (e.getKeyCode() == KeyEvent.VK_L) {
           boolean L = true;
       }if (e.getKeyCode() == KeyEvent.VK_M) {
           boolean M = true;
       }if (e.getKeyCode() == KeyEvent.VK_N) {
           boolean N = true;
       }if (e.getKeyCode() == KeyEvent.VK_O) {
           boolean O = true;
       }if (e.getKeyCode() == KeyEvent.VK_P) {
           boolean P = true;
       }if (e.getKeyCode() == KeyEvent.VK_Q) {
           boolean Q = true;
       }if (e.getKeyCode() == KeyEvent.VK_R) {
           boolean R = true;
       }if (e.getKeyCode() == KeyEvent.VK_S) {
           boolean S = true;
       }if (e.getKeyCode() == KeyEvent.VK_T) {
           boolean T = true;
       }if (e.getKeyCode() == KeyEvent.VK_U) {
           boolean U = true;
       }if (e.getKeyCode() == KeyEvent.VK_V) {
           boolean V = true;
       }if (e.getKeyCode() == KeyEvent.VK_W) {
           boolean W= true;
       }if (e.getKeyCode() == KeyEvent.VK_X) {
           boolean X = true;
       }if (e.getKeyCode() == KeyEvent.VK_Y) {
           boolean Y = true;
       }if (e.getKeyCode() == KeyEvent.VK_Z) {
           boolean Z = true;
       }


   }

   @Override
   public void keyReleased(KeyEvent e) {
       // TODO Auto-generated method stub
       if (e.getKeyCode() == KeyEvent.VK_A) {
           boolean A = false;
       }if (e.getKeyCode() == KeyEvent.VK_B) {
           boolean B = false;
       }if (e.getKeyCode() == KeyEvent.VK_C) {
           boolean C = false;
       }if (e.getKeyCode() == KeyEvent.VK_D) {
           boolean D = false;
       }if (e.getKeyCode() == KeyEvent.VK_E) {
           boolean E = false;
       }if (e.getKeyCode() == KeyEvent.VK_F) {
           boolean F = false;
       }if (e.getKeyCode() == KeyEvent.VK_G) {
           boolean G = false;
       }if (e.getKeyCode() == KeyEvent.VK_H) {
           boolean H = false;
       }if (e.getKeyCode() == KeyEvent.VK_I) {
           boolean I = false;
       }if (e.getKeyCode() == KeyEvent.VK_J) {
           boolean J = false;
       }if (e.getKeyCode() == KeyEvent.VK_K) {
           boolean K = false;
       }if (e.getKeyCode() == KeyEvent.VK_L) {
           boolean L = false;
       }if (e.getKeyCode() == KeyEvent.VK_M) {
           boolean M = false;
       }if (e.getKeyCode() == KeyEvent.VK_N) {
           boolean N = false;
       }if (e.getKeyCode() == KeyEvent.VK_O) {
           boolean O = false;
       }if (e.getKeyCode() == KeyEvent.VK_P) {
           boolean P = false;
       }if (e.getKeyCode() == KeyEvent.VK_Q) {
           boolean Q = false;
       }if (e.getKeyCode() == KeyEvent.VK_R) {
           boolean R = false;
       }if (e.getKeyCode() == KeyEvent.VK_S) {
           boolean S = false;
       }if (e.getKeyCode() == KeyEvent.VK_T) {
           boolean T = false;
       }if (e.getKeyCode() == KeyEvent.VK_U) {
           boolean U = false;
       }if (e.getKeyCode() == KeyEvent.VK_V) {
           boolean V = false;
       }if (e.getKeyCode() == KeyEvent.VK_W) {
           boolean W= false;
       }if (e.getKeyCode() == KeyEvent.VK_X) {
           boolean X = false;
       }if (e.getKeyCode() == KeyEvent.VK_Y) {
           boolean Y = false;
       }if (e.getKeyCode() == KeyEvent.VK_Z) {
           boolean Z = false;
       }
  
   }




// buchstaben hinzufügen

if(A==true){

}




@Override
public void keyTyped(KeyEvent e) {
   // TODO Auto-generated method stub
  
}
 

melmager

Erfahrenes Mitglied
#2
Auf den ersten Blick:

dein Codeteil //Buchstabe hinzufügen ist in keiner Function drin.
Bei der Function verschlüssellung fehlt der rückgabewert (void vermute ich mal)

Welche IDE nutzt du ? Bei Netbeans, mit der ich arbeite, kann man ne Klammer selektieren und er markiert
Anfang und end Teil farblich und weiss so was ein Codeblock ist.

Und die IF Gräber würde ich umstellen auf Switch :) und die 27 Booleanwerte hätte ich warscheinlich über ein Array gelöst aber das ist ein andres Thema - jeder hat ein eigene Vorgehensweise - kein stress :)
 
Zuletzt bearbeitet:
#3
Danke und ich benutze eclipse
Und der codeteil //buchstabe hinzufügen ist noch nicht fertig
Ich programmiere noch nicht lange
Java und könntest du mir das mit dem mit array und dem switch noch mal erklären
 

melmager

Erfahrenes Mitglied
#4
also Anfänger zu sein ist keine Schande und wenn man will kann man immer dazulernen.

http://openbook.rheinwerk-verlag.de...03_007.htm#mj23a745f6df230125f0760b9755f8996e

Meine Erklärung zu Arrays:
Arrays haben eine feste Grösse, die nachträglich nicht geändert werden kann und einzelne Werte werden über ein Index (int) ausgelesen. Arrays fangen immer mit dem Index 0 an. Zugriffe auf Arrays die ausserhalb vom definierten Bereich sind werfen eine Exception.

Java:
// Array definieren
private boolean flags[];
// Array erzeugen
flags = new boolean[26];
und in deinem Fall muss das Array auch noch mit default Werten gefüllt werden.

Java:
for (  int i = 0; i < flags.length ; i++ ) {
  flags[i] = false;
}
damit hast du 26 booleanwerte in einem Array.

Der Switch:

http://openbook.rheinwerk-erlag.de/...02_006.htm#mj448e6960f284a4beda96b23e994ebd5e

Wird immer dann eingesetzt wenn eine Variable auf diverse Werte überprüft werden soll um dann entsprechende Codes ausgeführt werden soll.

Java:
Switch (e.getKeyCode()) {
 case KeyEvent.VK_A :
    boolean A = true;
    // break ist wichtig - beendet die Switch Anweisung.
    break;
 case KeyEvent.VK_B :
   boolean B = true;
   break;
// und so weiter
//optional für alles andre
 default:
   System.out.println("falsches zeichen");
}
man kann noch ein Schritt weiter gehen und für dein Zeichen zu boolean verküpfung sogar eine eigene
classe erstellen.
Warum eine classe ? weil du auch damit ungültige zeichen abfagen kannst.
nach dem Motto es wurde ein "!" gedrückt - ignorier dat oder mach ne exception.
Exceptions lasse ich mal aussen vor :)


Java:
class ZeichenFlags {
 
   private boolean flags[];
   private int vonzeichen;
   private int biszeichen;
 
/**
konstructor der von zeichen bis zeichen als Int Wert haben will
*/
  ZeichenFlags(int start, int bis) {
     vonzeichen = start;
     biszeichen = bis;
     int arraysize = biszeichen - vonzeichen + 1; //immer einer mehr von Zeichen A bis Zeichen A ist eins

     flags = new boolean[ arraysize ];
     //füllen Array mit defaultwerten
     for (int i=0 ; i < arrayzize ; i++ ) {
      flags[i] = false;
    }
  } // ende constructor

  /**
  test ob zeichen innerhalb erlaubter werte ist - zeichen als int wert
 */
  public boolean checkCharValue(int key) {
    return ((key >= vonzeichen) && (key <= biszeichen));
  }

//hole booleanwert zum zeichen
   public boolean getFlag(int key) {
        boolean stat = false; // Default false
        if (checkCharValue(key)) {
          stat = flags[(key - vonzeichen)];
        }
       return stat;
  }

//setze booleanwert zum zeichen
  public void setFlag(int key, boolean nflag) {
      if (checkCharValue(key)) {
          flags[(key - vonzeichen)] = nflag;
       }
  }
 
} //class end
falls du dich nun fragst wo ist denn bei der lösung der Switch geblieben - brauche ich nicht
ich errechne den indexwert über das Startzeichen , das A wird zur 0 und gehe dann direkt an das Array
 
Zuletzt bearbeitet von einem Moderator: