| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1251 人关注过本帖
标题:文本编辑器,不会弄,这个怎么回事?
只看楼主 加入收藏
jefyu
Rank: 1
等 级:新手上路
威 望:1
帖 子:30
专家分:0
注 册:2006-7-26
收藏
 问题点数:0 回复次数:17 
文本编辑器,不会弄,这个怎么回事?

再看了论坛里一个兄弟的程序后,自己试着弄了几段下来,自己也弄了弄,啥都不懂

import javax.swing.*;
import java.io.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import java.io.RandomAccessFile;

public class TextEdit {
public static void main(String args[]){
new Windows();//调用Windows构造函数
}

}
class Windows extends JFrame{

JTextArea textarea= new JTextArea();
MenuBar myBar= new MenuBar(textarea);
public Windows(){
super("");

setLayout(new BorderLayout());
add("Center", textarea);
add(myBar);

setSize(500,500);
setVisible(true);
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent we) {
System.exit(0);
}
});

}

//set up GUIs
class MenuBar extends JMenuBar{

JMenu fileMenu,editMenu,formatMenu,aboutMenu;
JMenuItem newitem,openitem,saveitem,exititem;
JMenuItem cutitem,copyitem,pasteitem,selectallitem;
JMenuItem bgitem,fontitem;
JTextArea textarea;
String placeHolder=" ";
Vector recentCuts=new Vector();
Handler handler= new Handler();


public MenuBar(JTextArea textarea){
this.textarea=textarea;

//set up file menu and its menu items
JMenu fileMenu= new JMenu("文件");
fileMenu.setMnemonic('F');
//set menu items
JMenuItem newitem= new JMenuItem("新建");
newitem.setMnemonic('N');
newitem.addActionListener(handler);
fileMenu.add(newitem);

JMenuItem openitem= new JMenuItem("打开..");
openitem.setMnemonic('O');
openitem.addActionListener(handler);
fileMenu.add(openitem);

JMenuItem saveitem= new JMenuItem("保存..");
saveitem.setMnemonic('S');
saveitem.addActionListener(handler);
fileMenu.add(saveitem);

JMenuItem exititem= new JMenuItem("退出");
exititem.setMnemonic('X');
exititem.addActionListener(handler);
fileMenu.add(exititem);

//set up exit Menu and its Menu items
JMenu editMenu= new JMenu("编辑");
editMenu.setMnemonic('E');


JMenuItem cutitem= new JMenuItem("剪切");
cutitem.setMnemonic('X');
cutitem.addActionListener(handler);
editMenu.add(cutitem);

JMenuItem copyitem= new JMenuItem("复制");
copyitem.setMnemonic('C');
copyitem.addActionListener(handler);
editMenu.add(copyitem);

JMenuItem pasteitem= new JMenuItem("粘贴");
pasteitem.setMnemonic('V');
pasteitem.addActionListener(handler);
editMenu.add(pasteitem);

JMenuItem selectallitem= new JMenuItem("全选");
selectallitem.setMnemonic('A');
selectallitem.addActionListener(handler);
editMenu.add(selectallitem);

//set up format menu and its items
JMenu formatMenu= new JMenu("格式");
formatMenu.setMnemonic('O');


JMenuItem bgitem= new JMenuItem("背景色");
bgitem.setMnemonic('B');
bgitem.addActionListener(handler);
formatMenu.add(bgitem);

JMenuItem fontitem= new JMenuItem("字体");
fontitem.setMnemonic('F');
fontitem.addActionListener(handler);
formatMenu.add(fontitem);
//set up about menu and its items
JMenu aboutMenu= new JMenu("关于");
aboutMenu.setMnemonic('A');
aboutMenu.addActionListener(handler);

JMenuBar bar= new JMenuBar();
setJMenuBar(bar);
bar.add(fileMenu);
bar.add(editMenu);
bar.add(formatMenu);
bar.add(aboutMenu);





}
class Handler implements ActionListener{
public void actionPerformed(ActionEvent e){
if(!(e.getSource() instanceof MenuItem))
return;
JMenuItem m=(JMenuItem)e.getSource();
if(m==exititem)
{
System.exit(0);
}
else if(m==cutitem)
{
placeHolder=textarea.getSelectedText();
textarea.replaceRange("",
textarea.getSelectionStart(),
textarea.getSelectionEnd());
addRecentCut(placeHolder);
}
else if (m==copyitem)
{
placeHolder=textarea.getSelectedText();
}
else if (m==pasteitem)
{
textarea.insert(placeHolder,textarea.getCaretPosition());
}
else if (m==selectallitem)
{
textarea.selectAll();
}
else if (m==openitem)
{
Frame f=new Frame("FileDialog");
FileDialog d;
d=new FileDialog(f,"FileDialog");
d.setVisible(true);
String filename=d.getFile();
File openf=new File(filename);
String s="";
try
{
RandomAccessFile fr=new RandomAccessFile(d.getDirectory()+filename,"r");
byte[] buffer = new byte[4096];
int len;
while((len=fr.read(buffer))!=-1)
{
s = new String(buffer, 0, len);
textarea.append(s+"\n");
}
fr.close();
}catch(Exception er){}

}
else if(m==saveitem)
{
Frame f=new Frame("FileDialog");
FileDialog d;
d=new FileDialog(f,"FileDialog");
d.setVisible(true);
String filename=d.getFile();
// File openf=new File(filename);
try
{
RandomAccessFile fw=new RandomAccessFile(d.getDirectory()+filename,"rw");
String s=textarea.getText();
fw.writeChars(s);
fw.close();
}catch(Exception er){}
}

}
private void addRecentCut(String cut)
{
recentCuts.insertElementAt(cut,0);


}


}



}



}

