الأفكار:
انظر إلى طبقة العرض. النص الذي تم استبداله.
بالنسبة لزر تحديد الملف ، استخدم طريقة AddActionListener () لفئة JButton لربط الحدث به ، وتحديد وظيفة ActionPerformed () في الحدث ، واستدعاء طريقة تحديد الملف في جسم الوظيفة.
في طريقة ملف التحديد ، قم أولاً بإنشاء محدد ملف JFileChooser ، واستخدم طريقة setFileFilter () لفئة JFileChooser لإنشاء مرشح تمديد الملف ، ثم استخدم طريقة setFilesElectionMode () لفئة JFileChooser لتعيين وضع اختيار الملف إلى A الملف ، واستخدم showopendialog من فئة JFileChooser لتعيين وضع تحديد الملف على ملف. يتم الحصول على المستخدم من خلال طريقة getSelectedFile () لفئة JFileChooser ، ويتم عرض معلومات الملف إلى مربع النص باستخدام طريقة SetText ().
بالنسبة لزر الاستبدال ، حدد زر الملف ، استخدم طريقة AddActionListener () لفئة JButton لربط الحدث ، وتحديد وظيفة ActionPerformed () في الحدث ، واستدعاء طريقة استبدال النص في جسم الوظيفة.
في طريقة النص البديلة ، استخدم أولاً طريقة GetText () لفئة TextField للحصول على النص المراد البحث عنه والاستبدال. صفيف الأحرف وسلسلة StringBuilder يتم استخدام طريقة القراءة () لفئة FileReader لقراءة محتويات الملف إلى Builder String في حلقة While (). دفق ، واستخدم فئة StringBuilder تقوم طريقة استبدال () بإنشاء سلسلة من المنشئ ويحل محل نص البحث ، ثم يقوم بإنشاء دفق إخراج ملفات FILEWRITER ، واستخدم طريقة الكتابة () لفئة FILEWRITER لكتابة السلسلة التي تم استبدالها في الملف ، ثم استخدم إغلاق فئة filewriter تقوم طريقة () بإغلاق دفق الإخراج ، ثم يمسك fileNotfoundException واستثناء IoException بدوره ، ويستخدم أخيرًا طريقة showmessagedialog () لفئة joptionpane لإثبات المستخدم لإكمال البديل.
بالنسبة لزر الملف المفتوح ، استخدم طريقة AddActionListener () لفئة JButton لربط الحدث به ، وتحديد وظيفة ActionPerformed () في الحدث ، واستدعاء طريقة فتح الملف في جسم الوظيفة.
حاول استخدام سطح المكتب.
الرمز كما يلي:
نسخة الكود كما يلي:
استيراد java.awt.borderlayout ؛
الطبقة العامة استبدالها يمتد JFrame {
/**
*
*/
استاتيكي خاص نهائي الطويل المسلسل = 8674569541853793419L ؛
jpanel contentPane الخاص ؛
Private Jtextfield Filefield ؛
خاص JTextField SearchTextField ؛
Private JTextfield Relacetextfield ؛
ملف الملف الخاص ؛
/**
* إطلاق التطبيق.
*/
الفراغ الثابت العام الرئيسي (سلسلة [] args) {
eventqueue.invokelater (New RunNable () {
تشغيل الفراغ العام () {
يحاول {
استبدال FrameStext = جديد استبدال extext () ؛
frame.setVisible (صحيح) ؛
} catch (استثناء e) {
E.PrintStackTrace () ؛
}
}
}) ؛
}
/**
* إنشاء الإطار.
*/
Public ReplistFileText () {
setResible (false) ؛
setDefaultCloseOperation (jframe.exit_on_close) ؛
setBounds (100 ، 100 ، 501 ، 184) ؛
contentPane = new JPanel () ؛
contentPane.setBorder (New FreexBorder (5 ، 5 ، 5 ، 5)) ؛
contentPane.setLayout (New BorderLayout (0 ، 0)) ؛
setContentPane (contentPane) ؛
JPanel Panel = New JPanel () ؛
panel.setPreferredSize (البعد الجديد (10 ، 91)) ؛
contentPane.add (لوحة ، 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.columnweights = جديد مزدوج [] {0.0 ، 0.0 ، 0.0 ، 1.0 ،
double.min_value} ؛
gbl_panel.rowweights = جديد مزدوج [] {0.0 ، 0.0 ، 0.0 ، 0.0 ،
double.min_value} ؛
panel.setLayout (gbl_panel) ؛
Button Jbutton = New JButton ("SELECT FILE") ؛
button.addActionListener (New ActionListener () {
الفراغ العام actionperformed (Actionevent e) {
do_button_ActionPerformed (e) ؛
}
}) ؛
GridBagConstraints gbc_button = جديد GridBagConstraints () ؛
gbc_button.anchor = gridbagconstraints.northwest ؛
gbc_button.insets = insets new (0 ، 0 ، 5 ، 5) ؛
gbc_button.gridx = 0 ؛
gbc_button.gridy = 0 ؛
panel.add (button ، gbc_button) ؛
FileField = New JTextField () ؛
filefield.setedable (false) ؛
GridBagConstraints gbc_filefield = new GridBagConstraints () ؛
gbc_filefield.gridwidth = 3 ؛
gbc_filefield.insets = insets new (0 ، 0 ، 5 ، 0) ؛
gbc_filefield.fill = gridbagconstraints.horizontal ؛
gbc_filefield.gridx = 1 ؛
gbc_filefield.gridy = 0 ؛
Panel.add (filefield ، gbc_filefield) ؛
filefield.setColumns (10) ؛
JLabel Label = New JLabel ("Search Text:") ؛
GridBagConstraints gbc_label = new GridBagConstraints () ؛
gbc_label.anchor = gridbagconstraints.east ؛
gbc_label.insets = insets new (0 ، 0 ، 5 ، 5) ؛
gbc_label.gridx = 0 ؛
gbc_label.gridy = 1 ؛
panel.add (label ، gbc_label) ؛
SearchTextField = New JTextField () ؛
GridBagConstraints gbc_searchtextfield = new GridBagConstraints () ؛
gbc_searchtextfield.gridwidth = 3 ؛
gbc_searchtextfield.insets = new insets (0 ، 0 ، 5 ، 0) ؛
gbc_searchtextfield.fill = gridbagconstraints.horizontal ؛
gbc_searchtextfield.gridx = 1 ؛
gbc_searchtextfield.gridy = 1 ؛
Panel.add (SearchTextField ، GBC_SearchTextField) ؛
SearchTextField.setColumns (10) ؛
JLabel Label_1 = New JLabel ("استبدال بـ:") ؛
GridBagConstraints gbc_label_1 = new GridBagConstraints () ؛
gbc_label_1.anchor = gridbagconstraints.east ؛
gbc_label_1.insets = insets new (0 ، 0 ، 5 ، 5) ؛
gbc_label_1.gridx = 0 ؛
gbc_label_1.gridy = 2 ؛
panel.add (label_1 ، gbc_label_1) ؛
replacetextfield = new JTextField () ؛
GridBagConstraints gbc_replacetextfield = new GridBagConstraints () ؛
gbc_replacetextfield.gridwidth = 3 ؛
gbc_replacetextfield.insets = insets new (0 ، 0 ، 5 ، 0) ؛
gbc_replacetextfield.fill = gridbagconstraints.horizontal ؛
gbc_replacetextfield.gridx = 1 ؛
gbc_replacetextfield.gridy = 2 ؛
Panel.add (RemoTextField ، GBC_ReplacetextField) ؛
replacetextfield.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 ؛
panel.add (panel_1 ، gbc_panel_1) ؛
jbutton replybutton = new jbutton ("استبدال") ؛
استبدال button.addActionListener (New ActionListener () {
الفراغ العام actionperformed (Actionevent e) {
do_replaceButton_ActionPerformed (e) ؛
}
}) ؛
panel_1.add (استبدال button) ؛
JButton OpenFileButton = New JButton ("Open File") ؛
OpenFileButton.AddActionListener (New ActionListener () {
الفراغ العام actionperformed (Actionevent e) {
do_button_2_actionperformed (e) ؛
}
}) ؛
Panel_1.add (OpenFileButton) ؛
}
/**
* حدد طريقة معالجة أحداث زر الملف
*
* param e
*/
void do_button_actionperformed (ActionEvent e) {
jfilechooser chooser = new jfilechooser (./") ؛// إنشاء محدد ملف
// تعيين مرشح تمديد الملف
chooser.setfilefilter (New FilenameExtensionFilter ("Text" ، "txt" ،
"Java" ، "PHP" ، "HTML" ، "HTM")) ؛
// تعيين وضع تحديد الملف
chooser.setFilesElectionMode (jfilechooser.files_only) ؛
// إظهار مربع الحوار فتح الملف
int خيار = choloSer.ShowOpendialog (هذا) ؛
// تأكد من أن المستخدم يضغط على الزر فتح بدلاً من الزر "إلغاء"
إذا (الخيار! = jfilechooser.approve_option)
يعود؛
// احصل على كائن الملف المحدد من قبل المستخدم
file = choloSer.getSelectedFile () ؛
// إظهار معلومات الملف إلى مربع النص
filefield.settext (file.toString ()) ؛
}
/**
* استبدال طريقة معالجة الأحداث الزر
*
* param e
*/
void do_replaceButton_ActionPerformed (حدث ActionEvent) {
String SearchText = SearchTextField.GetText () ؛ // احصل على نص بحث
string replacetext = replacetextfield.getText () ؛ // الحصول على نص بديل
if (searchText.isempty ())
يعود؛
يحاول {
FileReader FIS = جديد fileReader (ملف) ؛ // إنشاء دفق إدخال الملف
char [] data = new char [1024] ؛ // إنشاء مجموعة أحرف مخزنة
int rn = 0 ؛
StringBuilder SB = جديد StringBuilder () ؛ // إنشاء منشئ سلسلة
بينما ((rn = fis.read (data))> 0) {// قراءة محتوى الملف إلى String Builder
String str = string.valueof (البيانات ، 0 ، rn) ؛
sb.append (str) ؛
}
fis.close () ؛ // أغلق دفق الإدخال
// إنشاء سلسلة من المنشئ واستبدل نص البحث
String str = sb.toString (). استبدال (SearchText ، replacetext) ؛
FILEWRITER FOUT = FILEWRITER جديد (ملف) ؛ // إنشاء دفق إخراج الملف
fout.write (str.tochararray ()) ؛ // اكتب السلسلة التي تم استبدالها في الملف
fout.close () ؛ // أغلق دفق الإخراج
} catch (fileNotfoundException e) {
E.PrintStackTrace () ؛
} catch (ioException e) {
E.PrintStackTrace () ؛
}
joptionpane.showmessagedialog (null ، "الاستبدال الانتهاء") ؛
}
/**
* كيفية التعامل مع حدث زر فتح الملف.
*
* param e
*/
void do_button_2_actionperformed (ActionEvent e) {
يحاول {
إذا (ملف == فارغ)
يعود؛
Desktop.getDesktop (). edit (file) ؛
} catch (ioException E1) {
e1.printstacktrace () ؛
}
}
}