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();
}
}
呵呵,大家指点下!!! 展开
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();
}
}
呵呵,大家指点下!!! 展开
展开全部
我的思路:
声明一个变量做剪切板C,另一个变量做历史记录B(想保留多次记录就声明个动态数组)
每种操作执行前把当前文本内容存入数组B
剪切是把值赋给C并删除原来的值;复制就是把值赋给C;
粘贴就是在指定位置追加C的值;
保存就是无操作(或者清空历史记录),没保存是还原到未保存操作前的历史记录处,标记一下就可以了。当然可以根据这个做出 回滚 功能。
声明一个变量做剪切板C,另一个变量做历史记录B(想保留多次记录就声明个动态数组)
每种操作执行前把当前文本内容存入数组B
剪切是把值赋给C并删除原来的值;复制就是把值赋给C;
粘贴就是在指定位置追加C的值;
保存就是无操作(或者清空历史记录),没保存是还原到未保存操作前的历史记录处,标记一下就可以了。当然可以根据这个做出 回滚 功能。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
代码有点多,看好不好都帖在上面。
我有个实现这样功能的,很不错的一个,实现保存.剪切.复制.粘贴,弹出式菜单......,什么都满足,也很漂亮,我可以发给你,可以参考下。
看我空间:
http://hi.baidu.com/%D3%A3%CC%D2%BA%CE%CF%FE%D4%C6/blog/item/9458012b9b35f2f9e6cd4012.html
希望对你有帮助。
我有个实现这样功能的,很不错的一个,实现保存.剪切.复制.粘贴,弹出式菜单......,什么都满足,也很漂亮,我可以发给你,可以参考下。
看我空间:
http://hi.baidu.com/%D3%A3%CC%D2%BA%CE%CF%FE%D4%C6/blog/item/9458012b9b35f2f9e6cd4012.html
希望对你有帮助。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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();
{
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();
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |