Idées:
Regardez d'abord la couche de vue. Le texte remplacé.
Pour le bouton Sélectionner le fichier, utilisez la méthode AddActionListener () de la classe JButton pour lui lier l'événement, définissez la fonction ActionPerformed () dans l'événement et appelez la méthode de sélection du fichier dans le corps de la fonction.
Dans la méthode du fichier de sélection, créez d'abord le sélecteur de fichiers jFileChoOSer, utilisez la méthode setFileFilter () de la classe JFileChoOser pour créer le filtre d'extension de fichier, puis utilisez la méthode SetFileSelection () de la classe JFileChooser pour définir le mode de sélection de fichiers sur un Fichier et utilisez le showoPendialog de la classe JFileChoOser pour définir le mode de sélection de fichiers sur un fichier. L'utilisateur est obtenu via la méthode GetSelectedFile () de la classe JFileChoOser, et les informations de fichier s'affichent dans la zone de texte à l'aide de la méthode SetText () de la classe JTextField.
Pour le bouton de remplacement, sélectionnez le bouton Fichier, utilisez la méthode AddActionListener () de la classe JButton pour lier l'événement, définissez la fonction ActionPerformed () dans l'événement et appelez la méthode de remplacement du texte dans le corps de la fonction.
Dans la méthode du texte de remplacement, utilisez d'abord la méthode getText () de la classe TextField pour faire la recherche du texte et le texte à remplacer. Tableau de caractères et construction de chaînes de caractères STRINGBUILDER La méthode read () de la classe FileReader est utilisée pour lire le contenu du fichier au générateur de chaînes dans la boucle while () après la lecture, utilisez la méthode Close () de la classe FileReader pour fermer la saisie de l'entrée Stream et utilisez la classe StringBuilder La méthode Remplace () génère une chaîne à partir du constructeur et remplace le texte de recherche, puis crée un flux de sortie de fichier de fichiers de fichiers, utilisez la méthode écrite () de la classe FileWriter pour écrire la chaîne remplacée dans le fichier, puis utilisez la fermeture de La classe FileWriter La méthode () ferme le flux de sortie, puis attrape le FileLoTFoundException et l'exception IOException à son tour, et utilise enfin la méthode ShowMessageDialog () de la classe JOptionPane pour inciter l'utilisateur à terminer le remplacement.
Pour le bouton Open Fichier, utilisez la méthode AddActionListener () de la classe JButton pour lui lier l'événement, définissez la fonction ActionPerformEd () dans l'événement et appelez la méthode d'ouverture du fichier dans le corps de la fonction.
Essayez d'utiliser Desktop.getDesktop (). Edit (fichier);
Le code est le suivant:
La copie de code est la suivante:
import java.awt.borderLayout;
classe publique RemplaceFileText étend JFrame {
/ **
*
* /
Final statique privé long SerialVersionUID = 8674569541853793419L;
JPANEL privé ContentPane;
JEXTFIELD PRIVÉ FILEFIELD;
JEXTFIELD JETTHFIELD PRIVÉ;
Jtextfield privé RemplaceTextfield;
fichier privé;
/ **
* Lancez l'application.
* /
public static void main (String [] args) {
EventQueue.invokelater (new Runnable () {
public void run () {
essayer {
RemplaceFileText Frame = nouveau ReplaceFileText ();
frame.setVisible (true);
} catch (exception e) {
e.printStackTrace ();
}
}
});
}
/ **
* Créez le cadre.
* /
public RemplaceFileText () {
setResizable (false);
setDefaultCloseOperation (jframe.exit_on_close);
Setbounds (100, 100, 501, 184);
contentPane = new JPanel ();
ContentPane.SetBorder (New videBorder (5, 5, 5, 5));
contentPane.SetLayout (new BorderLayout (0, 0));
setContentPane (contentPane);
Jpanel Panel = new JPanel ();
panneau.SetPreferRedSize (nouvelle dimension (10, 91));
contentPane.add (panneau, borderlayout.center);
Gridbaglayout gbl_panel = new gridbaglayout ();
gbl_panel.columnwidths = new int [] {81, 0, 0, 66, 0};
gbl_panel.rowheights = new int [] {23, 0, 0, 0, 0};
GBL_PANEL.COLUMNESS = NOUVEAU Double [] {0,0, 0,0, 0,0, 1,0,
Double.min_value};
GBL_PANEL.ROWWEMPLES = nouveau double [] {0,0, 0,0, 0,0, 0,0,
Double.min_value};
PANNEL.SETLAYOUT (GBL_PANEL);
JBUTTON Button = new JBUTTON ("SELECT FILE");
Button.addactionListener (new ActionListener () {
public void ActionPerformed (ActionEvent e) {
do_button_actionperformed (e);
}
});
GridbagConstraints gbc_button = new GridBagConstraints ();
gbc_button.anchor = gridbagConstraints.northwest;
gbc_button.insets = nouveaux encarts (0, 0, 5, 5);
gbc_button.gridx = 0;
gbc_button.gridy = 0;
PANNEL.ADD (Button, GBC_BUTTON);
fileField = new JTextField ();
filefield.setEdIT (false);
GridbagConstraints gbc_filefield = new GridBagConstraints ();
gbc_filefield.gridWidth = 3;
GBC_FILEFIELD.INSESTS = NOUVEAUX INSTRES (0, 0, 5, 0);
gbc_filefield.fill = gridbagConstraints.Horizontal;
gbc_filefield.gridx = 1;
gbc_filefield.gridy = 0;
PANNEL.ADD (FILEFIELD, GBC_FILEFIELD);
filefield.setColumns (10);
JLABEL Label = new JLabel ("Text de recherche:");
GridbagConstraints gbc_label = new GridBagConstraints ();
gbc_label.anchor = gridbagConstraints.East;
gbc_label.insets = nouveaux encarts (0, 0, 5, 5);
gbc_label.gridx = 0;
gbc_label.gridy = 1;
PANNEL.ADD (Label, GBC_LABEL);
searchTextField = new JTextField ();
GridbagConstraints gbc_searchTextField = new GridBagConstraints ();
gbc_searchTextField.gridWidth = 3;
gbc_searchTextField.insets = Nouveaux encarts (0, 0, 5, 0);
gbc_searchTextField.fill = gridbagConstraints.Horizontal;
gbc_searchTextField.gridx = 1;
gbc_searchTextField.gridy = 1;
PANNEL.ADD (SearchTextField, GBC_SearchTextField);
searchTextField.setColumns (10);
JLABEL Label_1 = new JLabel ("Remplacer par:");
GridbagConstraints gbc_label_1 = new GridBagConstraints ();
gbc_label_1.anchor = gridbagConstraints.East;
gbc_label_1.insets = nouveaux encarts (0, 0, 5, 5);
gbc_label_1.gridx = 0;
gbc_label_1.gridy = 2;
PANNEL.ADD (Label_1, GBC_LABEL_1);
remplaceTextField = new JTextField ();
GridBagConstraints gbc_replaceTextField = new GridBagConstraints ();
gbc_replaceTextfield.gridWidth = 3;
gbc_replaceTextField.insets = Nouveaux encarts (0, 0, 5, 0);
gbc_replaceTextfield.fill = gridbagConstraints.Horizontal;
gbc_replaceTextfield.gridx = 1;
gbc_replaceTextfield.gridy = 2;
PANNEL.ADD (RempaceTextField, GBC_ReplaceTextField);
remplaceTextField.setColumns (10);
Jpanel Panel_1 = new JPanel ();
GridbagConstraints gbc_panel_1 = new GridBagConstraints ();
gbc_panel_1.gridwidth = 4;
gbc_panel_1.fill = gridbagConstraints. both;
gbc_panel_1.gridx = 0;
gbc_panel_1.gridy = 3;
PANNEL.ADD (PANNEL_1, GBC_PANEL_1);
JBUTTON REPLACEBUTTON = NOUVEAU JBUTTON ("remplacer");
RemplaceButton.AddactionListener (new ActionListener () {
public void ActionPerformed (ActionEvent e) {
do_replacebutton_actionperformed (e);
}
});
PANNEL_1.ADD (RemplaceButton);
JBUTTON OpenFileButton = new JBUTTON ("Fichier ouvert");
openFileButton.AddactionListener (new ActionListener () {
public void ActionPerformed (ActionEvent e) {
do_button_2_actionperformed (e);
}
});
PANNEL_1.ADD (OpenFileButton);
}
/ **
* Sélectionnez la méthode de traitement des événements du bouton de fichier
*
* @param e
* /
protégé void do_button_actionperformed (actionevent e) {
JFileChoOser Chooser = New JFileChoOser ("./") ;// créer un sélecteur de fichiers
// Définir le filtre d'extension de fichier
choOser.setFileFilter (nouveau fileNameExtensionFilter ("texte", "txt",
"java", "php", "html", "htm"));
// Définir le mode de sélection des fichiers
choOser.setFilesElelectionMode (jFileChoOser.Files_only);
// Afficher la boîte de dialogue d'ouverture des fichiers
int option = choOser.showOpenDialog (this);
// Assurez-vous que l'utilisateur appuie sur le bouton Ouvrir au lieu du bouton Annuler
if (option! = jFileChoOser.Approve_Option)
retour;
// obtient l'objet de fichier sélectionné par l'utilisateur
file = choOser.getSelectedFile ();
// Afficher les informations de fichier dans la zone de texte
fileField.SeTText (file.toString ());
}
/ **
* Remplacer la méthode de gestion des événements de bouton
*
* @param e
* /
protégé void do_replacebutton_actionperformed (événement ActionEvent) {
String searchText = searchTextField.getText (); // Obtenez un texte de recherche
String remplaceText = remplaceTextField.getText (); // Obtenez le texte de remplacement
if (searchText.iSempty ())
retour;
essayer {
FileReader fis = new fileReader (fichier); // créer un flux d'entrée de fichier
char [] data = nouveau char [1024]; // créer un tableau de caractères tamponné
int rn = 0;
StringBuilder sb = new StringBuilder (); // Créer un générateur de chaînes
while ((rn = fis.read (data))> 0) {// lire le contenu du fichier à String Builder
String str = string.valueof (data, 0, rn);
SB.APPEND (STR);
}
fis.close (); // Fermez le flux d'entrée
// générer une chaîne à partir du constructeur et remplacer le texte de recherche
String str = sb.toString (). Remplace (SearchText, remplaceText);
FileWriter fout = new FileWriter (fichier); // Créer un flux de sortie de fichier
fout.write (str.tocharArray ()); // Écrivez la chaîne remplacée dans le fichier
fout.close (); // Fermez le flux de sortie
} catch (filenotfoundException e) {
e.printStackTrace ();
} catch (ioexception e) {
e.printStackTrace ();
}
JOptionPane.showMessageDialog (null, "remplacement terminé");
}
/ **
* Comment gérer l'événement du bouton Open Fichier.
*
* @param e
* /
protégé void do_button_2_actionperformed (ActionEvent e) {
essayer {
if (file == null)
retour;
Desktop.getDeskTop (). Edit (fichier);
} catch (ioexception e1) {
e1.printStackTrace ();
}
}
}