Hallöchen!
Ich bin absolute Anfängerin in Java und blicke hier gerade voll nicht durch. Es handelt sich um eine eigene Skriptsprache, welche ich versuche zu definieren. Es ist nichts brauchbares, es soll nur zu Übungszwecken dienen. Wenn ich allerdings das Programm laufen lasse, kommt bei mir ein EventDispatchThread zum Vorschein. Ich kapier den gerade nicht und weiss nicht, was nicht stimmt...:bahnhof:
Hier mein Code:
Kann mir jemand sagen, wo das Problem liegt?
Ich bin absolute Anfängerin in Java und blicke hier gerade voll nicht durch. Es handelt sich um eine eigene Skriptsprache, welche ich versuche zu definieren. Es ist nichts brauchbares, es soll nur zu Übungszwecken dienen. Wenn ich allerdings das Programm laufen lasse, kommt bei mir ein EventDispatchThread zum Vorschein. Ich kapier den gerade nicht und weiss nicht, was nicht stimmt...:bahnhof:
Hier mein Code:
Java:
package ch.raiffeisenCOPY;
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Calendar;
import java.util.GregorianCalendar;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import com.sun.java_cup.internal.internal_error;
public class EigeneSkriptsprache extends JFrame implements ActionListener {
private BorderLayout layout;
private JButton btn;
private JTextArea txtarea;
private JScrollPane scrollArea;
public EigeneSkriptsprache() {
super("Neue Programmiersprache");
this.setSize(600, 400);
this.setResizable(true);
this.setVisible(true);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
layout = new BorderLayout();
btn = new JButton("Start");
txtarea = new JTextArea(
"#email [email]tanja@bluemail.com[/email]\n#alert Hallo\n#clock\n#sum 5 6 9\n" +
"#midpoint 4 50\n#capital raiffeisen\n#lowercase MÖNGI\n#squared 7\n" +
"#product 3 4 2\n#subtraction 15 4\n#division 8 4\n#close");
scrollArea = new JScrollPane(txtarea);
txtarea.setLineWrap(false);
txtarea.setTabSize(2);
btn.addActionListener(this);
this.getContentPane().setLayout(layout);
this.getContentPane().add(scrollArea, BorderLayout.CENTER);
this.getContentPane().add(btn, BorderLayout.SOUTH);
}
/**
* Meine Dokumentation.
*/
public void actionPerformed(ActionEvent event) {
Object obj = event.getSource();
if(obj.equals(btn)) {
final String SIGN = "#";
final String MY_LANGUAGE_ALERT = "alert";
final String MY_LANGUAGE_CLOCK = "clock";
final String MY_LANGUAGE_CLOSE = "close";
final String MY_LANGUAGE_SUM = "sum";
final String MY_LANGUAGE_EMAIL = "email";
final String MY_LANGUAGE_MITTELWERT = "midpoint";
final String MY_LANGUAGE_CAPITAL = "capital";
final String MY_LANGUAGE_LOWERCASE = "lowercase";
final String MY_LANGUAGE_SQUARED = "squared";
final String MY_LANGUAGE_PRODUCT = "product";
final String MY_LANGUAGE_DIVISION = "division";
final String MY_LANGUAGE_SUBTRACTION = "subtraction";
Calendar cal = new GregorianCalendar();
String time = cal.get(Calendar.HOUR_OF_DAY) + ":" + cal.get(Calendar.MINUTE);
String scriptEingabe = txtarea.getText();
String[] alleCodes = scriptEingabe.split(SIGN); // split(#) macht nach jedem
// # ein neues item und
// füllt es in ein Array
// ab.
for(int i=0; i < alleCodes.length; i++) {
String temp = alleCodes[i].trim().replace("'", "");
if(temp.length() > 0) {
if(temp.startsWith(MY_LANGUAGE_ALERT)) {
JOptionPane.showMessageDialog(this, temp.substring(MY_LANGUAGE_ALERT.length(), temp.length())); //substring() bewirkt folgendes: "hamburger".substring(4, 8) returns "urge"
}
else if(temp.startsWith(MY_LANGUAGE_CLOCK)) {
JOptionPane.showMessageDialog(this, time);
}
else if(temp.startsWith(MY_LANGUAGE_CAPITAL)) {
JOptionPane.showMessageDialog(this, temp.substring(MY_LANGUAGE_CAPITAL.length(), temp.length()).toUpperCase());
}
else if(temp.startsWith(MY_LANGUAGE_LOWERCASE)) {
JOptionPane.showMessageDialog(this, temp.substring(MY_LANGUAGE_LOWERCASE.length(), temp.length()).toLowerCase());
}
else if(temp.startsWith(MY_LANGUAGE_SQUARED)) {
temp = temp.substring(MY_LANGUAGE_SQUARED.length(), temp.length()).trim();
String[] zahlen = temp.split(" ");
int total = 0;
for(int x=0; x < zahlen.length; x++) {
total = Integer.parseInt(zahlen[x])*Integer.parseInt(zahlen[x]);
}
JOptionPane.showMessageDialog(this, "Resultat " + String.valueOf(total));
}
else if(temp.startsWith(MY_LANGUAGE_CLOSE)) {
System.exit(0);
}
else if(temp.startsWith(MY_LANGUAGE_SUM)) {
temp = temp.substring(MY_LANGUAGE_SUM.length(), temp.length()).trim();
String[] zahlen = temp.split(" ");
int total = 0;
for(int j=0; j < zahlen.length; j++) {
total += Integer.parseInt(zahlen[j]);
}
JOptionPane.showMessageDialog(this, "Resultat " + String.valueOf(total));
}
else if(temp.startsWith(MY_LANGUAGE_SUBTRACTION)) {
temp = temp.substring(MY_LANGUAGE_SUBTRACTION.length(), temp.length()).trim();
String[] zahlen = temp.split(" ");
int total = 0;
for(int j=0; j < zahlen.length; j++) {
total -= Integer.parseInt(zahlen[j]);
}
JOptionPane.showMessageDialog(this, "Resultat " + String.valueOf(total));
}
}
else {
int[] zahlen = new int[2];
zahlen[0] = Integer.parseInt(scriptEingabe);
zahlen[1] = Integer.parseInt(scriptEingabe);
int total = zahlen[0]/zahlen[1];
JOptionPane.showMessageDialog(this, "Resultat " + String.valueOf(total));
}
}
else if(temp.startsWith(MY_LANGUAGE_PRODUCT)) {
temp = temp.substring(MY_LANGUAGE_PRODUCT.length(), temp.length()).trim();
String[] zahlen = temp.split(" ");
int total = 1;
for(int y=0; y < zahlen.length; y++) {
total *= Integer.parseInt(zahlen[y]);
}
JOptionPane.showMessageDialog(this, "Resultat " + String.valueOf(total));
}
else if(temp.startsWith(MY_LANGUAGE_MITTELWERT)) {
temp = temp.substring(MY_LANGUAGE_MITTELWERT.length(), temp.length()).trim();
String[] zahlen = temp.split(" ");
int total = 0;
for(int k=0; k < zahlen.length; k++) {
total += (Integer.parseInt(zahlen[k]))/zahlen.length;
}
JOptionPane.showMessageDialog(this, "Resultat " + String.valueOf(total));
}
else if(temp.startsWith(MY_LANGUAGE_EMAIL)) {
temp = temp.substring(MY_LANGUAGE_EMAIL.length(), temp.length()).trim();
if(temp.indexOf("@") > 0) { // indexOf überprüft, ob "@" an der
// Stelle >0 ist (also 1. 2. 3. etc.)
JOptionPane.showMessageDialog(this, "Korrektes EMail");
// TODO Send Test- Mail
}
else {
JOptionPane.showMessageDialog(this, "Falsches EMail", "@ Kontrolle", JOptionPane.WARNING_MESSAGE);
}
}
}
}
}
public static void main(String[] args) {
EigeneSkriptsprache scriptFrame = new EigeneSkriptsprache();
scriptFrame.setLocation(300, 300);
scriptFrame.setVisible(true);
}
}
Kann mir jemand sagen, wo das Problem liegt?