[此贴子已经被作者于2006-12-31 1:13:26编辑过]

搜索更多相关主题的帖子: 文本编辑 
2006-12-30 23:57
qsrock
Rank: 1
等 级:新手上路
帖 子:255
专家分:0
注 册:2005-12-29
收藏
得分:0 
初学就不要做这些,学好基础在来做!
2006-12-31 00:43
purana
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:广东-广州
等 级:版主
威 望:66
帖 子:6039
专家分:0
注 册:2005-6-17
收藏
得分:0 
哪不会弄?..

我的msn: myfend@
2006-12-31 09:19
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 

希望初学者能从基础学起,不要好高骛远


可惜不是你,陪我到最后
2006-12-31 09:29
purana
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:广东-广州
等 级:版主
威 望:66
帖 子:6039
专家分:0
注 册:2005-6-17
收藏
得分:0 
收到.

我的msn: myfend@
2006-12-31 09:31
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 
没有说你,你不能算是初学者,你的水平已经不错了

可惜不是你,陪我到最后
2006-12-31 09:33
purana
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:广东-广州
等 级:版主
威 望:66
帖 子:6039
专家分:0
注 册:2005-6-17
收藏
得分:0 
...我是初学者..不过..我在努力中..

我的msn: myfend@
2006-12-31 09:36
yushui
Rank: 3Rank: 3
等 级:论坛游民
威 望:7
帖 子:1355
专家分:22
注 册:2006-7-19
收藏
得分:0 
这是我们老师布置的作业 我还没看书呢 都不知道怎么弄 现在还

fighting!from now on!
2006-12-31 12:24
阴阳妖瞳
Rank: 1
等 级:新手上路
帖 子:210
专家分:0
注 册:2006-12-5
收藏
得分:0 
雨水MM加油

一身转战三千里,一剑曾挡百万师
2006-12-31 12:31
purana
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:广东-广州
等 级:版主
威 望:66
帖 子:6039
专家分:0
注 册:2005-6-17
收藏
得分:0 

你跟他同一学校?..


我的msn: myfend@
2006-12-31 12:33
快速回复:文本编辑器,不会弄,这个怎么回事?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018790 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved