von normalen prog zum applet

Status
Nicht offen für weitere Antworten.

Bastian

Bekanntes Mitglied
was mus ich an folgendem quelltext ändern, dass er als applet läuft?

Code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.*;
import java.applet.*;

/**
  *
  * Beschreibung.
  *
  * @version 1.0 vom 31.10.2005
  * @author Bastian Schaefer
  */

public class Passwort extends JFrame implements ActionListener{
  
// Anfang Variablen

   JMenuBar Menue = new JMenuBar();

   JMenu jmuZeichen = new JMenu("Zeichen");
   JMenuItem ZeichenJMenuItem1 = new JMenuItem("kleines Alphabet");
  //usw...

  // Ende Variablen

  public Passwort() {
    super("Passwortgenerator");
    this.getContentPane().setLayout(null);

    java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
    //usw...
    // Anfang Komponenten
   //usw...
    // Ende Komponenten

    setVisible(true);
  }

  // Anfang Ereignisprozeduren
  
   public void ZeichenJMenuItem1ActionPerformed(ActionEvent evt) {
   zvorrat.setText(zvorrat.getText()+"abcdefghijklmnopqrstuvqxyz");
   }

   //usw..

  // Ende Ereignisprozeduren


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

ich habe angenommen, dass man
Code:
  public static void main(String[] args) {
    new Passwort();
    }

durch

Code:
public void init() {
       Passwort t = new Passwort();
       add(t);
       }

ersetzen muss, dem ist aber anscheinden nicht so, denn es funktioniert nicht (ja, ich habe das applet korrekt in eine html datei eingebunden...)

selbst, wenn ich eine neue klasse
Code:
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
public class PasswortGeneratorApplet extends Applet {
       public void init() {
       Passwort t = new Passwort();
       add(t);
       }
}

schreibe und an der ursrünglichen klasse (Passwort.java) nicht ändere funktioniert es auch nicht...
ich weiß nicht mehr weiter..
 

Bastian

Bekanntes Mitglied
L-ectron-X hat gesagt.:
Ein Applet muss:
a) von java.applet.Applet oder javax.swing.JApplet erben und
b) mindestens die init()-Methode überschreiben.

Initialisiere deine GUI-Komponenten in der init()-Methode, dann wird das schon funktionieren.
Kannst dir ja auch mal dies anschauen: http://www.java-forum.org/de/viewtopic.php?t=18372

danke für dein beispiel, bring mich aber auch nicht weiter, da ich hier in meinem buch ein ähnliches habe.

das was du sagst ist mir eigentlich kalr, ich dachte, ich erfülle diese bedingungen, wenn ich solch eine neue klasse schreibe:
Code:
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import javax.swing.JApplet.*;
public class PasswortGeneratorApplet extends Applet {
       public void init() {
       Passwort t = new Passwort();
       add(t);
       }
}
 

Sky

Top Contributor
Leite auf jeden Fall mal von JApplet ab, da Du Swing-Componenten verwendest

und dann schreib mal, was dann nicht läuft bzw. wo es Fehler gibt.
 

Bastian

Bekanntes Mitglied
Sky hat gesagt.:
Leite auf jeden Fall mal von JApplet ab, da Du Swing-Componenten verwendest

und dann schreib mal, was dann nicht läuft bzw. wo es Fehler gibt.

also ich nehmer an, du hast mit ableiten import javax.swing.JApplet.*; gemeint (denn ... extend JApplet funktioniert ja nicht)

compilieren lässt sich alles, im applet viewer kommt dann allerdings die meldung: Start: Applet nicht initialisiert
ind der konsole bekomme ich zeitgleich folgende fehler:
java.security.AccessControlException: access denied (java.lang.RuntimePermission exitVM)
at java.security.AccessControlContext.checkPermission(AccessControlContext.java:264)
at java.security.AccessController.checkPermission(AccessController.java:427)
at java.lang.SecurityManager.checkPermission(SecurityManager.java:532)
at java.lang.SecurityManager.checkExit(SecurityManager.java:744)
at javax.swing.JFrame.setDefaultCloseOperation(JFrame.java:363)
at Passwort.<init>(Passwort.java:52)
at PasswortGeneratorApplet.init(PasswortGeneratorApplet.java:7)
at sun.applet.AppletPanel.run(AppletPanel.java:374)
at java.lang.Thread.run(Thread.java:595)
 

Bastian

Bekanntes Mitglied
Sky hat gesagt.:
Was steht in der Datei Passwort.java in Zeile 52 ?

Code:
this.setDefaultCloseOperation(EXIT_ON_CLOSE);

ich poste mal die gesamte klasse:
Code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.*;
import java.applet.*;
import javax.swing.JApplet.*;

/**
  *
  * Beschreibung.
  *
  * @version 1.0 vom 31.10.2005
  * @author Bastian Schaefer
  */

public class Passwort extends JFrame implements ActionListener{
  // Anfang Variablen

   JMenuBar Menue = new JMenuBar();

   JMenu jmuZeichen = new JMenu("Zeichen");
   JMenuItem ZeichenJMenuItem1 = new JMenuItem("kleines Alphabet");
   JMenuItem ZeichenJMenuItem2 = new JMenuItem("großes Alphabet");
   JMenuItem ZeichenJMenuItem3 = new JMenuItem("àáâ...");
   JMenuItem ZeichenJMenuItem4 = new JMenuItem("ÀÁÂ...");
   JMenuItem ZeichenJMenuItem5 = new JMenuItem("Sonderzeichen");
   JMenuItem ZeichenJMenuItem6 = new JMenuItem("Zahlen");


  JTextField länge,zvorrat;
  JTextArea ausgabe;
  JButton generate;
  JLabel label,label2,zeichenvorrat, copyright;
  Zeichenvorrat vorrat = new Zeichenvorrat();
  private JRadioButton jRadioButton1 = new JRadioButton("",true);
  private JRadioButton jRadioButton2 = new JRadioButton();
  private JRadioButton jRadioButton3 = new JRadioButton();
  private JRadioButton jRadioButton4 = new JRadioButton();
  private JRadioButton jRadioButton5 = new JRadioButton();
  private JRadioButton jRadioButton6 = new JRadioButton();
  private JRadioButton jRadioButton7 = new JRadioButton();
  private JRadioButton jRadioButton8 = new JRadioButton();
  // Ende Variablen

  public Passwort() {
    // Frame-Initialisierung
    super("Passwortgenerator");
    this.getContentPane().setLayout(null);

    java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
    this.setLocation((screenSize.width-13*(screenSize.width)/15),(screenSize.height-14*(screenSize.height)/15));
    this.setDefaultCloseOperation(EXIT_ON_CLOSE);
    
    // Anfang Komponenten
    this.setJMenuBar(Menue);
    Menue.add(jmuZeichen);


                ZeichenJMenuItem1.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent evt) {
                      ZeichenJMenuItem1ActionPerformed(evt);
                      }
                });
                             jmuZeichen.add(ZeichenJMenuItem1);



                ZeichenJMenuItem2.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent evt) {
                      ZeichenJMenuItem2ActionPerformed(evt);
                      }
                });
                             jmuZeichen.add(ZeichenJMenuItem2);
                             
                ZeichenJMenuItem3.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent evt) {
                      ZeichenJMenuItem3ActionPerformed(evt);
                      }
                });
                             jmuZeichen.add(ZeichenJMenuItem3);
                             
                ZeichenJMenuItem4.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent evt) {
                      ZeichenJMenuItem4ActionPerformed(evt);
                      }
                });
                             jmuZeichen.add(ZeichenJMenuItem4);
                             
                ZeichenJMenuItem5.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent evt) {
                      ZeichenJMenuItem5ActionPerformed(evt);
                      }
                });
                             jmuZeichen.add(ZeichenJMenuItem5);
                             
                ZeichenJMenuItem6.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent evt) {
                      ZeichenJMenuItem6ActionPerformed(evt);
                      }
                });
                             jmuZeichen.add(ZeichenJMenuItem6);


   ZeichenJMenuItem1.setEnabled(false);
   ZeichenJMenuItem2.setEnabled(false);
   ZeichenJMenuItem3.setEnabled(false);
   ZeichenJMenuItem4.setEnabled(false);
   ZeichenJMenuItem5.setEnabled(false);
   ZeichenJMenuItem6.setEnabled(false);
    

    label = new JLabel("Passwortlänge:");
    label.setBounds(25,10,90,20);
    
    label2 = new JLabel("Zeichen");
    label2.setBounds(170,10,50,20);

    länge = new JTextField();
    //länge.setLineWrap(false);
    länge.setBounds(120,10,50,20);
    länge.setText("8");
    länge.setToolTipText("Das Passwort sollte mindestens 8 Zeichen lang sein!");
    
    zeichenvorrat = new JLabel ("Im Passwort enthaltene Zeichen:");
    zeichenvorrat.setBounds(25,45,300,17);
    
    jRadioButton7.setBounds(20, 70, 80, 17);
    jRadioButton7.setText("0-9");
    jRadioButton7.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent evt) {
                      jRadioButton7ActionPerformed(evt);
                      }
                });
    this.getContentPane().add(jRadioButton7);

    jRadioButton2.setBounds(20, 92, 80, 17);
    jRadioButton2.setText("a-z A-z");
    jRadioButton2.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent evt) {
                      jRadioButton2ActionPerformed(evt);
                      }
                });
    this.getContentPane().add(jRadioButton2);
    
    jRadioButton3.setBounds(20, 116, 115, 17);
    jRadioButton3.setText("Sonderzeichen");
    jRadioButton3.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent evt) {
                      jRadioButton3ActionPerformed(evt);
                      }
                });
    this.getContentPane().add(jRadioButton3);
    
    jRadioButton1.setBounds(20, 140, 115, 17);
    jRadioButton1.setText("alle Zeichen");
    //jRadioButton1.setEnabled(true);
    jRadioButton1.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent evt) {
                      jRadioButton1ActionPerformed(evt);
                      }
                });
    vorrat.setSelection(1);
    this.getContentPane().add(jRadioButton1);
    
    jRadioButton4.setBounds(140, 70, 140, 17);
    jRadioButton4.setText("a-z A-z 0-9");
    jRadioButton4.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent evt) {
                      jRadioButton4ActionPerformed(evt);
                      }
                });
    this.getContentPane().add(jRadioButton4);
    
    jRadioButton5.setBounds(140, 92, 140, 17);
    jRadioButton5.setText("0-9 Sonderzeichen");
    jRadioButton5.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent evt) {
                      jRadioButton5ActionPerformed(evt);
                      }
                });
    this.getContentPane().add(jRadioButton5);
    
    jRadioButton6.setBounds(140, 116, 160, 17);
    jRadioButton6.setText("a-z A-z Sonderzeichen");
    jRadioButton6.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent evt) {
                      jRadioButton6ActionPerformed(evt);
                      }
                });
    this.getContentPane().add(jRadioButton6);
    
    jRadioButton8.setBounds(140, 140, 115, 17);
    jRadioButton8.setText("eigene Zeichen:");
    jRadioButton8.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent evt) {
                      jRadioButton8ActionPerformed(evt);
                      }
                });
    this.getContentPane().add(jRadioButton8);

    zvorrat = new JTextField();
    zvorrat.setBounds(160,160,120,20);
    zvorrat.setText("Ihr Zeichenvorrat");
    zvorrat.setEditable(false);
    zvorrat.setToolTipText("Hier den eigenen Zeichenvorrat eintragen!");


    ButtonGroup group = new ButtonGroup();
    group.add(jRadioButton1);
    group.add(jRadioButton2);
    group.add(jRadioButton3);
    group.add(jRadioButton4);
    group.add(jRadioButton5);
    group.add(jRadioButton6);
    group.add(jRadioButton7);
    group.add(jRadioButton8);


    ausgabe = new JTextArea("");
    ausgabe.setLineWrap(true);
    ausgabe.setEditable(false);
    ausgabe.setToolTipText("generiertes Passwort");

    generate = new JButton("generieren");
    generate.setBounds(100,235, 100, 25);
    generate.addActionListener(this);
    
    copyright = new JLabel("(C) 2005 Bastian Schaefer");
    copyright.setBounds(76,265,150,25);

    JScrollPane ScrollPane = new JScrollPane();
    JPanel Panel = new JPanel();
    ScrollPane.getViewport().add(ausgabe);
    Panel.setLayout(new GridLayout());
    Panel.add(ScrollPane);
    Panel.setBounds(20,185,260,50);

    this.getContentPane().add(Panel);
    this.getContentPane().add(generate);
    this.getContentPane().add(länge);
    this.getContentPane().add(zvorrat);
    this.getContentPane().add(label);
    this.getContentPane().add(label2);
    this.getContentPane().add(zeichenvorrat);
    this.getContentPane().add(copyright);
    this.setSize(309,340);
    this.setResizable(false);
    this.setVisible(true);
    // Ende Komponenten

    setVisible(true);
  }

  // Anfang Ereignisprozeduren
  
   public void ZeichenJMenuItem1ActionPerformed(ActionEvent evt) {
   zvorrat.setText(zvorrat.getText()+"abcdefghijklmnopqrstuvqxyz");
   }

   public void ZeichenJMenuItem2ActionPerformed(ActionEvent evt) {
   zvorrat.setText(zvorrat.getText()+"ABCDEFGHIJKLMNOPQRSTUVWXYZ");
   }
  
   public void ZeichenJMenuItem3ActionPerformed(ActionEvent evt) {
   zvorrat.setText(zvorrat.getText()+"áàâéèêíìîóòôúùû");
   }
   
   public void ZeichenJMenuItem4ActionPerformed(ActionEvent evt) {
   zvorrat.setText(zvorrat.getText()+"ÁÀÂÉÈÊÍÌÎÓÒÔÚÙÛ");
   }
   
   public void ZeichenJMenuItem5ActionPerformed(ActionEvent evt) {
   zvorrat.setText(zvorrat.getText()+"°!\"§$%&/()=?²³{[]}\\+*~#'-_.:,;<>|@€");
   }
   
   public void ZeichenJMenuItem6ActionPerformed(ActionEvent evt) {
   zvorrat.setText(zvorrat.getText()+"1234567890");
   }

    public void jRadioButton1ActionPerformed(ActionEvent evt) {
           vorrat.setSelection(1);
           zvorrat.setEditable(false);
           zvorrat.setText("Ihr Zeichenvorrat");
           ZeichenJMenuItem1.setEnabled(false);
           ZeichenJMenuItem2.setEnabled(false);
           ZeichenJMenuItem3.setEnabled(false);
           ZeichenJMenuItem4.setEnabled(false);
           ZeichenJMenuItem5.setEnabled(false);
           ZeichenJMenuItem6.setEnabled(false);
    }
    public void jRadioButton2ActionPerformed(ActionEvent evt) {
           vorrat.setSelection(2);
           zvorrat.setEditable(false);
           zvorrat.setText("Ihr Zeichenvorrat");
           ZeichenJMenuItem1.setEnabled(false);
           ZeichenJMenuItem2.setEnabled(false);
           ZeichenJMenuItem3.setEnabled(false);
           ZeichenJMenuItem4.setEnabled(false);
           ZeichenJMenuItem5.setEnabled(false);
           ZeichenJMenuItem6.setEnabled(false);
    }
    public void jRadioButton3ActionPerformed(ActionEvent evt) {
           vorrat.setSelection(3);
           zvorrat.setEditable(false);
           zvorrat.setText("Ihr Zeichenvorrat");
           ZeichenJMenuItem1.setEnabled(false);
           ZeichenJMenuItem2.setEnabled(false);
           ZeichenJMenuItem3.setEnabled(false);
           ZeichenJMenuItem4.setEnabled(false);
           ZeichenJMenuItem5.setEnabled(false);
           ZeichenJMenuItem6.setEnabled(false);
    }
    public void jRadioButton4ActionPerformed(ActionEvent evt) {
           vorrat.setSelection(4);
           zvorrat.setEditable(false);
           zvorrat.setText("Ihr Zeichenvorrat");
           ZeichenJMenuItem1.setEnabled(false);
           ZeichenJMenuItem2.setEnabled(false);
           ZeichenJMenuItem3.setEnabled(false);
           ZeichenJMenuItem4.setEnabled(false);
           ZeichenJMenuItem5.setEnabled(false);
           ZeichenJMenuItem6.setEnabled(false);
    }
    public void jRadioButton5ActionPerformed(ActionEvent evt) {
           vorrat.setSelection(5);
           zvorrat.setEditable(false);
           zvorrat.setText("Ihr Zeichenvorrat");
           ZeichenJMenuItem1.setEnabled(false);
           ZeichenJMenuItem2.setEnabled(false);
           ZeichenJMenuItem3.setEnabled(false);
           ZeichenJMenuItem4.setEnabled(false);
           ZeichenJMenuItem5.setEnabled(false);
           ZeichenJMenuItem6.setEnabled(false);
    }
    public void jRadioButton6ActionPerformed(ActionEvent evt) {
           vorrat.setSelection(6);
           zvorrat.setEditable(false);
           zvorrat.setText("Ihr Zeichenvorrat");
           ZeichenJMenuItem1.setEnabled(false);
           ZeichenJMenuItem2.setEnabled(false);
           ZeichenJMenuItem3.setEnabled(false);
           ZeichenJMenuItem4.setEnabled(false);
           ZeichenJMenuItem5.setEnabled(false);
           ZeichenJMenuItem6.setEnabled(false);
    }
    public void jRadioButton7ActionPerformed(ActionEvent evt) {
           vorrat.setSelection(7);
           zvorrat.setEditable(false);
           zvorrat.setText("Ihr Zeichenvorrat");
           ZeichenJMenuItem1.setEnabled(false);
           ZeichenJMenuItem2.setEnabled(false);
           ZeichenJMenuItem3.setEnabled(false);
           ZeichenJMenuItem4.setEnabled(false);
           ZeichenJMenuItem5.setEnabled(false);
           ZeichenJMenuItem6.setEnabled(false);
    }
    public void jRadioButton8ActionPerformed(ActionEvent evt) {
           vorrat.setSelection(8);
           zvorrat.setEditable(true);
           zvorrat.setText("");
           ZeichenJMenuItem1.setEnabled(true);
           ZeichenJMenuItem2.setEnabled(true);
           ZeichenJMenuItem3.setEnabled(true);
           ZeichenJMenuItem4.setEnabled(true);
           ZeichenJMenuItem5.setEnabled(true);
           ZeichenJMenuItem6.setEnabled(true);
    }

     public void actionPerformed(ActionEvent e) {
         try {
            int länge1 = Integer.parseInt(länge.getText());
            if (länge1 <= 1000 && länge1 > 0) {
            vorrat.setLänge(länge1);
            vorrat.setVorrat(zvorrat.getText());
            }
            else {
            JOptionPane.showMessageDialog(this,"Passwortlänge ungültig!\nErlaubte Eingabe: ganze Zahl zwischen 1 und 1000","ERROR",JOptionPane.ERROR_MESSAGE);}
            if (länge1 < 8 && länge1 > 0) {
            JOptionPane.showMessageDialog(this,"Ein Passwort mit weniger als\n8 Zeichen gilt als unsicher!","INFO",JOptionPane.INFORMATION_MESSAGE);}
            if (zvorrat.getText().length() != 0){
            ausgabe.setText(vorrat.pass());}
            else {
            JOptionPane.showMessageDialog(this,"Kein Zeichenvorrat definiert!","ERROR",JOptionPane.ERROR_MESSAGE);}
         } catch(NumberFormatException nfe) {
         JOptionPane.showMessageDialog(this,"Passwortlänge ungültig!\nErlaubte Eingabe: ganze Zahl zwischen 1 und 1000","ERROR",JOptionPane.ERROR_MESSAGE);
         }
         
     }
  // Ende Ereignisprozeduren

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

