eventhandling / Problemmeldung Bitte schaut euch den Code an

Status
Nicht offen für weitere Antworten.
J

Julia747

Gast
hallo liebe Javaner,
habe problem mit diesem Code: Soll ein Text einlesen in MorseCode umwandeln. Netbeans Gibt fehlermeldung ,die ich nicht in den Griff kriege. Ich bin fuer jede Hilfe dankbar!





Code:
package abi;

import java.awt.event.*;
import java.io.*;
import java.util.regex.*;
import java.awt.*;
import java.applet.*;
import sun.audio.*;
import java.util.*;
import java.net.*;
import javax.swing.*;
import java.util.StringTokenizer;



/**
 *
 * @author Julia K.
 */
public class MorseApp  extends Frame{
    
    class WAdapter extends WindowAdapter
    {
        public void windowClosing( WindowEvent e )
        {
            System.exit(0);
        }
    }
    
        private Button playButton;
        private Button transButton;
        private Button DateiImport;
        private TextArea input;
        private TextArea output;
        private String morse;
        private String text;
        private int wpm = 30;
        private Choice wpmChoice;
        byte [] sample = null;
        AudioData playable = null;
        int sPos;
        int timeunit;
        
           final static String CODES[][]={
           {"A",".-"},
           {"B","-..."},
           {"C","-.-."},
           {"D","-.."},
           {"E","."},
           {"F","..-."},
           {"G","--."},
           {"H","...."},
           {"I",".."},
           {"J",".---"},
           {"K","-.-"},
           {"L",".-.."},
           {"M","--"},
           {"N","-."},
           {"O","---"},
           {"P",".--."},
           {"Q","--.-"},
           {"R",".-."},
           {"S","..."},
           {"T","-"},
           {"U","..-"},
           {"V","...-"},
           {"W",".--"},
           {"X","-..-"},
           {"Y","-.--"},
           {"Z","--.."},
           {"0","----"},
           {"1",".----"},
           {"2","..---"},
           {"3","...--"},
           {"4","....-"},
           {"5","....."},
           {"6","-...."},
           {"7","--..."},
           {"8","---.."},
           {"9","----."}

   }; 


        public MorseApp () {
            
            WAdapter wa = new WAdapter();
            addWindowListener( wa );
            
           Font butFont = new Font("Helvetica", Font.PLAIN, 10);

            GridBagLayout gbag = new GridBagLayout();
            setLayout(gbag);
            GridBagConstraints con = new GridBagConstraints();
            

            Label l4 = new Label("Morse Code Übersetzer", Label.CENTER);
            l4.setFont(new Font("Helvetica", Font.BOLD, 16));
            con.gridx = 0;
            con.gridy = 0;
            con.gridwidth = 6;
            con.anchor = GridBagConstraints.CENTER;
            //con.fill = GridBagConstraints.HORIZONTAL;
            con.weightx = 1.0;
            gbag.setConstraints(l4, con);
            add(l4);

            Label l2 = new Label("TEXTEINGABE", Label.CENTER);
            l2.setFont(new Font("Helvetica", Font.BOLD, 12));
            con.gridx = 0;
            con.gridy = 1;
            gbag.setConstraints(l2, con);
            add(l2);

            TextArea input = new TextArea("",5, 90, 
                    TextArea.SCROLLBARS_VERTICAL_ONLY);
            input.setEditable(true);
            input.setFont(new Font("Courier", Font.PLAIN, 10));
            con.gridx = 0;
            con.gridy = 2;
            gbag.setConstraints(input, con);
            add(input);
           

            Label l3 = new Label("MORSECODE", Label.CENTER);
            l3.setFont(new Font("Helvetica", Font.BOLD, 12));
            con.gridx = 0;
            con.gridy = 3;
            gbag.setConstraints(l3, con);
            add(l3);

            TextArea output = new TextArea("",5, 90, 
                    TextArea.SCROLLBARS_VERTICAL_ONLY);
            output.setEditable(true);
            output.setFont(new Font("Courier", Font.PLAIN, 10));
            con.gridx = 0;
            con.gridy = 4;
            gbag.setConstraints(output, con);
            add(output);

            transButton = new Button("Übersetze");
            transButton.setFont(butFont);
            transButton.setForeground(Color.black);
            transButton.setBackground(Color.lightGray);
            con.gridx = 0;
            con.gridy = 5;
            con.gridwidth = 3;
            con.ipadx = 2;
            con.ipady = 2;
            con.insets = new Insets(6,0,0,0);
            gbag.setConstraints(transButton, con);
            add(transButton);
           
            
            

            Panel p1 = new Panel();
            GridBagLayout gbag1 = new GridBagLayout();
            p1.setLayout(gbag1);

            con.gridx = 3;
            con.gridy = 5;
            con.gridwidth = 3;
            con.ipadx = 0;
            con.ipady = 0;
            gbag.setConstraints(p1, con);
            add(p1);

            //sub panel
            playButton = new Button("Play");
            playButton.setFont(butFont);
            playButton.setForeground(Color.black);
            playButton.setBackground(Color.lightGray);
            con.gridx = 0;
            con.gridy = 0;
            con.gridwidth = 1;
            con.ipadx = 2;
            con.ipady = 2;
            con.insets = new Insets(0,0,0,0);
            gbag1.setConstraints(playButton, con);
            p1.add(playButton);
            
            p1.add(playButton);Label l5 = new Label("mit");
            l5.setFont(butFont);
            con.gridx = 1;
            con.gridy = 0;
            con.ipadx = 0;
            con.ipady = 0;
            gbag1.setConstraints(l5, con);
            p1.add(l5);

            wpmChoice = new Choice();
            wpmChoice.setFont(butFont);
            wpmChoice.addItem("30");
            wpmChoice.addItem("40");
            wpmChoice.addItem("50");
            wpmChoice.addItem("60");
            wpmChoice.addItem("70");
            wpmChoice.addItem("80");
            wpmChoice.addItem("90");
            wpmChoice.addItem("100");
            wpmChoice.addItem("110");
            wpmChoice.addItem("120");
            wpmChoice.addItem("130");
            wpmChoice.addItem("140");
            wpmChoice.addItem("150");
            wpmChoice.addItem("160");
            wpmChoice.addItem("170");
            wpmChoice.addItem("180");
            wpmChoice.addItem("190");
            wpmChoice.addItem("200");
            wpmChoice.select(3);
            wpmChoice.setForeground(Color.black);
            wpmChoice.setBackground(Color.lightGray);
            con.gridx = 2;
            con.gridy = 0;
            gbag1.setConstraints(wpmChoice, con);
            p1.add(wpmChoice);

            Label l1 = new Label("WPM");
            l1.setFont(butFont);
            con.gridx = 3;
            con.gridy = 0;
            gbag1.setConstraints(l1, con);
            p1.add(l1);

            DateiImport = new Button("DateiImport");
            playButton.setFont(butFont);
            playButton.setForeground(Color.black);
            playButton.setBackground(Color.lightGray);
            con.gridx = 0;
            con.gridy = 6;
            con.gridwidth = 6;
            con.anchor = GridBagConstraints.CENTER;
            gbag.setConstraints(DateiImport, con);
            add(DateiImport);
            

        }
        
         public boolean action(Event event, Object arg) {
            if (event.target == transButton) {
                 if (isText(input.getText())) {
                    text = input.getText();
                    morse = getWord(text);
                    output.setText(morse);
                } else {
                    morse = input.getText();
                    text = getMorseCode(morse);
                    output.setText(text);
                }
                return true;
            }
                if (event.target == playButton) {
                //Applet.this.showStatus(status);
                if (isText(input.getText())) {
                    text = input.getText();
                    morse = getWord(text);
                    output.setText(morse);
                    makeSample(morse);
                } else {
                    morse = input.getText();
                    text = getMorseCode(morse);
                    output.setText(text);
                    makeSample(input.getText());  //using the processed morse
                }
                playSample();
                return true;
            }
            else if (event.target == wpmChoice) {
                if (arg.equals("30")) wpm = 30;
                else if (arg.equals("40")) wpm = 40;
                else if (arg.equals("50")) wpm = 50;
                else if (arg.equals("60")) wpm = 60;
                else if (arg.equals("70")) wpm = 70;
                else if (arg.equals("80")) wpm = 80;
                else if (arg.equals("90")) wpm = 90;
                else if (arg.equals("100")) wpm = 100;
                else if (arg.equals("110")) wpm = 110;
                else if (arg.equals("120")) wpm = 120;
                else if (arg.equals("130")) wpm = 130;
                else if (arg.equals("140")) wpm = 140;
                else if (arg.equals("150")) wpm = 150;
                else if (arg.equals("160")) wpm = 160;
                else if (arg.equals("170")) wpm = 170;
                else if (arg.equals("180")) wpm = 180;
                else if (arg.equals("190")) wpm = 190;
                else if (arg.equals("200")) wpm = 200;
                //wpm = (event.target.getSelectedIndex() + 1) * 5;
                return true;
            }
            else return super.action(event, arg);
         }
  /*********   TEXT TEXT TEXT TEXT TEXT TEXT **/
         
      public boolean isText (String sText) {
        boolean matches = false;
        boolean matches1 = true ;
        String pattern = ("^[._/ \\|-]*$");
        Pattern r = Pattern.compile(pattern);
        Matcher m = r.matcher(sText);
       
        if (m.find()) {
            System.out.println("MorseCode ");
            return matches;
            
        }else {
             System.out.println("Text");}
            return matches1;
   }  
         
         
     public String getMorseCode(String text)
   {
     StringBuffer codeWord = new StringBuffer();
     String foo= text.toUpperCase();
     StringTokenizer st = new StringTokenizer(foo," ", true);
        while (st.hasMoreTokens())
         {
       String tStr= st.nextToken();
        if (tStr.compareTo(" ")==0)
              {
                codeWord.append("    ");
             }
              else
            {
      String z=null;
      for(int x=0; x<tStr.length(); x++)
      {
     z = tStr.substring(x,x+1);
          int row=0;
       for(; (row<CODES.length)&&(z.compareTo(CODES[row][0])!=0); row++);
       if (row==CODES.length)  {System.out.println("Cannot find Code for : " +z); }
        else {codeWord.append(CODES[row][1]+" "); }
         }

       z=null;
       }
   }

    return codeWord.toString().trim();
   } 
        
    public String getWord(String t)
   {
    StringBuffer codeWord = new StringBuffer();
   StringTokenizer st = new StringTokenizer(t," ", true);
    while (st.hasMoreTokens())
     {
   String  tStr= st.nextToken();

         if (tStr.compareTo(" ")==0)
          {
    //find the next token , if it is also space read the next two tokens
    // else append a space and make the curToken equal to next token
    String nextTok = st.nextToken();
   if (" ".compareTo(nextTok)==0) { codeWord.append("   ");st.nextToken();tStr=null;tStr=st.nextToken();}
    else {tStr=null; tStr=nextTok; }
      }
           if (tStr.compareTo(" ")!=0)
          {
 

             int row=0,col=0;
           for(row=0; row<CODES.length; row++)
           {
      for(col=0;col<CODES[0].length;col++)
      {
       if (tStr.compareTo(CODES[row][col])==0)
       {

        codeWord.append(CODES[row][0]+" ");
       }
      }
     }
 

         tStr=null;
     }

  }

    return codeWord.toString();

   } 
    
  /**********  SOUND SOUND SOUND SOUND SOUND   */
    
    public void playSample() {
            AudioDataStream stream = new AudioDataStream(playable);
            AudioPlayer.player.start(stream);
        }

