java文本編輯器
1. 麻煩高手推薦幾款比較適合初學者編寫java程序的文本編輯器
notepad++ //一個支持多種語言的文本編輯器,帶有代碼提示、語法高亮功能!
editplus //支持Java語言。有語法高亮功能。沒有代碼提示!
ultraedit //同editplus
2. 求JAVA編寫的文本編輯器。
import java.awt.*;
import java.awt.event.*;
import java.io.*;
public class Notepad /*implements ActionListener , MouseListener , MouseMotionListener , WindowListener , ItemListener , KeyListener, TextListener */
{
//成員變數
private Frame mainFrame;//主框架
private MenuBar mb ; //菜單條
private Menu mFile , mEdit , mFormat , mHelp ; //菜單:文件,編輯,格式,幫助
private MenuItem miNew , miOpen , miSave , miSaveAs , miExit ;//文件菜單項:新建,打開,保存,另存為,退出
private MenuItem miCut , miCopy , miPaste , miDelete ;//編輯菜單項:剪切,復制,粘貼,刪除
private MenuItem miFont , miLowtoCapital, miCapitaltoLow ,miEncrypt , miDisencrypt;//格式菜單項:字體
private MenuItem miAboutNotepad;//幫助菜單項:關於記事本
private TextArea ta;//文本區
private String tempString;//臨時字元串,用於存儲需要復制粘貼的字元串
private boolean textValueChanged = false;
private int id_font ;//字體
String fileName = "";//上次保存後的文件名和地址
//構造函數
public Notepad(){
//框架
mainFrame = new Frame ("Notepad v0.99 by Launching");
mb = new MenuBar ();
ta = new TextArea (30 ,60);
ta.setFont( new Font ( "Times New Rome" , Font.PLAIN , 15));
ta.setBackground(new Color(0 , 250 , 200));
//菜單條
mFile = new Menu ( "File");
mEdit = new Menu ( "Edit");
mFormat = new Menu ("Format");
mHelp = new Menu ("Help");
//"文件"
miNew = new MenuItem ("New");
miOpen = new MenuItem ("Open");
miSave = new MenuItem ("Save");
miSaveAs = new MenuItem ("Save as");
miExit = new MenuItem ("Exit");
//"編輯"
miCut = new MenuItem ("Cut");
miCopy = new MenuItem ("Copy");
miPaste = new MenuItem ("Paste");
miDelete = new MenuItem ("Delete");
//"格式"
miFont = new MenuItem ("Font");
miLowtoCapital = new MenuItem("Low to Capital");
miCapitaltoLow = new MenuItem("Capital to Low");
miEncrypt = new MenuItem("Encrypt");
miDisencrypt = new MenuItem("Disencrypt");
//"幫助"
miAboutNotepad = new MenuItem ("About Notepad");
//添加文件菜單項
mFile.add(miNew);
mFile.add(miOpen);
mFile.add(miSave);
mFile.add(miSaveAs);
mFile.add(miExit);
//添加編輯菜單項
mEdit.add(miCut);
mEdit.add(miCopy);
mEdit.add(miPaste);
mEdit.add(miDelete);
//添加格式菜單項
mFormat.add(miFont);
mFormat.add(miLowtoCapital);
mFormat.add(miCapitaltoLow);
mFormat.add(miEncrypt);
mFormat.add(miDisencrypt);
//添加幫助菜單項
mHelp.add(miAboutNotepad);
//菜單條添加菜單
mb.add(mFile);
mb.add(mEdit);
mb.add(mFormat);
mb.add(mHelp);
//框架添加菜單條
mainFrame.setMenuBar( mb );
//初始字元串賦為空
tempString = "";
//添加文本區
mainFrame.add(ta, BorderLayout.CENTER);
mainFrame.setSize(800 , 500);
mainFrame.setLocation( 100 ,100);// 起始位置
mainFrame.setResizable(true);//不可更改大小
mainFrame.setVisible(true);
//mainFrame.pack();
//////////////////////////////////////////////////////////////////////////////////
////////////////////////////////增加監視器////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////
//主框架
mainFrame.addWindowListener(new WindowAdapter (){ //關閉窗口
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
//文本區
ta.addKeyListener( new KeyAdapter(){
public void KeyTyped(KeyEvent e){
textValueChanged = true ; //鍵盤按鍵按下即導致文本修改
}
});
////////////////"文件"菜單://////////////////////
//新建
miNew.addActionListener( new ActionListener(){
public void actionPerformed(ActionEvent e){
ta.replaceRange("", 0 , ta.getText().length()) ;//清空文本區的內容
fileName = "";//文件名清空
}
});
//打開
miOpen.addActionListener( new ActionListener(){
public void actionPerformed(ActionEvent e) {
FileDialog d=new FileDialog(mainFrame , "open file" , FileDialog.LOAD );//打開文件對話框
d.addWindowListener( new WindowAdapter(){ //關閉文件對話框窗口
public void windowClosing(WindowEvent ee){
System.exit(0);
}
});
d.setVisible(true);
File f = new File( d.getDirectory()+d.getFile() ); //建立新文件
fileName = d.getDirectory()+d.getFile();//得到文件名
char ch[] = new char [(int)f.length()];///用此文件的長度建立一個字元數組
try//異常處理
{
//讀出數據,並存入字元數組ch中
BufferedReader bw = new BufferedReader( new FileReader(f) );
bw.read(ch);
bw.close();
}
catch( FileNotFoundException fe ){
System.out.println("file not found");
System.exit(0);
}
catch( IOException ie){
System.out.println("IO error");
System.exit(0);
}
String s =new String (ch);
ta.setText(s);//設置文本區為所打開文件的內容
}
});
//保存
miSave.addActionListener( new ActionListener(){
public void actionPerformed(ActionEvent e) {
if( fileName.equals("") ){ //如果文件沒有被保存過,即文件名為空
FileDialog d=new FileDialog(mainFrame , "save file" , FileDialog.SAVE );//保存文件對話框
d.addWindowListener( new WindowAdapter(){ //關閉文件對話框窗口
public void windowClosing(WindowEvent ee){
System.exit(0);
}
});
d.setVisible(true);
String s = ta.getText();//得到所輸入的文本內容
try//異常處理
{
File f = new File( d.getDirectory()+d.getFile());//新建文件
fileName = d.getDirectory()+d.getFile();//得到文件名
BufferedWriter bw = new BufferedWriter( new FileWriter (f));//輸入到文件中
bw.write(s , 0 , s.length());
bw.close();
}
catch(FileNotFoundException fe_){
System.out.println("file not found");
System.exit(0);
}
catch( IOException ie_)
{
System.out.println(" IO error");
System.exit(0);
}
}
else //如果文件已經保存過
{
String s = ta.getText();//得到所輸入的文本內容
try//異常處理
{
File f = new File( fileName );//新建文件
BufferedWriter bw = new BufferedWriter( new FileWriter (f));//輸入到文件中
bw.write(s , 0 , s.length());
bw.close();
}
catch(FileNotFoundException fe_){
System.out.println("file not found");
System.exit(0);
}
catch( IOException ie_)
{
System.out.println(" IO error");
System.exit(0);
}
}
}
});
//另存為
miSaveAs.addActionListener( new ActionListener(){
public void actionPerformed(ActionEvent e) {
FileDialog d=new FileDialog(mainFrame , "save file" , FileDialog.SAVE );//保存文件對話框
d.addWindowListener( new WindowAdapter(){ //關閉文件對話框窗口
public void windowClosing(WindowEvent ee){
System.exit(0);
}
});
d.setVisible(true);
String s = ta.getText();//得到所輸入的文本內容
try//異常處理
{
File f = new File( d.getDirectory()+d.getFile());//新建文件
BufferedWriter bw = new BufferedWriter( new FileWriter (f));//輸入到文件中
bw.write(s , 0 , s.length());
bw.close();
}
catch(FileNotFoundException fe_){
System.out.println("file not found");
System.exit(0);
}
catch( IOException ie_)
{
System.out.println(" IO error");
System.exit(0);
}
}
});
//退出
miExit.addActionListener( new ActionListener(){ ///退出程序
public void actionPerformed(ActionEvent e){
System.exit(0);
}
});
////////////////"編輯"菜單:////////////////////
//剪切
miCut.addActionListener( new ActionListener(){
public void actionPerformed(ActionEvent e){
tempString = ta.getSelectedText(); ///得到要復制的內容,暫存在tempString中
StringBuffer tmp = new StringBuffer ( ta.getText());//臨時存儲文本
int start = ta.getSelectionStart(); //得到要刪除的字元串的起始位置
int len = ta.getSelectedText().length(); //得到要刪除的字元串的長度
tmp.delete( start , start+len); ///刪除所選中的字元串
ta.setText(tmp.toString());//用新文本設置原文本
}
});
//復制
miCopy.addActionListener( new ActionListener(){
public void actionPerformed(ActionEvent e){
tempString = ta.getSelectedText(); ///得到要復制的內容,暫存在tempString中
}
});
//粘貼
miPaste.addActionListener( new ActionListener(){
public void actionPerformed(ActionEvent e){
StringBuffer tmp = new StringBuffer ( ta.getText());//臨時存儲文本
int start = ta.getSelectionStart(); //得到要粘貼的位置
tmp.insert(start , tempString);//查入要粘貼的內容
ta.setText(tmp.toString());//用新文本設置原文本
}
});
//刪除
miDelete.addActionListener( new ActionListener(){
public void actionPerformed(ActionEvent e){
StringBuffer tmp = new StringBuffer ( ta.getText());//臨時存儲文本
int start = ta.getSelectionStart(); //得到要刪除的字元串的起始位置
int len = ta.getSelectedText().length(); //得到要刪除的字元串的長度
tmp.delete( start , start+len); ///刪除所選中的字元串
ta.setText(tmp.toString());//用新文本設置原文本
}
});
////////////////"格式"菜單:////////////////////
//字體
miFont.addActionListener( new ActionListener(){
public void actionPerformed(ActionEvent e){
final Dialog d = new Dialog ( mainFrame , "Font");//新建對話框
d.setLocation( 250 ,250);// 起始位置
d.setLayout( new BorderLayout());//表格布局
//////////////////////////上部分面板
Label l_font = new Label ("font");//font標簽
Panel p_1 = new Panel();
p_1.add(l_font);
p_1.setVisible(true);
//////////////////////////中部分面板
List font_list = new List (6 , false);//字體列表
//添加字體項目
font_list.add("Plain");///普通字體
font_list.add("Bold"); ///粗體
font_list.add("Italic");//斜體
font_list.addItemListener( new MyItemListener_font() ); //字體增加監視器
Panel p_2 = new Panel();
p_2.add(font_list);
p_2.setVisible(true);
//////////////////////////下部分面板
Button ok = new Button ("OK");
ok.addActionListener( new ActionListener(){
public void actionPerformed(ActionEvent e){
d.dispose();
}
});
ok.setSize( new Dimension (20 , 5) );
Panel p_3 = new Panel();//下部分面板
p_3.add(ok);
p_3.setVisible(true);
//添加三個面板
d.add(p_1 , BorderLayout.NORTH);
d.add(p_2 , BorderLayout.CENTER);
d.add(p_3 , BorderLayout.SOUTH);
d.pack();
d.addWindowListener( new WindowAdapter(){ //關閉對話框窗口
public void windowClosing(WindowEvent ee){
d.dispose();
}
});
d.setVisible(true);
}
});
//小寫字母轉大寫
miLowtoCapital.addActionListener( new ActionListener(){
public void actionPerformed(ActionEvent e){
String s = ta.getText();//得到所輸入的文本內容
StringBuffer temp = new StringBuffer("");
for(int i = 0 ; i<s.length() ; i++){
if((int)s.charAt(i)>=97 && (int)s.charAt(i)<=122 ){
temp.append((char)((int)s.charAt(i)-32));
}
else
temp.append(s.charAt(i));
}
s = new String(temp);
ta.setText(s);
}
});
//大寫字母轉小寫
miCapitaltoLow.addActionListener( new ActionListener(){
public void actionPerformed(ActionEvent e){
String s = ta.getText();//得到所輸入的文本內容
StringBuffer temp = new StringBuffer("");
for(int i = 0 ; i<s.length() ; i++){
if((int)s.charAt(i)>=65 && (int)s.charAt(i)<=90 ){
temp.append((char)((int)s.charAt(i)+32));
}
else
temp.append(s.charAt(i));
}
s = new String(temp);
ta.setText(s);
}
});
//加密
miEncrypt.addActionListener( new ActionListener(){
public void actionPerformed(ActionEvent e){
String s = ta.getText();//得到所輸入的文本內容
StringBuffer temp = new StringBuffer("");
for(int i = 0 ; i<s.length() ; i++){
if(s.charAt(i)>=40 && s.charAt(i)<=125){
if(i%2==0){
temp.append((char)(s.charAt(i) + 1 ));
}
else
temp.append((char)(s.charAt(i) - 1 ));
}
else
temp.append(s.charAt(i));
}
s = new String(temp);
ta.setText(s);
}
});
//解密
miDisencrypt.addActionListener( new ActionListener(){
public void actionPerformed(ActionEvent e){
String s = ta.getText();//得到所輸入的文本內容
StringBuffer temp = new StringBuffer("");
for(int i = 0 ; i<s.length() ; i++){
if(s.charAt(i)>=40 && s.charAt(i)<=125){
if(i%2==0){
temp.append((char)(s.charAt(i) - 1 ));
}
else
temp.append((char)(s.charAt(i) + 1 ));
}
else
temp.append(s.charAt(i));
}
s = new String(temp);
ta.setText(s);
}
});
////////////////"幫助"菜單:////////////////////
//關於記事本
miAboutNotepad.addActionListener( new ActionListener(){
public void actionPerformed(ActionEvent e){
final Dialog d = new Dialog ( mainFrame , "AboutNotepad");//新建對話框
TextArea t = new TextArea("\nwelcome to use Notepad " + "\n\n" + "Copyright@Launching " + "\n\n" + "free software" + "\n\n" + "v0.99");//添加標簽
t.setSize( new Dimension ( 5 , 5));
t.setEditable(false);
d.setResizable(false);//不可調整大小
d.add(t);
d.pack();
d.addWindowListener( new WindowAdapter(){ //關閉對話框窗口
public void windowClosing(WindowEvent ee){
d.dispose();
}
});
d.setLocation( 100 ,250);// 起始位置
d.setVisible(true);
}
});
}
class MyItemListener_font implements ItemListener { //字體監聽器
public void itemStateChanged(ItemEvent e) {
id_font = ((java.awt.List)e.getSource()).getSelectedIndex();
switch( id_font){
case 0:{
ta.setFont(new Font("Times New Roman", Font.PLAIN ,ta.getFont().getSize()) );//普通文字
break;
}
case 1:{
ta.setFont(new Font("Times New Roman" , Font.BOLD ,ta.getFont().getSize()) );//粗體文字
break;
}
case 2:{
ta.setFont(new Font("Times New Roman" , Font.ITALIC ,ta.getFont().getSize()) );//斜體文字
break;
}
}
}
}
/////////////////////////////////////////主函數///////////////////////////////////////////////////
public static void main(String arg[]){
Notepad test = new Notepad(); ///創建記事本
}
//////////////////////////////////////////////////////////////////////////////////////////////////
}
3. 如何用java編寫一個簡單的文本編輯器
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
public class f1 extends Frame implements ActionListener
{
private MenuBar menubar=new MenuBar();
private Menu filemenu=new Menu("文件");
private Menu editmenu=new Menu("編輯");
private Menu formmenu=new Menu("格式");
private MenuItem[] itemf=new MenuItem[4];
private MenuItem[] iteme=new MenuItem[6];
private MenuItem[] items=new MenuItem[2];
private TextArea tf=new TextArea();
public int a=0,b=0,c=0,style=Font.PLAIN,size=15;
public String s1="red:"+a+" "+"green:"+b+" "+"blue"+c,
s2="宋體";
public String[] sz1={"10","16","24","30","32","36"},
sz2={"宋體","黑體","幼圓","隸書","行楷","Arial","Georgia"},
sz3={"粗體","傾斜","常規","粗斜"};
JDialog dialog=new JDialog(this,"字體",true);
Container cp=dialog.getContentPane();
JLabel[] lb=new JLabel[8];
JLabel lb1=new JLabel(s1,JLabel.LEFT);
JButton b1=new JButton("確定"),
b2=new JButton("取消");
JComboBox jc1=new JComboBox(),
jc2=new JComboBox(),
jc3=new JComboBox();
JScrollBar jb1=new JScrollBar(JScrollBar.HORIZONTAL,10,5,0,260);
JScrollBar jb2=new JScrollBar(JScrollBar.HORIZONTAL,10,5,0,260);
JScrollBar jb3=new JScrollBar(JScrollBar.HORIZONTAL,10,5,0,260);
4. java文本編輯器源代碼
import java.awt.*; import javax.swing.*; import java.awt.event.*; import javax.swing.event.*; import java.util.*; //Date needed import java.io.PrintWriter; public class NotePad extends JFrame { JTextArea jta; class newl implements ActionListener { public void actionPerformed(ActionEvent e) { jta.setText(""); } } class openl implements ActionListener { public void actionPerformed(ActionEvent e) { JFileChooser jf=new JFileChooser(); jf.showOpenDialog(NotePad.this); } } //保存文件的監聽 class savel implements ActionListener { public void actionPerformed(ActionEvent e) { JFileChooser jf = new JFileChooser(); 寫不了那麼多啊 http://..com/question/87179404.html詳細看這里把
5. JAVA 文本編輯器
不知道你的編輯器控制項是不是用的JTextArea,如果是的話,有getSelectionStart()和getSelectedEnd()來獲取起始地址和結束地址,至於字數,getSelectedText()得到字元串,就可以得到字數了吧。
運行這段代碼:
public class MyText2 extends JFrame {
private JTextArea editorArea;
private JLabel lb_StatusBar;
public MyText2() {
super();
Container container = getContentPane();
editorArea = new JTextArea();
editorArea.setLineWrap(true);
editorArea.addMouseMotionListener(new MouseMotionAdapter() {
public void mouseDragged(MouseEvent e) {
if(editorArea.getSelectedText() != null){
lb_StatusBar.setText(editorArea.getSelectionStart() + " " + editorArea.getSelectionEnd() + " Length:" + editorArea.getSelectedText().length()); //獲取起始位置和結束位置,獲取選取的字元串長度
}
}
});
JScrollPane scrollPane = new JScrollPane(editorArea);
container.add(scrollPane);
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e){
dispose();
}
});
setTitle("MyText");
setSize(600, 400);
setVisible(true);
final JPanel statusBar = new JPanel();
final FlowLayout flowLayout = new FlowLayout();
flowLayout.setAlignment(FlowLayout.LEFT);
statusBar.setLayout(flowLayout);
getContentPane().add(statusBar, BorderLayout.SOUTH);
lb_StatusBar = new JLabel();
lb_StatusBar.setText("");
statusBar.add(lb_StatusBar);
}
public static void main(String args[]) {
MyText2 app = new MyText2();
}
}
6. 用JAVA設計一個簡單文本編輯器
要求挺多
7. Java文本編輯器
留個郵箱,發給你。因為還有圖標圖片。
8. java文本編輯器
那要看你具體的代碼了 光這樣說不行的啊 我有思路
9. java 文本編輯器
這么說吧,其實java版的記事本就是一個JTextArea再加上一些菜單項,再加上查找對話框、替換對話框等。
除了在「打開」「保存」「新建」等操作時要判斷一下是否彈出「編輯文件已改變,是否保存」的對話框,別的沒多大難度吧。。。。
參考網址里是一個基本實現所有windows自帶記事本的程序,裡面分ReplaceDialog.java、Notepad.java、FontDialog.java、FindDialog.java四個文件,顧名思義,共要建四個類。
你要自己實現的話,可以一步一步地來,慢慢加入復雜的功能。
要的話留下郵箱。
10. JAVA的軟體文本編輯器
重新再word 中粘貼一下就行或者導入記事本也行