简单图形界面程序

import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.FileDialog;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;


import javax.swing.JCheckBoxMenuItem;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;




class EditFile
{
EditFile(){}
//保存文件
void SaveFile(String name,String str){
try
{
//声明文件输出对象
FileOutputStream fos=new FileOutputStream(name);
//输出保存文件
fos.write(str.getBytes());
}
catch(IOException e)
{
System.out.println(e.toString());
}
}
//打开文件
String OpenFlie(String name)
{
//定义字符串str来保存文件内容
String str=null;
//定义计数器
int ch=0;
try
{
//声明文件输入对象
FileInputStream fis=new FileInputStream(name);
//遍历输入对象,将内存存到str中
while((ch=fis.read())!=-1)
{
str=str+(char)ch;
}
//关闭文件
fis.close();
}
catch(IOException e)
{
System.out.println(e.toString());
}
return str;
}
}
class MyMainFrame extends JFrame implements ActionListener
{
String filename=null;
String findtxt=null;
String replacetxt=null;
int findtxton=-1;
int findtxtoff=-1;

//中间面板
Container c=getContentPane();
//菜单
JMenuBar mainMb=new JMenuBar();
JMenu fileMenu=new JMenu("文件");
JMenu editMenu=new JMenu("编辑");
JMenu typeMenu=new JMenu("格式");
JMenuItem newItem=new JMenuItem("新建");
JMenuItem openItem=new JMenuItem("打开");
JMenuItem saveItem=new JMenuItem("保存");
JMenuItem saveasItem=new JMenuItem("另存为");
JMenuItem exitItem=new JMenuItem("退出");
JMenuItem findItem=new JMenuItem("查找");
JMenuItem findnextItem=new JMenuItem("查找下一个");
JMenuItem changeItem=new JMenuItem("替换");
JCheckBoxMenuItem changelineItem=new JCheckBoxMenuItem("自动换行",false);
//文本域
JTextArea txt=new JTextArea();
JTextArea txt2=new JTextArea();
//滚动条
JScrollPane jsp;
//文件操作对象
EditFile ef=new EditFile();
//构造函数
MyMainFrame(){
//绘制界面
c.setLayout(new BorderLayout());
jsp=new JScrollPane(txt);
jsp.setHorizontalScrollBarPolicy(jsp.HORIZONTAL_SCROLLBAR_AS_NEEDED);
c.add(jsp,BorderLayout.CENTER);
mainMb.add(fileMenu);
fileMenu.add(newItem);
fileMenu.add(openItem);
fileMenu.add(saveItem);
fileMenu.add(saveasItem);
fileMenu.addSeparator();///?????
fileMenu.add(exitItem);
mainMb.add(editMenu);
editMenu.add(findItem);
editMenu.add(findnextItem);
editMenu.add(changeItem);
mainMb.add(typeMenu);
typeMenu.add(changelineItem);
setJMenuBar(mainMb);
//为菜单添加事件监听
newItem.addActionListener(this);
openItem.addActionListener(this);
saveItem.addActionListener(this);
saveasItem.addActionListener(this);
exitItem.addActionListener(this);
findItem.addActionListener(this);
changeItem.addActionListener(this);
changelineItem.addActionListener(this);
}
//事件处理
public void actionPerformed(ActionEvent e) {
//建立文件操作对象
EditFile ef=new EditFile();
//若点击新建按钮
if(e.getActionCommand()=="新建")
{
//将文本域置空
txt.setText(null);
//文本名为空
filename=null;
}
//点击打开
if(e.getActionCommand()=="打开"){
//定义一个文件窗体
FileDialog openDialog=new FileDialog(this,"打开文件....",FileDialog.LOAD);
//显示窗体
openDialog.show();
//若返回文件不为空
if(openDialog.getFile()!=null){
//获取文件名
filename=openDialog.getFile();
//获取文件内容
txt.setText(ef.OpenFlie(openDialog.getFile()));
}
}
//若点击保存
if(e.getActionCommand()=="保存")
{
//若没有文件名
if(filename==null){
//定义一个文件窗体
FileDialog saveDialog=new FileDialog(this,"另存为....",FileDialog.SAVE);
//显示窗体
saveDialog.show();
//若返回文件不为空
if(saveDialog.getFile()!=null){
//获得文件名
filename=saveDialog.getFile();
//保存文件
ef.SaveFile(filename, txt.getText());
}
}
else{
//直接保存文件
ef.SaveFile(filename, txt.getText());
}
}
//点击另存为
if(e.getActionCommand()=="另存为"){
//定义一个文件窗体
FileDialog saveDialog=new FileDialog(this,"另存为.....",FileDialog.SAVE);
//显示窗体
saveDialog.show();
//若返回不为空
if(saveDialog.getFile()!=null){
//获得文件名
filename=saveDialog.getFile();
//保存文件
ef.SaveFile(filename, txt.getText());
}
}
//若点击退出
if(e.getActionCommand()=="退出"){
System.exit(0);
}
//若点击查找
if(e.getActionCommand()=="查找"){
//定义对话框
JOptionPane inputdia=new JOptionPane();
//定义对话框获得查找文本
findtxt=inputdia.showInputDialog("请输入要查找的文本",null);
//定义起始坐标
findtxton=-1;
findtxtoff=-1;
//调用查找函数
find();
}
//按查找下一个
if(e.getActionCommand()=="查找下一个"){
//调用查找函数
find();
}
//按替换
if(e.getActionCommand()=="替换"){
//定义对话框
JOptionPane inputdia=new JOptionPane();
//获得查找文本和替换文字
findtxt=inputdia.showInputDialog("输入要被替换的文字",null);
replacetxt=inputdia.showInputDialog("输入替换后的文本",null);
//备份内容
txt2.setText(replacetxt);
txt2.selectAll();
txt2.copy();
//调用查找函数
find();
//若没找到
if(findtxton==-1&&findtxtoff==-1){}
//若找到

else{
//替换
txt.paste();
}
findtxton=-1;
findtxtoff=-1;
}
//点击自动换行
if(e.getActionCommand()=="自动换行"){
//判断当前状态
if(changelineItem.isSelected()==true){
//设置滚动条状态
jsp.setHorizontalScrollBarPolicy(jsp.HORIZONTAL_SCROLLBAR_NEVER);
//设置是否换行
txt.setLineWrap(true);
}
else{
jsp.setHorizontalScrollBarPolicy(jsp.HORIZONTAL_SCROLLBAR_AS_NEEDED);
txt.setLineWrap(false);
}
}
}
//查找函数
public void find(){
//定义临时字符串
String tempstr;
//查找文本不为空的话
if(findtxt!=null){
try{
//进行查找
tempstr=txt.getText(findtxton+1,(txt.getText().length()-findtxton-1));
findtxton=findtxton+1+tempstr.indexOf(findtxt);
}
catch(Exception e){

}
//若开始位有变化,及找到
if(findtxton!=-1){
//设置结束位
findtxtoff=findtxton+findtxt.length();
}
else{
//否则显示没有找到
findtxtoff=-1;
JOptionPane.showMessageDialog(null,"没有找到");
}
//将找到部分进行选择
txt.select(findtxton, findtxtoff);
}
}
}
public class TextEdit {
public static void main(String args[]){
MyMainFrame f=new MyMainFrame();
f.setSize(640,480);
f.setTitle("文本编辑器");
f.setVisible(true);
}

}



参考:http://zhidao.baidu.com/link?url=eZxuBy77oLZiaDOQ7jsjO2AP7bPQkbIY6chSt3LHEhvJFK6BybE7a0UUqiZ-c3PYGk8TjMvSZt7e3a4uV9yU6q&from=commentSubmit#answers33369512

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值