        public void makeSample(String morse) {
            char c;
            int dits=0, dahs=0, spcs=0, slashes=0;
            int dahLen = 3;
            int pause1 = 1;
            int pause2 = 3;
            int pause3 = 7;
            int wordLen = 50;
            int ditLen = (int)1000*60/(wpm*wordLen);  
            //thousandths of a sec per dit, or 8-byte frames per dit

            for (int i = 0; i < morse.length(); i++) {
                c = morse.charAt(i);
                //status += c;
                switch (c) {
                case '.': 
                    dits++; 
                    break;
                case '-': 
                    dahs++; 
                    break;
                case ' ': 
                    spcs++; 
                    break;
                case '/': 
                    slashes++; 
                    break;
                    //need default
                }
            }
            //status += " "+dits+" "+dahs+" "+spcs+" "+slashes;
            int length = ditLen*8*(dits*(1+pause1)+dahs*(dahLen+pause1)+spcs*(pause2-pause1)+slashes*(pause3-pause1));
	
            sample = new byte[length];
	
            int sPos = 0;
            for (int i = 0; i < morse.length(); i++) {
                c = morse.charAt(i);
                switch (c) {
                case '.': 
                    addSound(1, sPos, ditLen);
                    sPos += (1+pause1)*ditLen*8;
                    break;
                case '-': 
                    addSound(dahLen, sPos, ditLen);
                    sPos += (dahLen+pause1)*ditLen*8;
                    break;
                case ' ': 
                    sPos += (pause2-pause1)*ditLen*8;
                    break;
                case '/': 
                    sPos += (pause3-pause1)*ditLen*8;
                    break;
                }
            }
            playable = new AudioData(sample);
        }

        public void addSound(int units, int sPos, int ditLen) {
            for (int i = 0; i < units*ditLen; i++) {
                sample[sPos+i*8] = (byte)0xA7;
                sample[sPos+i*8+1] = (byte)0x81;
                sample[sPos+i*8+2] = (byte)0xA7;
                sample[sPos+i*8+3] = (byte)0;
                sample[sPos+i*8+4] = (byte)0x59;
                sample[sPos+i*8+5] = (byte)0x7F;
                sample[sPos+i*8+6] = (byte)0x59;
                sample[sPos+i*8+7] = (byte)0;
            }
        }
    



        public static void main(String[] args) {
        MorseApp test = new MorseApp();
        test.setBackground(Color.lightGray);
        test.setLocation(100,100);
        test.setSize(800, 500);
        test.setVisible(true);
        
    
        // TODO code application logic here
    }}
 

sliwalker

Top Contributor
So etwas macht ihr im Abi?^^
Respekt! Sieht mehr nach Uni aus.