Roar

Gast
JBuilder GUI Builder?

die ganzen jRadioButtonXActionPerformed methoden sind doch hoffentlich nurn witz oder? :autsch:
 

Sky

Top Contributor
Roar hat die Antwort ja schon geschrieben.

Nur nochmal zur Info: Die Fehlermeldungen sind anfänglich nicht immer leicht zu lesen; jedoch, wenn man mal genau hinschaut, so sieht man "auf den ersten Blick" an welcher Stelle der 'Absturz' war und kann dort dann mit der Fehler-Analyse ansetzen.
 

Bastian

Bekanntes Mitglied
Roar hat gesagt.:
JBuilder GUI Builder?

die ganzen jRadioButtonXActionPerformed methoden sind doch hoffentlich nurn witz oder? :autsch:

nein, kein gui builder, ich habe aber mit "vergleichbarem" quelltext gui-programmierung "gelernt" (also, hab vorlagen gesehen, wo es auch so gemacht wurde)

was sollte ich anstatt der jRadioButtonXActionPerformed methoden sonst machen?
 
B

Beni

Gast
Methodennamen waehlen, die was ueber den Inhalt aussagen :wink:
Und das ActionEvent kannst du in den meisten Faellen vergessen.

P.S. und z.B. das Menue in eine eigene Klasse auslagern, das wuerde auch uebersichtlicher.
 
