请帮忙给这个java程序加个注释吧 越详细越好 谢谢了

http://hi.baidu.com/dongyueqian... http://hi.baidu.com/dongyueqian 展开
 我来答
dagewxw
2014-04-27 · TA获得超过5928个赞
知道大有可为答主
回答量:3523
采纳率:67%
帮助的人:943万
展开全部
mport java.awt.Color;

import java.awt.Container;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.io.*;

import javax.swing.*;

import javax.swing.filechooser.FileNameExtensionFilter;

public class Disp {

JFrame f; //它是屏幕上window的对象,能够最大化、最小化、关闭。(窗体)

JTextArea textArea;  //纯文本的多行区域(文本域)

JScrollPane scrollpane; //面板容器,可以加入到JFrame中 , 它自身是个容器,可以把其他compont加入到JPanel中,如JButton,JTextArea,JTextField等,另外也可以在它上面绘图(带滚动条的面板)

JLabel label;//(标签)

JMenuBar menuBar;//(菜单栏)可以加入菜单

JMenu filemenu;//菜单,可以加入到菜单栏中

JMenu editmenu;//同上

JMenuItem  open,save,exit,foreground,background; //菜单项(与上面的两项是在一起使用的,比如说word,打开后有一排文件,编辑,视图这些菜单,这一行菜单是放到菜单栏上的,而某个菜单点开之后,下拉列表中的内容,比如说打印,另存为,指的就是菜单项)

JToolBar toolBar;//工具栏

JButton btnopen;//按钮

JButton btnsave;//同上

File lastFile=null;//文件

public void init(){

f=new JFrame("文本编辑器");//创建一个窗体

f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //设置窗体关闭时默认的操作:点击关闭按钮窗体退出。

f.setSize(400, 300);//设置尺寸(长宽)

f.setVisible(true);//设置窗体为可见,到这一步你就可以看见一个空着的400*300的窗体了

Container frame=f.getContentPane(); 

menuBar=new JMenuBar();//创建菜单栏

f.setJMenuBar(menuBar);//将菜单栏放到窗体上

filemenu=new JMenu("file");

editmenu=new JMenu("edit");//上面两句创建了俩菜单,文件,和编辑

filemenu.setMnemonic('F');//快捷键,就跟word里面的文件菜单后面括号里跟的那个(F)是一个道理

editmenu.setMnemonic('e');

menuBar.add(filemenu);

menuBar.add(editmenu);//上面两句代码把两个菜单加到菜单栏中

open=new JMenuItem("open");//创建菜单项,跟word中文件菜单列表中的打开一样,下面一句是设置快捷键的

open.setMnemonic('o');

filemenu.add(open); //把上面的菜单项,加入到文件菜单中,到这一步,你点开菜单就看见有个打开这一项了

save=new JMenuItem("save");//下面的原理跟上面一样

save.setMnemonic('s');

filemenu.add(save);

filemenu.addSeparator();//加入分隔符,将菜单项分隔开,可以看一下word里面的分割线

exit=new JMenuItem("exit");//退出  菜单项

exit.setMnemonic('x');

filemenu.add(exit);

//创建前景,背景菜单项加入到,edit菜单
foreground =new JMenuItem("foreground"); 

background =new JMenuItem("background");

editmenu.add(foreground);

editmenu.add(background);

//    Icon openIcon=new ImageIcon("/src/open.png");
//这两句话加载图片生成打开和保存的图标对象。

Icon  openIcon=new ImageIcon(this.getClass().getResource("open.png"));

Icon  saveIcon=new ImageIcon(this.getClass().getResource("save.png"));

//创建工具条

toolBar=new JToolBar();

frame.add(toolBar,"North");//将工具条加到窗体上
//创建打开和保存按钮
btnopen=new JButton(openIcon);

btnsave=new JButton(saveIcon);
//将按钮加到工具条中
toolBar.add(btnopen);

toolBar.add(btnsave);
//创建文本域
textArea=new JTextArea(200,200);
//创建带滚动条的面板
scrollpane=new JScrollPane(textArea);
//将面板加入到窗体上
frame.add(scrollpane);
//创建标签
label=new  JLabel();
//将标签加入到窗体上
frame.add(label,"South");
//将在edit菜单下的背景菜单项添加监听器,里面指定了要进行的操作actionPerformed
background.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent e) {

// TODO Auto-generated method stub
//弹出对话框,选择颜色
Color c=new JColorChooser().showDialog(f, "选择背景色", Color.white);
//将文本域的背景色设置为上面选择的颜色
textArea.setBackground(c);

}

});
//同上,下面设置前景色
foreground.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent e) {

// TODO Auto-generated method stub

Color c=new JColorChooser().showDialog(f, "选择前景色", Color.black);

textArea.setForeground(c);

}

});
//为打开菜单项添加响应行为
open.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent e) {

// TODO Auto-generated method stub
//点击菜单项时会打开文件,函数在后面定义
openFile();

}

});

