P
Powerwoman
Gast
hallo, ich möchte, dass sich mein programm nach benutzung des filechoosers(public void open), den pfad merkt und ihn an anderer stelle im programm wieder wiederverwendet (public void compile) um ein anderes programm zu starten, leider bekomme ich immer die fehlermeldung, dass das system die angegebene datei nicht finden kann. deswegen denke ich, dass der pfad nict übergeben wird. kann mir jemand helfen?wäre echt lieb
Code:
import java.util.regex.*;
import java.awt.*;
import java.awt.event.*;
import java.io.FilterWriter;
import java.io.FileWriter;
import javax.swing.JFileChooser;
import java.io.FileReader;
import java.io.BufferedWriter;
import java.io.BufferedReader;
import java.io.IOException;
import java.awt.event.WindowListener;
import java.io.File;
import javax.swing.*;
import javax.swing.event.*;
import java.io.*;
import java.awt.print.*;
import java.io.LineNumberReader;
import javax.xml.parsers.*;
public class AWTTe1 extends JFrame implements ActionListener {
Button b = new Button();
Button a = new Button();
TextArea feld;
String zeile;
File currentFile = null;
public static void main(String[] args) {
AWTTe1 e = new AWTTe1();
e.setVisible(true);
}
public AWTTe1() {
MenuBar hauptMenue = new MenuBar();
Menu menue1 = new Menu("datei");
menue1.add("open");
menue1.add("speichern");
menue1.add("drucken");
menue1.add("testen");
menue1.add("beenden");
menue1.add("kompilieren");
hauptMenue.add(menue1);
setMenuBar(hauptMenue);
menue1.addActionListener(this);
setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
initial();
}
public void actionPerformed(ActionEvent evt)
{
String menuAdd = evt.getActionCommand();
if (menuAdd.equals("beenden")) {
System.exit(0);
}
if (menuAdd =="speichern") {
System.out.println("Speichern ausgeführt");
speichern();
}
if (menuAdd.equals("open")) {
open();
}
/*if (menuAdd.equals("drucken")) {
drucken();
}*/
if (menuAdd.equals("testen")) {
testen();
}
if (menuAdd.equals("kompilieren")) {
compile();
}
}
public void windowClosing(WindowEvent evt)
{
System.exit(0);
}
public void windowClosed(WindowEvent evt){}
public void initial() {
feld = new TextArea (20, 100);
add(feld);
feld.setText(feld.getText() + "\n");
b.addActionListener(this);
new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent f) {
speichern();
open();
testen();
//drucken();
}
};
setLayout(new BorderLayout());
add("Center", feld);
setTitle("Mein Editor");
setSize(1200,900);
String path = "AWTTe1.java";
try {
BufferedReader in = new BufferedReader(new FileReader(path));
String zeile = in.readLine();
while (zeile != null) {
System.out.println(zeile +"\n");
zeile = in.readLine();
if (zeile != null)
feld.append(zeile + "\n");
}
} catch (Exception ee) {
ee.printStackTrace();
}
}
/* public void drucken(){
PrinterJob pjob = PrinterJob.getPrinterJob();
//if ( pjob.printDialog() == false ) {
//return;
pjob.setPrintable(this);
if (pjob.printDialog())
pjob.print();
//}
}*/
public void testen() {
String path = "test.txt";
int zcnt = 1;
try {
BufferedReader in = new BufferedReader(new FileReader(path));
String zeile = in.readLine();
StringBuilder b = new StringBuilder();
while(zeile != null) {
Pattern pat = Pattern.compile("\\{");
Pattern pat1 = Pattern.compile("if");
Pattern pat2 = Pattern.compile("\\}");
Pattern pat3 = Pattern.compile(".*//.*");
Matcher mat = pat.matcher(zeile);
Matcher mat1 = pat1.matcher(zeile);
Matcher mat2 = pat2.matcher(zeile);
Matcher mat3 = pat3.matcher(zeile);
if (mat1.find()){
if (mat.find()){
zeile = zeile.replaceAll("\\{","\\{\n");
//System.out.println(zeile);
}
}
if (mat2.find()){
zeile = zeile.replaceAll("\\}"," "+"\\}");
//b.append(zeile+"\n");
}
if (mat3.find()){
zeile = zeile.replaceAll(".*//.*", "");
//b.append(zeile+"\n");
}
else {
// b.append(zeile+"\n");
//System.out.println("Kein Treffer in Zeile: " + zcnt);
}
System.out.println(zeile);
b.append(zeile+"\n");
zcnt++;
zeile = in.readLine();
feld.setText(b.toString()+"\n");
}
} catch (Exception ee) {
ee.printStackTrace();
}
}
public void speichern() {
String path = "test1.txt";
try {
FileOutputStream fo = new FileOutputStream(path);
//fo.write(feld.getText().getBytes("ISO-8859-1"));
//fo.close();
PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter(path,false)));
// BufferedWriter out = new BufferedWriter(new FileWriter(path));
String newline = System.getProperty("line.separator");
String zeile = feld.getText();
if(newline!=null) {
out.write(zeile+newline);
//out.write(zeile+System.getProperty("line.separator"));
out.close();
}
} catch (Exception de) {
de.printStackTrace();
}
}
public void compile() {
try {
Process p = Runtime.getRuntime().exec("ant -f " + currentFile.getParent()+currentFile.getAbsolutePath() + File.separator + "build.xml");
System.out.println(p);
BufferedReader in = new BufferedReader(
new InputStreamReader(p.getInputStream()) );
String s = in.readLine();
System.out.println(s);
while ( ( s = in.readLine()) != null){
System.out.println( s );
}
} catch (Exception de) {
de.printStackTrace();
}
}
public void open() {
feld.setText("");
JFileChooser chooser = new JFileChooser();
int returnVal = chooser.showOpenDialog( null );
if ( returnVal == JFileChooser.APPROVE_OPTION ){
File file = chooser.getSelectedFile();
currentFile = file;
System.out.println(file);
feld.setText(chooser.getSelectedFile().getAbsolutePath());
try {
BufferedReader in = new BufferedReader(new FileReader(file));
String zeile = in.readLine();
while (zeile != null) {
System.out.println(zeile);
if (zeile != null){
feld.setText(feld.getText() + "\n" + zeile);
}
zeile = in.readLine();
}
File current;
} catch (Exception ee) {
ee.printStackTrace();
}
}
}
}