Aber die fehlermeldungen wären schon wichtig. ;)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
Zrebna Problem bei Eventhandling (Value soll nach jedem erneutem Klick gelöscht werden) AWT, Swing, JavaFX & SWT 4
K AWT Eventhandling AWT, Swing, JavaFX & SWT 2
S JMenuBar wiederverwenden und Eventhandling anpassen AWT, Swing, JavaFX & SWT 4
G Generelle Vorgehensweise Eventhandling bei GUI Programmierung AWT, Swing, JavaFX & SWT 14
M Problem beim Eventhandling AWT, Swing, JavaFX & SWT 5
M AWT Eventhandling AWT, Swing, JavaFX & SWT 15
P Eventhandling AWT, Swing, JavaFX & SWT 7
F EventHandling AWT, Swing, JavaFX & SWT 6
L Swing JButton macht Eventhandling kaputt AWT, Swing, JavaFX & SWT 3
S Eventhandling obwohl Fenster nicht im Fokus AWT, Swing, JavaFX & SWT 5
G Eventhandling für JTable AWT, Swing, JavaFX & SWT 3
S Problem mit Eventhandling (Anfängerfrage) AWT, Swing, JavaFX & SWT 12
P SWT - EventHandling AWT, Swing, JavaFX & SWT 4
G EventHandling AWT, Swing, JavaFX & SWT 18
J Drag und drop aus einer JTable - bitte um Unterstützung AWT, Swing, JavaFX & SWT 2
A Swing Meine JButtons werden nicht angezeigt bitte helft mir AWT, Swing, JavaFX & SWT 2
J Bitte Erläuterung (skin/virtualflow) AWT, Swing, JavaFX & SWT 0
H JTextArea - farbige Zeilen .. bitte um Vorschläge zur Implementierung AWT, Swing, JavaFX & SWT 1
A Swing TicTacToe-Bitte um Hilfe AWT, Swing, JavaFX & SWT 32
T Bitte um Hilfe AWT, Swing, JavaFX & SWT 2
X Swing JButton's zum JScrollPane hinzufügen geht nicht. Bitte um Hilfe. AWT, Swing, JavaFX & SWT 9
R Swing JOptionPane Fehlermeldung- bitte um Hilfe! AWT, Swing, JavaFX & SWT 4
T action für Button übergeben - bitte um Segen AWT, Swing, JavaFX & SWT 1
C Swing XML - JAVA (GUI) Problem !! BITTE HELFEN !! AWT, Swing, JavaFX & SWT 6
R Bitte kein Menü bei F10 AWT, Swing, JavaFX & SWT 9
S Bitte um ein Beispiel von JXTreeTable AWT, Swing, JavaFX & SWT 12
J AWT Einmal FileDialog-Beispiel für Dumme bitte AWT, Swing, JavaFX & SWT 6
Jats Bitte um Hilfe bei JComboBox mit Array AWT, Swing, JavaFX & SWT 6
S Swing Bild (Gif) in Bitte warten JDialog AWT, Swing, JavaFX & SWT 6
A repaint() zu langsam, bitte um alternativen AWT, Swing, JavaFX & SWT 5
hdi GUI - Bitte optisches Feedback ;) AWT, Swing, JavaFX & SWT 26
O Verbesserungfrage zu einem MP3Player Slider - Ebenius kannst du helfen bitte ? AWT, Swing, JavaFX & SWT 10
V Bitte um Hilfe bei nem Taschenrechner AWT, Swing, JavaFX & SWT 8
R JDialog "Bitte warten..." durchsichtig AWT, Swing, JavaFX & SWT 5
O Bitte um Hilfe bei ComboBox in TableHeader AWT, Swing, JavaFX & SWT 9
A Bitte warten Dialog AWT, Swing, JavaFX & SWT 4
E bei gedrückte Taste --> Bitte nur ein Event auslösen AWT, Swing, JavaFX & SWT 4
P Anfänger Probleme mit JTable bitte um Rat! AWT, Swing, JavaFX & SWT 5
N ausrichtung Button - hilfe bitte AWT, Swing, JavaFX & SWT 2
G Mausklick event? BITTE HELFT MIR! :( AWT, Swing, JavaFX & SWT 8
I TrayIcon aber bitte nur einmal AWT, Swing, JavaFX & SWT 2
H <Synth> Alle die sich auskennen Bitte hier rein schaue AWT, Swing, JavaFX & SWT 2
hdi bitte um performance ratschläge AWT, Swing, JavaFX & SWT 31
G kann meine idee nicht verwirklichen, bitte helfen AWT, Swing, JavaFX & SWT 3
G eingegebene Werte einer JTable prüfen? Bitte helfen AWT, Swing, JavaFX & SWT 5
V Bitte um kurze erklärung AWT, Swing, JavaFX & SWT 2
S ScrollBar, bitte helft mir! AWT, Swing, JavaFX & SWT 9
S Bitte Sinusbefehl erklären AWT, Swing, JavaFX & SWT 5
C JTree bereitet große Probleme, kann uns bitte jemand helfen! AWT, Swing, JavaFX & SWT 6
J JPanel in JScrollPane Hilfe bitte AWT, Swing, JavaFX & SWT 2
thE_29 Vor dem ersten Posten bitte lesen! AWT, Swing, JavaFX & SWT 0
M MouseEnter - Exit - Starthilfe bitte! AWT, Swing, JavaFX & SWT 3
A Kann mir mal bitte jemand die Ausrichtungen logisch erklären AWT, Swing, JavaFX & SWT 10

Ähnliche Java Themen

Neue Themen


Oben