R

Roar

Gast
Bastian hat gesagt.:
Roar hat gesagt.:
JBuilder GUI Builder?

die ganzen jRadioButtonXActionPerformed methoden sind doch hoffentlich nurn witz oder? :autsch:

nein, kein gui builder, ich habe aber mit "vergleichbarem" quelltext gui-programmierung "gelernt" (also, hab vorlagen gesehen, wo es auch so gemacht wurde)

:? ich find das extremstfusch. 7 deiner 8 methoden machen alle genau das gleiche und die ache ebenfalls nur wird dort nen anderer boolean wert benutzt.
 

Bastian

Bekanntes Mitglied
Roar hat gesagt.:
Bastian hat gesagt.:
Roar hat gesagt.:
JBuilder GUI Builder?

die ganzen jRadioButtonXActionPerformed methoden sind doch hoffentlich nurn witz oder? :autsch:

nein, kein gui builder, ich habe aber mit "vergleichbarem" quelltext gui-programmierung "gelernt" (also, hab vorlagen gesehen, wo es auch so gemacht wurde)

:? ich find das extremstfusch. 7 deiner 8 methoden machen alle genau das gleiche und die ache ebenfalls nur wird dort nen anderer boolean wert benutzt.
nein, sie machen eben nicht genau das gelcihe, sie setzen jeweils eine andere selection()
 