save.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent e) {

// TODO Auto-generated method stub
//点击菜单项时会保存文件,函数在后面定义
saveFile();

}

});
//为按钮添加响应函数
btnopen.addActionListener(new ActionListener() {


@Override

public void actionPerformed(ActionEvent e) {

// TODO Auto-generated method stub

openFile();

}

});

btnsave.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent e) {

// TODO Auto-generated method stub

saveFile();

}

});


}

public void saveFile(){
//文件选择框
JFileChooser jfc=new JFileChooser();

if(null!=lastFile){
//默认选中的文件为lastFile
jfc.setSelectedFile(lastFile);

}
//弹出保存对话框
jfc.showSaveDialog(f);
//当按下文件对话框上的“确认”,“取消”按钮或关闭图标,showSaveDialog()方法会返回下列常量之一:JFileChoos.APPROVE_OPTION        JFileChoos.CANCEL_OPTION
if(JFileChooser.APPROVE_OPTION==jfc.showSaveDialog(f)){
//获取选中的文件
File file=jfc.getSelectedFile();

if(file.exists()){
//确认对话框
int x=JOptionPane.showConfirmDialog(f, "确定保存吗?","保存提示",JOptionPane.OK_CANCEL_OPTION);

if(x!=JOptionPane.OK_OPTION){//如果没有选择ok,继续调用保存函数,此时的界面是没点保存,没有弹出确认对话框的地方,这些操作步骤跟word里的保存是一样的

saveFile();

return;

}

}
//从文本域读取信息
String info=textArea.getText();
//往文件中写
FileOutputStream fos = null;

try {

fos = new FileOutputStream(file);

} catch (FileNotFoundException e1) {

// TODO Auto-generated catch block

e1.printStackTrace();

}

BufferedOutputStream  bos=new BufferedOutputStream(fos);

byte[] buf=info.getBytes();

try {

bos.write(buf,  0 , buf.length);

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

try {

bos.close();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

try {

fos.close();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}
//打开文件
public void openFile(){

JFileChooser jfc=new JFileChooser();

jfc.showOpenDialog(f);

if(JFileChooser.APPROVE_OPTION==jfc.showOpenDialog(f)){

//    textArea.append("");

File file=jfc.getSelectedFile();

lastFile=file;
//文件从磁盘读入内存
FileInputStream fis = null;

try {

fis = new FileInputStream(file);

} catch (FileNotFoundException e1) {

// TODO Auto-generated catch block

e1.printStackTrace();

}
//转换存储格式,将缓冲区的数据存到字节数组中
BufferedInputStream bis=new BufferedInputStream(fis);

byte [] buf=new byte[128];

int count=0;

try {

while((count=bis.read(buf))!=-1){
//添加到文本域
textArea.append(new String(buf,0,count));

}

} catch (IOException e1) {

// TODO Auto-generated catch block

e1.printStackTrace();

}

try {
//关闭缓冲区,用完了就关上
bis.close();

} catch (IOException e1) {

// TODO Auto-generated catch block

e1.printStackTrace();

}

try {

fis.close();

} catch (IOException e1) {

// TODO Auto-generated catch block

e1.printStackTrace();

}

// FileNameExtensionfilter
//用指定的扩展名集合进行过滤。文件的扩展名是指文件名最后一个“.”后面的部分。
FileNameExtensionFilter filter = new FileNameExtensionFilter("文档", "txt", "doc");

jfc.addChoosableFileFilter(filter);

//标签的名字设为文件名
  label=new JLabel();

  label.setText(file.getName());

}


}

}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式