//Impor paket kelas JAVA
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
impor java.io.*;
kelas EditFile
{
//Konstruktor bawaan
SuntingFile(){}
//Simpan fungsi file
batal SaveFile(Nama string,String str)
{
mencoba
{
//Deklarasikan objek keluaran file
FileOutputStream fos = FileOutputStream baru(nama);
//Keluaran menyimpan file
fos.write(str.getBytes());
}
menangkap (IOException e)
{
//Terjadi kesalahan dan mencetak pesan kesalahan
Sistem.keluar.println(e.toString());
}
}
//Buka fungsi file
String OpenFile (nama string)
{
//Tentukan string str untuk menyimpan konten file
String str=nol;
//mendefinisikan penghitung
ke dalam ch=0;
mencoba
{
//Deklarasikan objek input file
FileInputStream fis = FileInputStream baru(nama);
//Lintasi objek input dan simpan memori di str
while ((ch=fis.read())!=-1)
{
str=str+(arang)ch;
}
//Tutup objek file
fis.close();
}
menangkap (IOException e)
{
//Terjadi kesalahan dan mencetak pesan kesalahan
Sistem.keluar.println(e.toString());
}
//kembalikan str
kembalikan str;
}
}
kelas MyMainFrame memperluas JFrame mengimplementasikan ActionListener
{
//nama file
String nama file=null;
//Temukan string
String temukantxt=null;
//ganti string
String gantitxt=null;
//Temukan posisi awal
int temukantxt=-1;
//Temukan bagian akhir
int temukantxtoff=-1;
//panel tengah
Wadah c=getContentPane();
//menu
JMenuBar mainMb=JMenuBar baru();
//tombol menu
JMenu fileMenu=JMenu baru("File");
JMenu editMenu=JMenu baru("Edit");
JMenu typeMenu=JMenu baru("format");
JMenuItem newItem=JMenuItem baru("Baru");
JMenuItem openItem=JMenuItem baru("terbuka");
JMenuItem saveItem=JMenuItem baru("Simpan");
JMenuItem saveasItem=JMenuItem baru("Simpan sebagai");
JMenuItem exitItem=JMenuItem baru("Keluar");
JMenuItem findItem=JMenuItem baru("Temukan");
JMenuItem findnextItem=JMenuItem baru("Temukan berikutnya");
JMenuItem changeItem=JMenuItem baru("ganti");
JCheckBoxMenuItem changelineItem=new JCheckBoxMenuItem("Pembungkusan baris otomatis",false);
//Bidang teks
JTextArea txt=JTextArea baru();
JTextArea txt2=JTextArea baru();
//Bilah gulir
JScrollPane jsp;
//Objek operasi file
EditFile ef=EditFile baru();
//Konstruktor
Bingkai Utama Saya()
{
//Gambar antarmuka
c.setLayout(BorderLayout baru());
jsp= JScrollPane baru(txt);
jsp.setHorizontalScrollBarPolicy(jsp.HORIZONTAL_SCROLLBAR_AS_NEEDED);
c.add(jsp,BorderLayout.CENTER);
mainMb.add(fileMenu);
fileMenu.tambahkan(Item baru);
fileMenu.tambahkan(openItem);
fileMenu.tambahkan(saveItem);
fileMenu.add(saveasItem);
fileMenu.addSeparator();
fileMenu.tambahkan(exitItem);
mainMb.add(editMenu);
editMenu.tambahkan(findItem);
editMenu.tambahkan(findnextItem);
editMenu.tambahkan(ubahItem);
mainMb.add(typeMenu);
typeMenu.tambahkan(changelineItem);
setJMenuBar(mainMb);
//Tambahkan acara mendengarkan menu
newItem.addActionListener(ini);
openItem.addActionListener(ini);
saveItem.addActionListener(ini);
saveasItem.addActionListener(ini);
exitItem.addActionListener(ini);
findItem.addActionListener(ini);
findnextItem.addActionListener(ini);
changeItem.addActionListener(ini);
changelineItem.addActionListener(ini);
}
//fungsi pengendali peristiwa
tindakan kekosongan publikDilakukan(ActionEvent e)
{
//Buat objek operasi file
EditFile ef=EditFile baru();
//Jika tombol diklik berarti baru
if(e.getActionCommand()=="Baru")
{
//Setel kolom teks ke kosong
txt.setText(null);
//Nama file kosong
nama file=null;
}
//Jika tombol diklik untuk membuka
if(e.getActionCommand()=="buka")
{
//Definisikan bentuk file
FileDialog openDialog=FileDialog baru(ini,"Buka file...",FileDialog.LOAD);
//menampilkan formulir
openDialog.tampilkan();
//Jika file yang dikembalikan tidak kosong
if(openDialog.getFile()!=null)
{
//Dapatkan nama file
nama file=openDialog.getFile();
//Dapatkan konten file
txt.setText(ef.OpenFile(openDialog.getFile()));
}
}
//Jika tombol diklik untuk menyimpan
if(e.getActionCommand()=="Simpan")
{
//Jika tidak ada nama file
jika(nama file==null)
{
//Definisikan bentuk file
FileDialog saveDialog=fileDialog baru(ini,"Simpan sebagai...",FileDialog.SAVE);
//menampilkan formulir
saveDialog.show();
//Jika file yang dikembalikan tidak kosong
jika(saveDialog.getFile()!=null)
{
//Dapatkan nama file
nama file=saveDialog.getFile();
//simpan berkas
ef.SaveFile(nama file,txt.getText());
}
}
kalau tidak
{
//Simpan file secara langsung
ef.SaveFile(nama file,txt.getText());
}
}
//Jika Anda mengklik tombol untuk menyimpan sebagai
if(e.getActionCommand()=="Simpan sebagai")
{
//Definisikan bentuk file
FileDialog saveDialog=fileDialog baru(ini,"Simpan sebagai...",FileDialog.SAVE);
//menampilkan formulir
saveDialog.show();
//Jika file yang dikembalikan tidak kosong
jika(saveDialog.getFile()!=null)
{
//Dapatkan nama file
nama file=saveDialog.getFile();
//simpan berkas
ef.SaveFile(nama file,txt.getText());
}
}
//Jika tombol diklik untuk keluar
if(e.getActionCommand()=="Keluar")
{
//berhenti
Sistem.keluar(0);
}
//Jika tombol diklik, itu adalah pencarian
if(e.getActionCommand()=="Temukan")
{
//Tentukan kotak dialog
JOptionPane inputdia=JoptionPane baru();
//Tentukan kotak dialog untuk mendapatkan teks pencarian
findtxt=inputdia.showInputDialog("Silakan masukkan teks yang ingin Anda cari",null);
//Tentukan koordinat sebenarnya
temukantxton=-1;
temukantxtoff=-1;
//Panggil fungsi pencarian
menemukan();
}
//Jika Anda mengklik tombol untuk menemukan yang berikutnya
if(e.getActionCommand()=="Temukan berikutnya")
{
//Panggil fungsi pencarian
menemukan();
}
//Jika tombol diklik, ganti
if(e.getActionCommand()=="ganti")
{
//Tentukan kotak dialog
JOptionPane inputdia=JoptionPane baru();
// Dapatkan temukan dan ganti teks
findtxt=inputdia.showInputDialog("Silakan masukkan teks yang akan diganti",null);
replacetxt=inputdia.showInputDialog("Masukkan teks yang diganti",null);
//Cadangan konten
txt2.setText(gantitxt);
txt2.pilihSemua();
txt2.copy();
//Panggil fungsi pencarian
menemukan();
//jika tidak ditemukan
jika(findtxton==-1&&findtxtoff==-1)
{
}
//Jika ditemukan
kalau tidak
{
//mengganti
txt.paste();
}
temukantxton=-1;
temukantxtoff=-1;
}
//Jika tombol diklik maka otomatis akan terbungkus
if(e.getActionCommand()=="Pembungkusan baris otomatis")
{
//Menilai status saat ini
if(changelineItem.isSelected()==true)
{
//Mengatur status bilah gulir
jsp.setHorizontalScrollBarPolicy(jsp.HORIZONTAL_SCROLLBAR_NEVER);
//Atur apakah akan membungkus atau tidak
txt.setLineWrap(benar);
}
kalau tidak
{
jsp.setHorizontalScrollBarPolicy(jsp.HORIZONTAL_SCROLLBAR_AS_NEEDED);
txt.setLineWrap(salah);
}
}
}
//temukan fungsi
pencarian kekosongan publik()
{
//Tentukan string sementara
string tempstr;
//Temukan teks jika tidak kosong
jika(findtxt!=null)
{
mencoba
{
//Mencari
tempstr=txt.getText(findtxton+1,(txt.getText().length()-findtxton-1));
findtxton=findtxton+1+tempstr.indexOf(findtxt);
}
menangkap (Pengecualian e)
{
}
//Jika bit awal berubah, maka ditemukan
jika(temukantxt!=-1)
{
//Setel bit akhir
findtxtoff=findtxton+findtxt.panjang();
}
kalau tidak
{
//Jika tidak maka akan ditampilkan tidak ditemukan
temukantxtoff=-1;
JOptionPane.showMessageDialog(null,"Tidak ditemukan");
}
//Pilih bagian yang ditemukan
txt.pilih(findtxton,findtxtoff);
}
}
}
TextEdit kelas publik
{
//Fungsi utama
public static void main(String args[])
{
//Deklarasi untuk mengatur form utama
MyMainFrame f=baru MyMainFrame();
f.setUkuran(640,480);
f.setTitle("Editor Teks");
//Menampilkan formulir utama
f.setVisible(benar)
;
}
/*
Masalah dengan pembungkusan baris otomatis JTextArea
--------------------------------------------------- ----------------------------------
Jika bilah gulir horizontal diatur ke JSctollpane.
, maka JTextArea yang ditambahkan objek JSctollpane ini akan memiliki fungsi pembungkus garis bukan?
--------------------------------------------------- --------------------------
JTextArea.setLineWrap(bungkus boolean)
------------- ---- ---------------------------------------------- ---- --------------
JTextArea.setLineWrap(boolean wrap)//Pembungkus garis umum.
JTextArea.setWrapStyleWorld(dunia boolean)//Pisahkan garis menggunakan tepi kata sebagai pembatas
*/