R

Roar

Gast
Bastian hat gesagt.:
Roar hat gesagt.:
Bastian hat gesagt.:
Roar hat gesagt.:
JBuilder GUI Builder?

die ganzen jRadioButtonXActionPerformed methoden sind doch hoffentlich nurn witz oder? :autsch:

nein, kein gui builder, ich habe aber mit "vergleichbarem" quelltext gui-programmierung "gelernt" (also, hab vorlagen gesehen, wo es auch so gemacht wurde)

:? ich find das extremstfusch. 7 deiner 8 methoden machen alle genau das gleiche und die ache ebenfalls nur wird dort nen anderer boolean wert benutzt.
nein, sie machen eben nicht genau das gelcihe, sie setzen jeweils eine andere selection()
setSelected(x) ist für mich das gleiche

siehe l-ectron-x
 

Bastian

Bekanntes Mitglied
Roar hat gesagt.:
Bastian hat gesagt.:
Roar hat gesagt.:
JBuilder GUI Builder?

die ganzen jRadioButtonXActionPerformed methoden sind doch hoffentlich nurn witz oder? :autsch:

nein, kein gui builder, ich habe aber mit "vergleichbarem" quelltext gui-programmierung "gelernt" (also, hab vorlagen gesehen, wo es auch so gemacht wurde)

:? ich find das extremstfusch. 7 deiner 8 methoden machen alle genau das gleiche und die ache ebenfalls nur wird dort nen anderer boolean wert benutzt.

Ich habe mich nochmal rangesetzt, würdest ihr den folgenden quellcode als besser beurteilen?

Code:
[...]
public void actionPerformed(ActionEvent e) {
      Object quelle = e.getSource();
      [...]
      if(quelle.equals(jRadioButtonCharsNumb)){
             vorrat.setSelection(7);
             zvorrat.setEditable(false);
             zvorrat.setText("Ihr Zeichenvorrat");
             ZeichenJMenuItemKleinesAlphabet.setEnabled(false);
             ZeichenJMenuItemGroßesAlphabet.setEnabled(false);
             ZeichenJMenuItemàáâ.setEnabled(false);
             ZeichenJMenuItemÀÁÂ.setEnabled(false);
             ZeichenJMenuItemSonderzeichen.setEnabled(false);
             ZeichenJMenuItemZahlen.setEnabled(false);}

       if(quelle.equals(jRadioButtonCharsSmallBig)){
             vorrat.setSelection(2);
             zvorrat.setEditable(false);
             zvorrat.setText("Ihr Zeichenvorrat");
             ZeichenJMenuItemKleinesAlphabet.setEnabled(false);
             ZeichenJMenuItemGroßesAlphabet.setEnabled(false);
             ZeichenJMenuItemàáâ.setEnabled(false);
             ZeichenJMenuItemÀÁÂ.setEnabled(false);
             ZeichenJMenuItemSonderzeichen.setEnabled(false);
             ZeichenJMenuItemZahlen.setEnabled(false);
      }
       if(quelle.equals(jRadioButtonSonderzeichen)){
           vorrat.setSelection(3);
           zvorrat.setEditable(false);
           zvorrat.setText("Ihr Zeichenvorrat");
           ZeichenJMenuItemKleinesAlphabet.setEnabled(false);
           ZeichenJMenuItemGroßesAlphabet.setEnabled(false);
           ZeichenJMenuItemàáâ.setEnabled(false);
           ZeichenJMenuItemÀÁÂ.setEnabled(false);
           ZeichenJMenuItemSonderzeichen.setEnabled(false);
           ZeichenJMenuItemZahlen.setEnabled(false);
      }
       if(quelle.equals(jRadioButtonAlleZeichen)){
             vorrat.setSelection(1);
             zvorrat.setEditable(false);
             zvorrat.setText("Ihr Zeichenvorrat");
             ZeichenJMenuItemKleinesAlphabet.setEnabled(false);
             ZeichenJMenuItemGroßesAlphabet.setEnabled(false);
             ZeichenJMenuItemàáâ.setEnabled(false);
             ZeichenJMenuItemÀÁÂ.setEnabled(false);
             ZeichenJMenuItemSonderzeichen.setEnabled(false);
             ZeichenJMenuItemZahlen.setEnabled(false);}
       if(quelle.equals(jRadioButtonCharsSmallBigNumb)){
             vorrat.setSelection(4);
             zvorrat.setEditable(false);
             zvorrat.setText("Ihr Zeichenvorrat");
             ZeichenJMenuItemKleinesAlphabet.setEnabled(false);
             ZeichenJMenuItemGroßesAlphabet.setEnabled(false);
             ZeichenJMenuItemàáâ.setEnabled(false);
             ZeichenJMenuItemÀÁÂ.setEnabled(false);
             ZeichenJMenuItemSonderzeichen.setEnabled(false);
             ZeichenJMenuItemZahlen.setEnabled(false);
      }
       if(quelle.equals(jRadioButtonNumbSonderzeichen)){
             vorrat.setSelection(5);
             zvorrat.setEditable(false);
             zvorrat.setText("Ihr Zeichenvorrat");
             ZeichenJMenuItemKleinesAlphabet.setEnabled(false);
             ZeichenJMenuItemGroßesAlphabet.setEnabled(false);
             ZeichenJMenuItemàáâ.setEnabled(false);
             ZeichenJMenuItemÀÁÂ.setEnabled(false);
             ZeichenJMenuItemSonderzeichen.setEnabled(false);
             ZeichenJMenuItemZahlen.setEnabled(false);
      }
       if(quelle.equals(jRadioButtonCharsSmallBigSonderzeichen)){
             vorrat.setSelection(6);
             zvorrat.setEditable(false);
             zvorrat.setText("Ihr Zeichenvorrat");
             ZeichenJMenuItemKleinesAlphabet.setEnabled(false);
             ZeichenJMenuItemGroßesAlphabet.setEnabled(false);
             ZeichenJMenuItemàáâ.setEnabled(false);
             ZeichenJMenuItemÀÁÂ.setEnabled(false);
             ZeichenJMenuItemSonderzeichen.setEnabled(false);
             ZeichenJMenuItemZahlen.setEnabled(false);
      }

       if(quelle.equals(jRadioButtonEigeneZeichen)){
             vorrat.setSelection(8);
             zvorrat.setEditable(true);
             zvorrat.setText("");
             ZeichenJMenuItemKleinesAlphabet.setEnabled(true);
             ZeichenJMenuItemGroßesAlphabet.setEnabled(true);
             ZeichenJMenuItemàáâ.setEnabled(true);
             ZeichenJMenuItemÀÁÂ.setEnabled(true);
             ZeichenJMenuItemSonderzeichen.setEnabled(true);
             ZeichenJMenuItemZahlen.setEnabled(true);
       }
[...]
       }
