PARTICOLARE TEXTEDITOR REALIZZATO IN JAVA

[Total: 0    Average: 0/5]
Il seguente codice realizza un particolare texteditor in cui è presente un ulteriore tasto che aziona un programma esterno nominato SMV che analizza il contenuto del texteditor opportunamente formattato.

Questa classe rappresenta un semplice TextEditor che gestisce il codice SMV.
All’interno del TextEditor è infatti presente un tasto che, se premuto, esegue il codice SMV
editato al suo interno.

Nel momento in cui si apre questa classe, all’interno è già presente l’ultimo codice SMV utilizzato da DaWeb
nel corso delle sue verifiche.

Questa classe utilizza anche le classi:

NotepadInterazione utile per aprire Il Notepad
InterazioneSMV utile per eseguire SMV.exe nel momento in si preme il tasto descritto sopra

 [java]

package it.ielettronica;

import javax.swing.*;
import javax.swing.text.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;

public class TextEditor extends JFrame {
private JTextComponent editor;
private JFileChooser fileChooser;
protected Action loadAction;
protected Action saveAction;
protected Action cutAction;
protected Action copyAction;
protected Action pasteAction;
protected Action saveopenSMVAction;
public TextEditor() {
super("Gestione dell'ultimo SMV eseguito");
setSize(400,400);
createActions();
JMenuBar menuBar = createMenuBar();
JToolBar toolbar = createToolBar();
editor = createEditor();
JComponent centerPanel = createCenterComponent();
getContentPane().add(BorderLayout.NORTH,toolbar);
getContentPane().add(BorderLayout.CENTER,centerPanel);
setJMenuBar(menuBar);
fileChooser = new JFileChooser();
setVisible(true);
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
}
protected void createActions() {
loadAction = new AbstractAction("Apri", new ImageIcon("images/Open24.gif")) {
public void actionPerformed(ActionEvent e) {
loadText();
}
};
saveAction = new AbstractAction("Salva", new ImageIcon("images/Save24.gif")) {
public void actionPerformed(ActionEvent e) {
saveText();
}
};
cutAction = new AbstractAction("Taglia", new ImageIcon("images/Cut24.gif")) {
public void actionPerformed(ActionEvent e) {
editor.cut();
}
};
copyAction = new AbstractAction("Copia", new ImageIcon("images/Copy24.gif")) {
public void actionPerformed(ActionEvent e) {
editor.copy();
}
};
pasteAction = new AbstractAction("Incolla", new ImageIcon("images/Paste24.gif")) {
public void actionPerformed(ActionEvent e) {
editor.paste();
}
};
saveopenSMVAction = new AbstractAction("Salva e esegui SMV", new ImageIcon("images/salvaesegui.gif")) {
public void actionPerformed(ActionEvent e) {
saveText("FileDaAnalizzare.doc");
interazioneSMV.esegui("FileDaAnalizzare.doc","risultato.txt");
Notepadinterazione.Interazione();
}

};
}
protected JToolBar createToolBar() {
JToolBar tb = new JToolBar();
tb.add(loadAction);
tb.add(saveAction);
tb.addSeparator();
tb.add(cutAction);
tb.add(copyAction);
tb.add(pasteAction);
tb.addSeparator();
tb.addSeparator();
tb.addSeparator();
tb.add(saveopenSMVAction);
return tb;
}
protected JMenuBar createMenuBar() {
JMenu menu = new JMenu("Menu");
menu.add(loadAction);
menu.add(saveAction);
menu.addSeparator();
menu.add(cutAction);
menu.add(copyAction);
menu.add(pasteAction);
menu.addSeparator();
menu.add(saveopenSMVAction);
JMenuBar menuBar = new JMenuBar();
menuBar.add(menu);
return menuBar;
}
protected JComponent createCenterComponent() {
if(editor == null)
editor = createEditor();
return new JScrollPane(editor);
}
protected JTextComponent createEditor() {
return new JTextArea();
}
public void loadText() {
// c'è qui l'apertura del file

int response = fileChooser.showOpenDialog(this);
if(response==JFileChooser.APPROVE_OPTION) {
try {
File f = fileChooser.getSelectedFile();
Reader in = new FileReader(f);
editor.read(in,null);
setTitle(f.getName());
}
catch(Exception e) {}
}
}

public void loadText(String PathDelFile) {
// c'è qui l'apertura del file lodalizzato da una stringa

try {
//File f = fileChooser.getSelectedFile();
File f=new File(PathDelFile);
Reader in = new FileReader(f);
editor.read(in,null);
}
catch(Exception e) {}

}
public void saveText() {
// c'è qui il salvataggio del file

int response = fileChooser.showSaveDialog(this);
if(response==JFileChooser.APPROVE_OPTION) {
try {
File f = fileChooser.getSelectedFile();
Writer out = new FileWriter(f);
editor.write(out);
setTitle(f.getName());
}
catch(Exception e) {}
}
}

public void saveText(String PathDestinazione) {
// c'è qui il salvataggio del file

try {
File f = new File(PathDestinazione);
Writer out = new FileWriter(f);
editor.write(out);
}
catch(Exception e) {}

}

public static void main(String argv[]) {

TextEditor t = new TextEditor();
t.loadText("FileDaAnalizzare.doc");
}
}

