JAVA编写记事本怎样实现保存.剪切.复制.粘贴(这个程序只有Open)

importjava.awt.*;importjava.awt.event.*;importjava.io.*;publicclassTextViewerextendsF... import java.awt.*;
import java.awt.event.*;
import java.io.*;
public class TextViewer extends Frame implements ActionListener{
private Menu fileMenu = new Menu("File");
private MenuItem fileOpen = new MenuItem("Open");
private MenuItem fileExit = new MenuItem("Exit");
private TextArea text = new TextArea();
public TextViewer(){
super("Text Viewer");
fileMenu.add(fileOpen); fileOpen.addActionListener(this);
fileMenu.addSeparator();
fileMenu.add(fileExit); fileExit.addActionListener(this);
MenuBar menu = new MenuBar();
menu.add(fileMenu);
setMenuBar(menu);
setLayout(new BorderLayout());
add("Center", text);
text.setEditable(true);
setSize(400,400);
setVisible(true);
}
public void readFile(String file) {
text.setText("");
try{
BufferedReader in = new BufferedReader(new FileReader(file));
String line;
while ((line = in.readLine()) != null)
text.append(line + "\n");
in.close();
text.setCaretPosition(0);
} catch(IOException ioe) {
System.err.println(ioe);
}
}
public void actionPerformed(ActionEvent ae) {
if (ae.getSource() == fileExit)
System.exit(0);
else if (ae.getSource() == fileOpen) {
FileDialog fd =new FileDialog(this,
"Open File",FileDialog.LOAD);
fd.setVisible(true);
if (fd.getFile() != null) {
File file = new File(fd.getDirectory() + fd.getFile());
if (file.exists())
readFile(file.toString());
else
text.setText("File name: " + file + " invalid.");
}
fd.dispose();
}
}
public static void main(String args[]){
TextViewer editor = new TextViewer();
}
}
呵呵,大家指点下!!!
展开
 我来答
溜名甜01
2007-11-26 · 超过23用户采纳过TA的回答
知道答主
回答量:100
采纳率:0%
帮助的人:59.1万
展开全部
我的思路:
声明一个变量做剪切板C,另一个变量做历史记录B(想保留多次记录就声明个动态数组)
每种操作执行前把当前文本内容存入数组B
剪切是把值赋给C并删除原来的值;复制就是把值赋给C;
粘贴就是在指定位置追加C的值;
保存就是无操作(或者清空历史记录),没保存是还原到未保存操作前的历史记录处,标记一下就可以了。当然可以根据这个做出 回滚 功能。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
樱桃何晓云
2007-11-27 · TA获得超过151个赞
知道小有建树答主
回答量:222
采纳率:100%
帮助的人:188万
展开全部
代码有点多,看好不好都帖在上面。
我有个实现这样功能的,很不错的一个,实现保存.剪切.复制.粘贴,弹出式菜单......,什么都满足,也很漂亮,我可以发给你,可以参考下。
看我空间:
http://hi.baidu.com/%D3%A3%CC%D2%BA%CE%CF%FE%D4%C6/blog/item/9458012b9b35f2f9e6cd4012.html
希望对你有帮助。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
beyondtm
推荐于2016-06-29 · TA获得超过351个赞
知道答主
回答量:401
采纳率:0%
帮助的人:0
展开全部
public boolean saveDialog() //保存

{

FileDialog filedialog=new FileDialog(this,"SaveAs",FileDialog.SAVE);
filedialog.setFile(this.file.getName());
filedialog.setVisible(true);
if((filedialog.getDirectory()!=null)&&(filedialog.getFile()!=null))

{

this.file=new File(filedialog.getDirectory(),filedialog.getFile()+".txt");
return true;
}

else
return false;
}

if(e.getActionCommand()=="chazhao")//查找

{
try
{
final JDialog jd=new JDialog(this,"",true);
GridBagLayout gbl=new GridBagLayout();
GridBagConstraints gbc=new GridBagConstraints();
gbc.weightx=0.5;
gbc.weighty=0.5;
gbc.gridwidth=1;
gbc.gridheight=1;
jd.getContentPane().setLayout(gbl);
jd.setSize(380,100);
jd.setResizable(false);
final JTextField jtf=new JTextField(15);
JLabel jlFind=new JLabel("neinong:");
jd.getContentPane().add(jlFind);
JButton jbFind=new JButton("chazhao");
jbFind.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent efind)
{
String strA=textarea.getText();
String strB=jtf.getText();
if(a>=0)
{
a=strA.indexOf(strB,StartFindPos);
b=strB.length();
StartFindPos=a+b;
if(a==-1)
{
JOptionPane.showMessageDialog(null, "weichaozhaodao", "",1);
a=0;
StartFindPos=0;
}
textarea.select(a,StartFindPos);
}
}
}
);
JButton jbCancel=new JButton("cancel");
jbCancel.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent ejb)
{
jd.dispose();
}
}
);
jd.getContentPane().add(jtf);
jd.getContentPane().add(jbFind);
jd.getContentPane().add(jbCancel);
jd.setLocation(240,200);
jd.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
jd.setVisible(true);
}
catch(Exception efind)
{
}
}

if(e.getActionCommand()=="fuzhi")//复制
textarea.copy();

if(e.getActionCommand()=="qianqie")//剪切
textarea.cut();

if(e.getActionCommand()=="zhantie")//粘贴
textarea.paste();
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式