Exceptionproblem

Status
Nicht offen für weitere Antworten.
A

AgathoN

Gast
Hi Leute,
wir kämpfen mit unserer Testataufgabe für das 2.Semester an der Uni. Unser Problem ist, das der User keine Zahlen eingeben darf.......also nur Buchstaben. Wir suchen nach einer solchen Exception.
Wir hatten einmal es andersrum in einer Übung (siehe unten). Aber egal wie wir es umbauen es funzt nicht :/
Ideen?

Code:
eingabe.addActionListener(
		        new ActionListener() {
		          public void actionPerformed( ActionEvent ev ) {
		          	try {
		    			n= Integer.parseInt(eingabe.getText());
		    		} catch (Exception e1){
		    			aufgabe.setText("Achtung: Der Eingabewert muss eine ganze Zahl sein.");
		    		} 
		          } 
		        } );




:###[/code]
 
A

AgathoN

Gast
Code:
package Beleg;

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

public class Beleg extends Frame
{
    private TextField Schlüssel = new TextField();
    private TextArea Klartext = new TextArea(); 
    private TextArea Chiffre = new TextArea();
    private Label LabelSchlüssel = new Label("Schlüssel (für Vigenere ein Wort / für Caesar eine Zahl):");
    private Label LabelKlartext = new Label("Zu verschlüssenlder Text eingeben:");
    private Label LabelChiffre = new Label("Chiffrierung");
    private int schlussel;

    
    public Beleg()   
    {
        Title();
        setSize(600,420);
        setVisible(true);
        setBackground(Color.lightGray);
        
        Schlüssel.setBounds(1,75,600,25);
        add(Schlüssel);
           
        Klartext = new TextArea("",30,4,TextArea.SCROLLBARS_VERTICAL_ONLY);
        Klartext.setBounds(1,150,600,70);
        Klartext.setEditable(true);
        add(Klartext);
                        
        Chiffre = new TextArea("",30,4,TextArea.SCROLLBARS_VERTICAL_ONLY);
        Chiffre.setBounds(1,275,600,70);
        Chiffre.setEditable(true);
        add(Chiffre);
                
        LabelSchlüssel.setBounds(1,50,600,25);
        add(LabelSchlüssel);
        
        LabelKlartext.setBounds(1,125,200,25);
        add(LabelKlartext);
        
        LabelChiffre.setBounds(1,250,200,25);
        add(LabelChiffre);

        Button VigenereButton = new Button("Vigenere-Chiffre");
        setLayout(null);
        VigenereButton.setBounds(10,25,125,25);
        add(VigenereButton);
        
        Button VigenereButton2 = new Button("Vigenere-DeChiffre");
        setLayout(null);
        VigenereButton2.setBounds(150,25,125,25);
        add(VigenereButton2);
        
        Button CaesarButton = new Button("Caesar-Chiffre");
        setLayout(null);
        CaesarButton.setBounds(310,25,125,25);
        add(CaesarButton);
        
        Button CaesarButton2 = new Button("Caesar-DeChiffre");
        setLayout(null);
        CaesarButton2.setBounds(450,25,125,25);
        add(CaesarButton2);
        
        Button closeButton = new Button("Beenden");
        setLayout(null);
        closeButton.setBounds(250,365,100,25);
        add(closeButton);
                
        //TextField2.setBounds(1,200,400,50);
        //add(TextField2);
        
        VigenereButton.addActionListener(new chiffLauscher());
        VigenereButton2.addActionListener(new dechiffLauscher());
        CaesarButton.addActionListener(new chiffLauscherCaesar());
        CaesarButton2.addActionListener(new dechiffLauscherCaesar());
        
        addWindowListener(new java.awt.event.WindowAdapter() {
            public void windowClosing(java.awt.event.WindowEvent evt) {
                System.exit(0);
            }
        });
        closeButton.addActionListener(new ActionListener(){
             public void actionPerformed(ActionEvent evt){

                quitProgram();
      }
    });

    }
    public void quitProgram(){
     setVisible(false);
     dispose();
     System.exit(0);
    }

    public void Title(){
     setTitle("Chiffre Kodierung powered Def1n1ty");
    }
 
    class chiffLauscher implements ActionListener{
      public void actionPerformed(ActionEvent e){
      Vigenere Vig=new Vigenere(Schlüssel.getText());
      String klar2=Klartext.getText();
      String code2=Vigenere.chiff(klar2);
      Chiffre.setText(code2);
    }
  }
    class dechiffLauscher implements ActionListener{
      public void actionPerformed(ActionEvent e){
      Vigenere Vig=new Vigenere(Schlüssel.getText());
      String code2=Chiffre.getText();
      String klar2=Vigenere.dechiff(code2);
      Klartext.setText(klar2);
    }
  }

    class chiffLauscherCaesar implements ActionListener{
      public void actionPerformed(ActionEvent e){
      try{
      schlussel = Integer.parseInt(Schlüssel.getText());
      Caesar Ca = new Caesar(schlussel);
      String klar=Klartext.getText();
      String code=Caesar.chiff(klar);
      Chiffre.setText(code);
      }
      catch(NumberFormatException s){
          Chiffre.setText("ungültiger Schlüssel!");
      }
        }
    }

    class dechiffLauscherCaesar implements ActionListener{
      public void actionPerformed(ActionEvent e){
      schlussel = Integer.parseInt(Schlüssel.getText());
      Caesar Ca = new Caesar(schlussel);
      String code=Chiffre.getText();
      String klar=Caesar.dechiff(code);
      Klartext.setText(klar);
        }
    }

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

Hm irgendwie raffen wir das nicht? Kannst du mir maln tip geben wie wir das implementieren müssten?

[/code]
 

Wildcard

Top Contributor
Code:
        Pattern pat = Pattern.compile("[a-zA-Z]*");
        Matcher mat = pat.matcher("teststri2ng");
        if (mat.matches())
            System.out.println("passt");
        
        //kurze Version
        String test = "FooBar";
        if (test.matches("[a-zA-Z]*"))
            System.out.println("passt");
 
A

AgathoN

Gast
Vielen Dank mit dem Tip haben wir es hinbekommen :p

Allerdings hängen wir jetzt am nächsten Problem....

Code:
package Beleg;

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

class Menue extends MenuBar {
    

private CheckboxMenuItem miFarbe;

private static void
    addNewMenuItem(Menu menu, String name, ActionListener listener){
    int pos = name.indexOf('&');
    MenuShortcut shortcut = null;
    MenuItem mi;
    if (pos != -1) {
     if (pos < name.length() - 1) {
        char c = name.charAt(pos + 1);
        name=name.substring(0,pos)+name.substring(pos + 1);
        }
    }
    if (shortcut != null) {
    mi = new MenuItem(name);} 
        else {
    mi = new MenuItem(name);
    }
    mi.setActionCommand(name);
    mi.addActionListener(listener);
    menu.add(mi);
 }

public Menue(ActionListener listener){

    Menu m;

    //Datei
    m = new Menu("Datei");
    addNewMenuItem(m, "&Öffnen", listener);
    m.addSeparator();
    addNewMenuItem(m, "&Beenden", listener);
    add(m);
    }
  }

Wir wollen das unser CHiffrier/Dechiffrierprogramm auch Texte aus einer Datei bearbeiten. Mit diesem Menü müsste es ja eigentlich möglich sein Dateien zu laden........ausserdem müsste eine Exception noch mit rein, das nut txt dateien geöffnet werden können. Irgendwelche Ideen?

Vielen Dank[/code]
 
A

AgathoN

Gast
Wir haben es eigentlich drinn. Aber es funktioniert nur in Netbeans :(
Wenn man das HTML startet passiert nichts wenn man auf öffnen klickt und damit den Filechooser eigentlich aktiviert. Muss man irgendwas in die html adden?
 
Status
Nicht offen für weitere Antworten.

Oben