Hallo zusammen!
Und zwar sitze ich nun schon länger an einem Programm mit dem ich einen Morse Code decodieren bzw. encodieren möchte. Allerdings komme ich nun nicht weiter, im Anhang befindet sich mein Programm und ich habe dazu geschrieben was meiner Meinung nach noch fällt, korrigiert mich bitte falls ich etwas falsch empfunden habe, da ich mich noch am Anfang des Programmierens befinde.
Ich habe das ganze mit drei TextAreas erstellt und drei Buttons, zum einen zum decodieren und encodieren.
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
public class Morsen extends JFrame {
// Anfang Attribute
private JTextArea jTextArea1 = new JTextArea("");
private JScrollPane jTextArea1ScrollPane = new JScrollPane(jTextArea1);
private JTextArea jTextArea2 = new JTextArea("");
private JScrollPane jTextArea2ScrollPane = new JScrollPane(jTextArea2);
private JTextArea decodiert = new JTextArea("");
private JScrollPane decodiertScrollPane = new JScrollPane(decodiert);
private JButton bCodieren = new JButton();
private JButton bDecodieren1 = new JButton();
private JButton bBeenden = new JButton();
private JLabel lAusgangstext = new JLabel();
private JLabel jLabel2 = new JLabel();
private JLabel lDecodierterText = new JLabel();
// Ende Attribute
public Morsen() {
// Frame-Initialisierung
super();
setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
int frameWidth = 721;
int frameHeight = 500;
setSize(frameWidth, frameHeight);
Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
int x = (d.width - getSize().width) / 2;
int y = (d.height - getSize().height) / 2;
setLocation(x, y);
setTitle("Morsen");
setResizable(false);
Container cp = getContentPane();
cp.setLayout(null);
// Anfang Komponenten
jTextArea1ScrollPane.setBounds(24, 92, 200, 244);
cp.add(jTextArea1ScrollPane);
jTextArea2ScrollPane.setBounds(262, 94, 200, 236);
cp.add(jTextArea2ScrollPane);
decodiertScrollPane.setBounds(478, 94, 200, 236);
cp.add(decodiertScrollPane);
bCodieren.setBounds(206, 359, 75, 25);
bCodieren.setText("Codieren");
bCodieren.setMargin(new Insets(2, 2, 2, 2));
bCodieren.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
bCodieren_ActionPerformed(evt);
}
});
cp.add(bCodieren);
bDecodieren1.setBounds(429, 363, 75, 25);
bDecodieren1.setText("Decodieren");
bDecodieren1.setMargin(new Insets(2, 2, 2, 2));
bDecodieren1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
bDecodieren1_ActionPerformed(evt);
}
});
cp.add(bDecodieren1);
bBeenden.setBounds(315, 419, 75, 25);
bBeenden.setText("Beenden");
bBeenden.setMargin(new Insets(2, 2, 2, 2));
bBeenden.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
bBeenden_ActionPerformed(evt);
}
});
cp.add(bBeenden);
lAusgangstext.setBounds(40, 56, 153, 25);
lAusgangstext.setText("Ausgangstext");
cp.add(lAusgangstext);
jLabel2.setBounds(288, 64, 153, 25);
jLabel2.setText("text");
cp.add(jLabel2);
lDecodierterText.setBounds(488, 56, 153, 25);
lDecodierterText.setText("Decodierter Text");
cp.add(lDecodierterText);
// Ende Komponenten
this.erzeugeMorsebaum();
} // end of public Morsen
// Anfang Methoden
public static void main(String[] args) {
new Morsen();
} // end of main
public void bCodieren_ActionPerformed(ActionEvent evt) {
// TODO hier Quelltext einfügen
} // end of bCodieren_ActionPerformed
public void bDecodieren1_ActionPerformed(ActionEvent evt) {
String string1;
char zeichen;
decodiert.setText(“t“);
string1 = codiert.getText();
aktuellerBaum = morsebaum; //aktuellerBaum muss noch in der Morseanwendung deklariert werden
for (int i = 0; i <string1.length(); i++)
{
zeichen = string1.charAt(i); //bei String Beginn bei 0 !!!
this.verarbeiteMorsezeichen(zeichen); //noch zu programmieren
}
}
public void bBeenden_ActionPerformed(ActionEvent evt) {
System.exit(0);
} // end of bBeenden_ActionPerformed
public void erzeugeMorsebaum()
{
BinaryTree<String> baum1, baum2, baum3, baum4, baum5, baum6, baum7, baum8;
baum1 = new BinaryTree <String> ("H");
baum2 = new BinaryTree <String> ("V");
baum3 = new BinaryTree <String> ("S", baum1, baum2);
baum1 = new BinaryTree <String> ("F");
baum2 = new BinaryTree <String> ("Ü");
baum4 = new BinaryTree <String> ("U", baum1, baum2);
baum5 = new BinaryTree <String> ("I", baum3, baum4);
baum1 = new BinaryTree <String> ("L");
baum3 = new BinaryTree <String> ("R", baum1);
baum1 = new BinaryTree <String> ("P");
baum2 = new BinaryTree <String> ("J");
baum4 = new BinaryTree <String> ("W", baum1, baum2);
baum6 = new BinaryTree <String> ("A", baum3, baum4);
baum7 = new BinaryTree <String> ("E", baum5, baum6);
baum1 = new BinaryTree <String> ("B");
baum2 = new BinaryTree <String> ("X");
baum3 = new BinaryTree <String> ("D", baum1, baum2);
baum1 = new BinaryTree <String> ("C");
baum2 = new BinaryTree <String> ("Y");
baum4 = new BinaryTree <String> ("K", baum1, baum2);
baum5 = new BinaryTree <String> ("N", baum3, baum4);
baum1 = new BinaryTree <String> ("Z");
baum2 = new BinaryTree <String> ("Q");
baum3 = new BinaryTree <String> ("G", baum1, baum2);
baum1 = new BinaryTree <String> ("Ö");
baum2 = new BinaryTree <String> ("CH");
baum4 = new BinaryTree <String> ("O", baum1, baum2);
baum6 = new BinaryTree <String> ("M", baum3, baum4);
baum8 = new BinaryTree <String> ("T", baum5, baum6);
morsebaum = new BinaryTree <String> ("#", baum7, baum8);
}
// Ende Methoden
} // end of class Morsen
public class BinaryTree<ContentType> {
private class BTNode {
private ContentType content;
private BinaryTree<ContentType> left, right;
private BTNode(ContentType pContent) {
this.content = pContent;
left = new BinaryTree<ContentType>();
right = new BinaryTree<ContentType>();
}
}
private BTNode node;
public BinaryTree() {
this.node = null;
}
public BinaryTree(ContentType pContent) {
if (pContent != null) {
this.node = new BTNode(pContent);
} else {
this.node = null;
}
}
public BinaryTree(ContentType pContent, BinaryTree<ContentType> pLeftTree, BinaryTree<ContentType> pRightTree) {
if (pContent != null) {
this.node = new BTNode(pContent);
if (pLeftTree != null) {
this.node.left = pLeftTree;
} else {
this.node.left = new BinaryTree<ContentType>();
}
if (pRightTree != null) {
this.node.right = pRightTree;
} else {
this.node.right = new BinaryTree<ContentType>();
}
} else {
// Da der Inhalt null ist, wird ein leerer BinarySearchTree erzeugt.
this.node = null;
}
}
public boolean isEmpty() {
return this.node == null;
}
public void setContent(ContentType pContent) {
if (pContent != null) {
if (this.isEmpty()) {
node = new BTNode(pContent);
this.node.left = new BinaryTree<ContentType>();
this.node.right = new BinaryTree<ContentType>();
}
this.node.content = pContent;
}
}
public ContentType getContent() {
if (this.isEmpty()) {
return null;
} else {
return this.node.content;
}
}
public void setLeftTree(BinaryTree<ContentType> pTree) {
if (!this.isEmpty() && pTree != null) {
this.node.left = pTree;
}
}
public void setRightTree(BinaryTree<ContentType> pTree) {
if (!this.isEmpty() && pTree != null) {
this.node.right = pTree;
}
}
public BinaryTree<ContentType> getLeftTree() {
if (!this.isEmpty()) {
return this.node.left;
} else {
return null;
}
}
public BinaryTree<ContentType> getRightTree() {
if (!this.isEmpty()) {
return this.node.right;
} else {
return null;
}
}
}
Danke im Voraus!
Und zwar sitze ich nun schon länger an einem Programm mit dem ich einen Morse Code decodieren bzw. encodieren möchte. Allerdings komme ich nun nicht weiter, im Anhang befindet sich mein Programm und ich habe dazu geschrieben was meiner Meinung nach noch fällt, korrigiert mich bitte falls ich etwas falsch empfunden habe, da ich mich noch am Anfang des Programmierens befinde.
Ich habe das ganze mit drei TextAreas erstellt und drei Buttons, zum einen zum decodieren und encodieren.
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
public class Morsen extends JFrame {
// Anfang Attribute
private JTextArea jTextArea1 = new JTextArea("");
private JScrollPane jTextArea1ScrollPane = new JScrollPane(jTextArea1);
private JTextArea jTextArea2 = new JTextArea("");
private JScrollPane jTextArea2ScrollPane = new JScrollPane(jTextArea2);
private JTextArea decodiert = new JTextArea("");
private JScrollPane decodiertScrollPane = new JScrollPane(decodiert);
private JButton bCodieren = new JButton();
private JButton bDecodieren1 = new JButton();
private JButton bBeenden = new JButton();
private JLabel lAusgangstext = new JLabel();
private JLabel jLabel2 = new JLabel();
private JLabel lDecodierterText = new JLabel();
// Ende Attribute
public Morsen() {
// Frame-Initialisierung
super();
setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
int frameWidth = 721;
int frameHeight = 500;
setSize(frameWidth, frameHeight);
Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
int x = (d.width - getSize().width) / 2;
int y = (d.height - getSize().height) / 2;
setLocation(x, y);
setTitle("Morsen");
setResizable(false);
Container cp = getContentPane();
cp.setLayout(null);
// Anfang Komponenten
jTextArea1ScrollPane.setBounds(24, 92, 200, 244);
cp.add(jTextArea1ScrollPane);
jTextArea2ScrollPane.setBounds(262, 94, 200, 236);
cp.add(jTextArea2ScrollPane);
decodiertScrollPane.setBounds(478, 94, 200, 236);
cp.add(decodiertScrollPane);
bCodieren.setBounds(206, 359, 75, 25);
bCodieren.setText("Codieren");
bCodieren.setMargin(new Insets(2, 2, 2, 2));
bCodieren.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
bCodieren_ActionPerformed(evt);
}
});
cp.add(bCodieren);
bDecodieren1.setBounds(429, 363, 75, 25);
bDecodieren1.setText("Decodieren");
bDecodieren1.setMargin(new Insets(2, 2, 2, 2));
bDecodieren1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
bDecodieren1_ActionPerformed(evt);
}
});
cp.add(bDecodieren1);
bBeenden.setBounds(315, 419, 75, 25);
bBeenden.setText("Beenden");
bBeenden.setMargin(new Insets(2, 2, 2, 2));
bBeenden.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
bBeenden_ActionPerformed(evt);
}
});
cp.add(bBeenden);
lAusgangstext.setBounds(40, 56, 153, 25);
lAusgangstext.setText("Ausgangstext");
cp.add(lAusgangstext);
jLabel2.setBounds(288, 64, 153, 25);
jLabel2.setText("text");
cp.add(jLabel2);
lDecodierterText.setBounds(488, 56, 153, 25);
lDecodierterText.setText("Decodierter Text");
cp.add(lDecodierterText);
// Ende Komponenten
this.erzeugeMorsebaum();
} // end of public Morsen
// Anfang Methoden
public static void main(String[] args) {
new Morsen();
} // end of main
public void bCodieren_ActionPerformed(ActionEvent evt) {
// TODO hier Quelltext einfügen
} // end of bCodieren_ActionPerformed
public void bDecodieren1_ActionPerformed(ActionEvent evt) {
String string1;
char zeichen;
decodiert.setText(“t“);
string1 = codiert.getText();
aktuellerBaum = morsebaum; //aktuellerBaum muss noch in der Morseanwendung deklariert werden
for (int i = 0; i <string1.length(); i++)
{
zeichen = string1.charAt(i); //bei String Beginn bei 0 !!!
this.verarbeiteMorsezeichen(zeichen); //noch zu programmieren
}
}
public void bBeenden_ActionPerformed(ActionEvent evt) {
System.exit(0);
} // end of bBeenden_ActionPerformed
public void erzeugeMorsebaum()
{
BinaryTree<String> baum1, baum2, baum3, baum4, baum5, baum6, baum7, baum8;
baum1 = new BinaryTree <String> ("H");
baum2 = new BinaryTree <String> ("V");
baum3 = new BinaryTree <String> ("S", baum1, baum2);
baum1 = new BinaryTree <String> ("F");
baum2 = new BinaryTree <String> ("Ü");
baum4 = new BinaryTree <String> ("U", baum1, baum2);
baum5 = new BinaryTree <String> ("I", baum3, baum4);
baum1 = new BinaryTree <String> ("L");
baum3 = new BinaryTree <String> ("R", baum1);
baum1 = new BinaryTree <String> ("P");
baum2 = new BinaryTree <String> ("J");
baum4 = new BinaryTree <String> ("W", baum1, baum2);
baum6 = new BinaryTree <String> ("A", baum3, baum4);
baum7 = new BinaryTree <String> ("E", baum5, baum6);
baum1 = new BinaryTree <String> ("B");
baum2 = new BinaryTree <String> ("X");
baum3 = new BinaryTree <String> ("D", baum1, baum2);
baum1 = new BinaryTree <String> ("C");
baum2 = new BinaryTree <String> ("Y");
baum4 = new BinaryTree <String> ("K", baum1, baum2);
baum5 = new BinaryTree <String> ("N", baum3, baum4);
baum1 = new BinaryTree <String> ("Z");
baum2 = new BinaryTree <String> ("Q");
baum3 = new BinaryTree <String> ("G", baum1, baum2);
baum1 = new BinaryTree <String> ("Ö");
baum2 = new BinaryTree <String> ("CH");
baum4 = new BinaryTree <String> ("O", baum1, baum2);
baum6 = new BinaryTree <String> ("M", baum3, baum4);
baum8 = new BinaryTree <String> ("T", baum5, baum6);
morsebaum = new BinaryTree <String> ("#", baum7, baum8);
}
// Ende Methoden
} // end of class Morsen
public class BinaryTree<ContentType> {
private class BTNode {
private ContentType content;
private BinaryTree<ContentType> left, right;
private BTNode(ContentType pContent) {
this.content = pContent;
left = new BinaryTree<ContentType>();
right = new BinaryTree<ContentType>();
}
}
private BTNode node;
public BinaryTree() {
this.node = null;
}
public BinaryTree(ContentType pContent) {
if (pContent != null) {
this.node = new BTNode(pContent);
} else {
this.node = null;
}
}
public BinaryTree(ContentType pContent, BinaryTree<ContentType> pLeftTree, BinaryTree<ContentType> pRightTree) {
if (pContent != null) {
this.node = new BTNode(pContent);
if (pLeftTree != null) {
this.node.left = pLeftTree;
} else {
this.node.left = new BinaryTree<ContentType>();
}
if (pRightTree != null) {
this.node.right = pRightTree;
} else {
this.node.right = new BinaryTree<ContentType>();
}
} else {
// Da der Inhalt null ist, wird ein leerer BinarySearchTree erzeugt.
this.node = null;
}
}
public boolean isEmpty() {
return this.node == null;
}
public void setContent(ContentType pContent) {
if (pContent != null) {
if (this.isEmpty()) {
node = new BTNode(pContent);
this.node.left = new BinaryTree<ContentType>();
this.node.right = new BinaryTree<ContentType>();
}
this.node.content = pContent;
}
}
public ContentType getContent() {
if (this.isEmpty()) {
return null;
} else {
return this.node.content;
}
}
public void setLeftTree(BinaryTree<ContentType> pTree) {
if (!this.isEmpty() && pTree != null) {
this.node.left = pTree;
}
}
public void setRightTree(BinaryTree<ContentType> pTree) {
if (!this.isEmpty() && pTree != null) {
this.node.right = pTree;
}
}
public BinaryTree<ContentType> getLeftTree() {
if (!this.isEmpty()) {
return this.node.left;
} else {
return null;
}
}
public BinaryTree<ContentType> getRightTree() {
if (!this.isEmpty()) {
return this.node.right;
} else {
return null;
}
}
}
Danke im Voraus!