Hilfe bei Buttons

Seminex

Neues Mitglied
Hallo Community,
ich weiß nicht wo hier der Fehler liegt, denn der Button 2 sollte einfach die Methode arbeiten ausführen, aber leider tut er nichts!
Was das für ein Programm ist:
Mit diesem Programm soll eine leichte Reguläre Sprache nach uns vorgegebenen Regeln erstellt werden!

Java:
public class Sprache extends JApplet
{   private java.awt.Button bNeu = new Button();
    private java.awt.Button bArbeite = new Button();
    private java.awt.Label lAnzeige = new Label();
    
    public void init()
    {
        Panel cp = new Panel(null);
        cp.setBounds(0,0, 500, 800);
        add(cp);
        bNeu.setLabel("Neu");
        bNeu.setBounds(24,64,240,60);
        bNeu.addActionListener(new ActionListener()
        {
            public void actionPerformed(ActionEvent evt)
            {
                bNeu_ActionPerformed(evt); 
            }
        });
        cp.add(bNeu);
        
        bArbeite.setLabel("Arbeite");
        bArbeite.setBounds(24,130, 240, 60);
        bArbeite.addActionListener(new ActionListener()
        {
            public void actionPerformed(ActionEvent evt)
            {
                bArbeite_ActionPerformed(evt);  
            }
        });
        cp.add(bArbeite);
        lAnzeige.setBounds(300, 130, 300, 60);
        cp.add(lAnzeige);
    }
    
    public void bNeu_ActionPerformed(java.awt.event.ActionEvent evt)
    {
        lAnzeige.setText("S");
    }
    
    public void bArbeite_ActionPerformed(java.awt.event.ActionEvent evt)
    {
       arbeite();
    }
    
    public void arbeite()
   {
        char c;
        int i;
        String h, h1, h2;
        
        h1 = lAnzeige.getText();
        h2 = h1;
        h = "";
        i = h1.length() -1;
        c = h1.charAt(i);
        do
        {
            c = h1.charAt(i);
            h = "" + c + h;
            i--;
        }
        while ((i>=0) && !(c == '>'));

        { 
            h = h.substring(1);
        }
        h1 = h1 + "-->";
        c = h.charAt(0);
        h = h.substring(1);
        switch (c)
        { 
            case 'S':
            {
                h = h1 + "A;" + h;
                break;
            }
            case 'A':
            {
                i = (int) Math.round(5 * Math.random());
                    if (i == 0) h = h1 + "Ba" + h;
                        else if (i == 1) h = h1 + "C1" + h;
                            else if (i == 3) h = h1 + "Ft" + h;
                                else h = h1 + "I'" + h;
                break;
            }
            case 'B':
            {
                i = (int) Math.round(4 * Math.random());
                    if (i == 0) h = h1 + "Ba" + h;
                        else if (i == 1) h = h1 + "i" + h;
                            else if (i == 2) h = h1 + "b" + h;
                                else h = h1 + "s" + h;
                break;
            }
            case 'C':
            {
                i = (int) Math.round(2 * Math.random());
                    if (i == 0) h = h1 + "C1" +h;
                        else h = h1 + "D=" + h;
                break;
            }
            case 'D':
            {
                h = h1 + "Ea" + h;
                break;
            }
            case 'E':
            {
                i = (int) Math.round(2 * Math.random());
                    if (i == 0) h = h1 + "Ea" + h;
                        else h = h1 + "i" + h;
                break;
            }
            case 'F':
            {
                h = h1 + "G=" + h;
                break;
            }
            case 'G':
            { 
                h = h1 + "Ha" + h;
                break;
            }
            case 'H':
            {
                i = (int) Math.round(2 * Math.random());
                    if (i == 0) h = h1 + "Ha" + h;
                        else h = h1 + "b" + h;
                break;
            }
            case 'I':
            {
                h = h1 +"Jx" + h;
                break;
            }
            case 'J':
            {
                i = (int) Math.round(2 * Math.random());
                    if (i==0) h = h1 + "Jx" + h;
                        else h = h1 + "K'" + h;
                break;
            }
            case 'K':
            {
                h = h1 + "L=" + h;
                break;
            }
            case 'L':
            { 
                h = h1 + "Ma" + h;
                break;
            }
            case 'M':
            { 
                i = (int) Math.round(2 * Math.random());
                    if (i == 0) h = h1 + "Ma" + h;
                        else h = h1 + "s" + h;
                break;
            }
            default:
                h = h2;
            }
            lAnzeige.setText(h);
    }
 }

Was muss ich nun bei
Java:
  public void bArbeite_ActionPerformed(java.awt.event.ActionEvent evt)
    {
       arbeite();
    }
eingeben, dass er wirklich die Methode arbeite() aufruft????:L
 
Die Methode wird aufgerufen, setz mal nen
Code:
System.out.println("test");
rein 🙂

EDIT:
Dir fliegen da vermutlich Exceptions um die Ohren, teste das ganze am besten zunächst mal in ner IDE.
 
Ich habe selbst den Fehler gefunden 😀 die Methode wurde wirklich aufgerufen nur war
Java:
 public void arbeite()
   {
        char c;
        int i;
        String h, h1, h2;
        
        
        h1 = lAnzeige.getText();
        h2 = h1;
        h = "";
        i = h1.length() -1;
        
        do
        {
            c = h1.charAt(i);
            h = "" + c + h;
            i--;
        } while ((i>=0) && !(c == '>'));
        
        if (h.charAt(0) == '>')
        { 
            h = h.substring(1);
        }
        h1 = h1 + "-->";
        c = h.charAt(0);
        h = h.substring(1);
hier der Fehler drin, ich habe anscheinend übersehen, dass ich da meinen If-Befehl weggelöscht hatte und vor der Schleife bereits c = h1.charAt(i); stehen hatte!
 

Neue Themen


Zurück
Oben