class interazioneSMV {

public static void esegui(String FileDaEseguire,String FileRisultato) {
try{
String[] SMV = { "smv",FileDaEseguire};
java.lang.Runtime rt = java.lang.Runtime.getRuntime();
Process process = rt.exec(SMV,null);
InputStream results = process.getInputStream();
InputStream errors = process.getErrorStream();
writeStreamToOutput(results,FileRisultato);

}catch(Exception exc){}
}

static public void writeStreamToOutput(InputStream fw,String FileRisultato) throws IOException{

//Gui.writeStreamToOutput(fw);
int c;
StringBuffer stringa = new StringBuffer(300);
while ((c=fw.read()) != -1)
stringa.append((char)c);
File file=new File(FileRisultato);
FileWriter out=new FileWriter(file);
String text=ChangeChar2(stringa.toString());
out.write(text);
out.close();
fw.close();
}
public static String ChangeChar2(String fileName){
StringBuffer stringa = new StringBuffer(20);
stringa.append(fileName);
int j=0;
while (j<stringa.length()){ style="color: rgb(0, 0, 255);">
if (stringa.charAt(j)=='_'){
j++;
switch (stringa.charAt(j)) {
case '_' :
stringa.delete(j,j+1);
break;
case 'Z' :
stringa.replace(j-1,j+1,"/");
break;
case 'X' :
stringa.replace(j-1,j+1,"+");
break;
case 'J' :
stringa.replace(j-1,j+1,"|");
break;
case 'S' :
stringa.replace(j-1,j+1,"\");
break;
case 'D' :
stringa.replace(j-1,j+1,":");
break;
case 'H' :
stringa.replace(j-1,j+1," ");
break;
case 'Y' :
stringa.replace(j-1,j+1,"'");
break;
case 'Q' :
stringa.replace(j-1,j+1,".");
break;
case 'E' :
stringa.replace(j-1,j+1,"!");
break;
case 'C' :
stringa.replace(j-1,j+1,"@");
break;
case 'O' :
stringa.replace(j-1,j+1,"(");
break;
case 'U' :
stringa.replace(j-1,j+1,")");
break;
case 'T' :
stringa.replace(j-1,j+1,"]");
break;
case 'L' :
stringa.replace(j-1,j+1,"[");
break;
case 'A' :
stringa.replace(j-1,j+1,"=");
break;
case 'B' :
stringa.replace(j-1,j+1,"?");
break;
case 'M' :
stringa.replace(j-1,j+1,"à");
break;
case 'P' :
stringa.replace(j-1,j+1,"%");
break;
case 'N' :
stringa.replace(j-1,j+1,",");
break;
case 'F' :
stringa.replace(j-1,j+1,"&");
break;
case 'R' :
stringa.replace(j-1,j+1,";");
break;
case 'V' :
stringa.replace(j-1,j+1,"{");
break;
case 'W' :
stringa.replace(j-1,j+1,"}");
break;
case 'G' :
stringa.replace(j-1,j+1,"~");
break;
case 'I' :
stringa.replace(j-1,j+1,"æ");
break;
default : j++;
}
} else
j++;

}
return stringa.toString();
}

}

class Notepadinterazione {

public static void Interazione() {
try{
String[] SMV = { "C:/WINDOWS/NOTEPAD","risultato.txt"};
java.lang.Runtime rt = java.lang.Runtime.getRuntime();
Process process = rt.exec(SMV,null);
}catch(Exception exc){}
}
}

[/java]

  • iElettronica

    Questo editor e’ parte del codice Java realizzato per la tesi DAWEB. Se avete bisogno di informazioni scrivete qui un commento