[...]
 

Bastian

Bekanntes Mitglied
L-ectron-X hat gesagt.:
Ich glaube, du hast nicht verstanden, was Roar meint und ich oben geschrieben habe, oder?

cih geben zu 100% sicher bin ich mir nicht, euch verstanden zu haben. roar bezog sich allerdings auf die actionperformed methoden, die ich (glaube ich)seiner ansicht zu viele drin hatte.

du hast geschrieben, ich sollte eine buttongroup benutzen. diese ist allerdings schon seit der ersten version der programmes implementiert. (der gesamte quelltext: http://bsc.bs.funpic.de/wordpress/?page_id=14 )

ich habe auch schon gelesen, dass man den zustand der buttongroup auf 3 verschiedene weisen abfragen kann (eine davon ist eben actionlistener).
die elegante version habe ich allerdings nicht richtig durchdrungen. könnte mir das jemand kurz erklären? (in der api nachschlagen kann ich selbst [hab ich auch schon].....)
 

L-ectron-X

Gesperrter Benutzer
Ok, das habe ich nicht gesehen.
Du solltest auf jeden Fall die Möglichkeiten von ButtonGroup nutzen.
Und die Methodenaufrufe, die ständig wiederkehren, kannst du in einer eigenen Methode aufrufen. So brauchst du nicht ständig das gleiche schreiben und die Klasse wird nicht so fehleranfällig sein, weil die Aufrufe "zentralisiert" sind.
 

Bastian

Bekanntes Mitglied
L-ectron-X hat gesagt.:
[...]
Und die Methodenaufrufe, die ständig wiederkehren, kannst du in einer eigenen Methode aufrufen.[...]

tschuldigung, dass ich nochmal fragen muss:
ich habe doch nur eine (actionperformed)methode?!
 

L-ectron-X

Gesperrter Benutzer
Ja, aber was machst du denn in den actionPerformed()-Methoden? Da rufen immer die gleichen Referenzen die gleichen Methoden auf. Die kannst du in einer privaten Methode zusammenfassen. In den actionPerformed()-Methode rufst du dann deine neue private Methode auf. Das spart Zeilen, wird übersichtlicher und weniger fehleranfällig.
 

Bastian

Bekanntes Mitglied
L-ectron-X hat gesagt.:
Ja, aber was machst du denn in den actionPerformed()-Methoden? Da rufen immer die gleichen Referenzen die gleichen Methoden auf. Die kannst du in einer privaten Methode zusammenfassen. In den actionPerformed()-Methode rufst du dann deine neue private Methode auf. Das spart Zeilen, wird übersichtlicher und weniger fehleranfällig.

ah, jetzt hats klick gemacht (hoff ich zumindest) :D danke

Code:
    private void setPref(boolean b){
             zvorrat.setEditable(b);
             zvorrat.setText("Ihr Zeichenvorrat");
             ZeichenJMenuItemKleinesAlphabet.setEnabled(b);
             ZeichenJMenuItemGroßesAlphabet.setEnabled(b);
             ZeichenJMenuItemàáâ.setEnabled(b);
             ZeichenJMenuItemÀÁÂ.setEnabled(b);
             ZeichenJMenuItemSonderzeichen.setEnabled(b);
             ZeichenJMenuItemZahlen.setEnabled(b);
    }
    

    public void actionPerformed(ActionEvent e) {
      Object quelle = e.getSource();
 [...]
       if(quelle.equals(jRadioButtonCharsSmallBig)){
             vorrat.setSelection(2);
             setPref(false);
      }
       if(quelle.equals(jRadioButtonSonderzeichen)){
           vorrat.setSelection(3);
            setPref(false);
      }
       if(quelle.equals(jRadioButtonAlleZeichen)){
             vorrat.setSelection(1);
             setPref(false);
       }
       if(quelle.equals(jRadioButtonCharsSmallBigNumb)){
             vorrat.setSelection(4);
             setPref(false);
      }
       if(quelle.equals(jRadioButtonNumbSonderzeichen)){
             vorrat.setSelection(5);
             setPref(false);
      }
       if(quelle.equals(jRadioButtonCharsSmallBigSonderzeichen)){
             vorrat.setSelection(6);
             setPref(false);
       }
       if(quelle.equals(jRadioButtonEigeneZeichen)){
             vorrat.setSelection(8);
             setPref(true);
             zvorrat.setText("");
       }
 [...]


so wars doch gemeint, oder? (gesamter quelletxt unter: http://bsc.bs.funpic.de/wordpress/?page_id=14 ->Passwort.java )
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Applet: com.sun.deploy.security.BlockedException :-( Tools - Maven, Gradle, Ant & mehr 0
M Applet Applet legt Browser lahm Tools - Maven, Gradle, Ant & mehr 3
J Applet Aus anderer Browserinstanz Applet abfragen Tools - Maven, Gradle, Ant & mehr 2
P Linux Applet/Webstart Schriftunterschiede Tools - Maven, Gradle, Ant & mehr 3
E JMol -Applet Einbindung Tools - Maven, Gradle, Ant & mehr 0
T Applet Applet und IText wirft Incompatible magic value 1008813135 Fehler Tools - Maven, Gradle, Ant & mehr 6
P Applet Java Applet läuft im Browser nicht mehr (HTTPClient - NoClassDefFoundError) Tools - Maven, Gradle, Ant & mehr 3
P Applet Applet Signatur auf Server mit SSL-Zertifikat? Tools - Maven, Gradle, Ant & mehr 7
H Applet Applet wird nicht angezeigt Tools - Maven, Gradle, Ant & mehr 2
M Applet Applet funktioniert in Google Chrome nicht Tools - Maven, Gradle, Ant & mehr 2
O Applet "Anwendung kann nicht ausgeführt werden" Tools - Maven, Gradle, Ant & mehr 6
Q Applet Fehlermeldung bei Applet-Wechsel Tools - Maven, Gradle, Ant & mehr 4
T Daten per POST-Methode aus Java-Applet nach php-Script senden Tools - Maven, Gradle, Ant & mehr 3
R Applet friert Adresszeile des Firefox ein Tools - Maven, Gradle, Ant & mehr 2
K Applet als Jar-Datei in HTML einbinden Tools - Maven, Gradle, Ant & mehr 14
H Applet-Fehlermeldung Tools - Maven, Gradle, Ant & mehr 10
H Applet läuft nicht im Browser Tools - Maven, Gradle, Ant & mehr 3
Q Applet Applet läuft nicht im Browser Tools - Maven, Gradle, Ant & mehr 14
J Applet URL mittels TTS als Applet lesen lassen Tools - Maven, Gradle, Ant & mehr 40
F Applet verwischt, wenn Seite gescrollt wird Tools - Maven, Gradle, Ant & mehr 16
S Applet Applet mit C# öffnen: java.lang.SecurityException: Permission denied (WinXP) Tools - Maven, Gradle, Ant & mehr 8
J Applet-Quellcode einsehen Tools - Maven, Gradle, Ant & mehr 6
E Applet Applet und Datenbank Konzept Tools - Maven, Gradle, Ant & mehr 4
A Applet: Html Datei und Class Datei nicht im selben Verzeichnis Tools - Maven, Gradle, Ant & mehr 2
S Applet soll Textdatei von fremdem Server öffnen Tools - Maven, Gradle, Ant & mehr 8
E Java Applet bearbeiten Tools - Maven, Gradle, Ant & mehr 8
Quasar Wie signiere ich mein Applet richtig? Tools - Maven, Gradle, Ant & mehr 6
M mit Applet Javascript Aufrufen Tools - Maven, Gradle, Ant & mehr 2
S Applet and stop() method und gui blocked Tools - Maven, Gradle, Ant & mehr 4
A Applet Applet startet nach Einbinden auf Website nicht Tools - Maven, Gradle, Ant & mehr 4
A Applet, xxx.jar und hsqldb Tools - Maven, Gradle, Ant & mehr 4
T Webstart oder Applet Tools - Maven, Gradle, Ant & mehr 2
H Applet applet neu laden im browser Tools - Maven, Gradle, Ant & mehr 10
M Applet neustart Tools - Maven, Gradle, Ant & mehr 5
S Applet request unter Linux Tools - Maven, Gradle, Ant & mehr 14
S Applet GUI nicht im Webbrowser sichtbar Tools - Maven, Gradle, Ant & mehr 5
S Mittel Applet Datei an ein Webserver übertragen Tools - Maven, Gradle, Ant & mehr 2
M Applet in ClientServer J2EE Anwendung debugen Tools - Maven, Gradle, Ant & mehr 6
H Java Applet Problem beim einbinden in HTML Tools - Maven, Gradle, Ant & mehr 3
M Java3D Applet flackert wenn ein Button(HTML) gedrückt wird Tools - Maven, Gradle, Ant & mehr 11
S Policy mit Signiertem Applet verteilen Tools - Maven, Gradle, Ant & mehr 9
F Applet findet include nicht Tools - Maven, Gradle, Ant & mehr 15
L PHP + Java Applet Kommunikation Tools - Maven, Gradle, Ant & mehr 9
C Probleme mit Applet mit SQL im Browser Tools - Maven, Gradle, Ant & mehr 4
G Java-Applet Probleme beim Browser Tools - Maven, Gradle, Ant & mehr 14
G Textfile in Applet laden möglich? Tools - Maven, Gradle, Ant & mehr 2
A Java-Applet Sandbox deaktiviren? Tools - Maven, Gradle, Ant & mehr 2
B Java-Applet geht nicht (auf dem Webserver) Tools - Maven, Gradle, Ant & mehr 9
P Applet läuft nicht in Browser Tools - Maven, Gradle, Ant & mehr 21
V JAR-Datei eines (J)Applet funktioniert nicht - Help! Tools - Maven, Gradle, Ant & mehr 19
S Java Applet per Klick starten? Tools - Maven, Gradle, Ant & mehr 6
S Applet geht nicht Tools - Maven, Gradle, Ant & mehr 25
J Applet signieren Tools - Maven, Gradle, Ant & mehr 2
H Applet - Geschicklichkeitsspiel programmieren Tools - Maven, Gradle, Ant & mehr 16
U Jar funktioniert nicht als Applet Tools - Maven, Gradle, Ant & mehr 3
C Applet Frage Tools - Maven, Gradle, Ant & mehr 4
M Java Applet - enforce use of older JRE Tools - Maven, Gradle, Ant & mehr 3
N Wie Java-Programm zu Applet machen?! Tools - Maven, Gradle, Ant & mehr 2
W Webseite aus Applet öffnen Tools - Maven, Gradle, Ant & mehr 3
lumo Applet - resize Tools - Maven, Gradle, Ant & mehr 7
Icewind Applet reagiert nach neu laden der Webseite nicht mehr verlässlich auf KeyEvents Tools - Maven, Gradle, Ant & mehr 6
R Applet mit MySQL Tools - Maven, Gradle, Ant & mehr 3
A jar datei trotz zertifikat nich aus applet ausführbar Tools - Maven, Gradle, Ant & mehr 4
F Fehlende Applet Rechte Tools - Maven, Gradle, Ant & mehr 12
N [Applet] Button wir nach 5 secs Unsichtbar Tools - Maven, Gradle, Ant & mehr 2
N jar -> applet wie setzt man das am leichtesten um Tools - Maven, Gradle, Ant & mehr 7
V applet Java 1.6 -> 1.5 Problem ... wie mit Ant zu lösen? Tools - Maven, Gradle, Ant & mehr 7
F applet als JAR -> AccessControlException Tools - Maven, Gradle, Ant & mehr 3
grudge File in Applet laden Tools - Maven, Gradle, Ant & mehr 4
E Java Applet - Double Buffering Problem (Flackern) Tools - Maven, Gradle, Ant & mehr 6
R Applet mit bestimmter JRE ausführen Tools - Maven, Gradle, Ant & mehr 9
traysa Wie binde ich ein applet in eine jsp Tools - Maven, Gradle, Ant & mehr 3
D Mit dem Applet das DOM manipulieren? Tools - Maven, Gradle, Ant & mehr 3
ABstraCT Applet getCodeBase() Zugriff auf darüberliegendenden Ordner ? Tools - Maven, Gradle, Ant & mehr 1
S Java-Applet Steuerung IO Karte am Drucker-Port Tools - Maven, Gradle, Ant & mehr 4
P URL aus Applet öffnen? Tools - Maven, Gradle, Ant & mehr 7
ABstraCT Mit Applet in ne Datei auf seinem Server schreiben. Tools - Maven, Gradle, Ant & mehr 10
E Verzögerung beim Refresh (F5) mit einem Applet verursachen Tools - Maven, Gradle, Ant & mehr 16
deetee Applet Frage Tools - Maven, Gradle, Ant & mehr 2
S Fehler in einem Upload - Applet (nicht gelöst!!) Tools - Maven, Gradle, Ant & mehr 2
G Variable an zweites Applet übergeben Tools - Maven, Gradle, Ant & mehr 3
M Dringend: Sehr kompliziertes Applet Problem Tools - Maven, Gradle, Ant & mehr 4
O Javascript kommuniziert mit Applet? Tools - Maven, Gradle, Ant & mehr 2
H Spracherkennung mit Applet / Policy bzw. Security Fehler Tools - Maven, Gradle, Ant & mehr 2
zilti Nerviger Hinweis bei Applet- und WS-Fenstern - wieso? Tools - Maven, Gradle, Ant & mehr 3
S Datei-/Verzeichniszugriff von signiertem Applet Tools - Maven, Gradle, Ant & mehr 6
G Signiertes Applet installieren? Tools - Maven, Gradle, Ant & mehr 3
G Applet mit Parameter aus JavaScript Tools - Maven, Gradle, Ant & mehr 5
A Applet Maus Koordinaten ohne MouseMotionListener Tools - Maven, Gradle, Ant & mehr 3
K Applet in Eclipse funktioniert, im Browser nicht Tools - Maven, Gradle, Ant & mehr 7
T Applet soll Java Programm starten Tools - Maven, Gradle, Ant & mehr 2
S Applet pai.nt? Tools - Maven, Gradle, Ant & mehr 3
S Applet und File-Object? Tools - Maven, Gradle, Ant & mehr 9
T Applet soll Datei lesen (darf es aber nicht.) Tools - Maven, Gradle, Ant & mehr 3
P Java-Applet funktioniert unter WINXP nicht Tools - Maven, Gradle, Ant & mehr 2
N Java 1.6 Applet auf älteren Versionen ausführbar? Tools - Maven, Gradle, Ant & mehr 4
G Signiertes Applet prüfen? Tools - Maven, Gradle, Ant & mehr 3
H Problem mit einen Applet Tools - Maven, Gradle, Ant & mehr 5
J Java Applet bei mouseover mit Tooltip Tools - Maven, Gradle, Ant & mehr 3
G Applet Security Problem Tools - Maven, Gradle, Ant & mehr 3

Ähnliche Java Themen

Neue Themen


Oben