java编的简单文本编辑器!!急求!!!不要网上随便搜的复制粘贴的!!!

设计一个文本编辑器。它上面是菜单条,菜单条下面是一个多行文本框。菜单条包含三个菜单项,File、Format和Help, 其中,File菜单又包括菜单项open, save以及Quit三个子菜单项。当选择open时,会弹出文件对话框,让用户选择指定的文件(文本文件),然后将文件的内容显示在多行文本框中。当选择save 时,弹出文件对话框,在其中输入文件名后将多行文本框的内容存入该文件。当选择Quit时,退出该程序的执行,此菜单项对应的快捷方式是Ctrl+E。Format菜单又包括Color和Font。当选择Color时,可以在二级菜单中选择不同颜色(比如红、黄、蓝等),选择好后可将文本框中所有的字符都变换为对应的颜色。当选择Format时,可以在二级菜单中选择不同的字体方式(加粗、倾斜、不同字号等),选择后文本框中的每一行文字都按照所选方式显示。当选择Help菜单时弹出一个对话框,显示你的学号姓名等个人信息。
→ 【要求及评分标准】:
最基本的要求是【【能出现文本编辑器的界面,实现File和Help菜单项的功能,并且面板窗口能正常关闭。可评及格。】】如能正确Format中Color和Font的功能,Color可实现红蓝黑三色,Font可实现加粗和倾斜,可评良,如能利用File中Open菜单项打开Document文件,且Color中可以选择3中以上不同颜色,Font可实现不同字号的选择,可评优。如果有一些缺陷或功能不全,评分相应降低。

只求及格!!如果能达到良可加分!!

import java.awt.*;
import java.awt.event.*;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import javax.swing.*;
import javax.swing.filechooser.FileNameExtensionFilter;
public class EditorJFrame extends JFrame implements ActionListener, MouseListener
{
private JComboBox combox_name, combox_size; //字体、字号组合框
private JRadioButton radiob_color[]; //颜色单选按钮
private JTextArea text; //文本区
private Color color; //text的当前文本色
private JPopupMenu popupmenu; //快捷菜单
private JButton bopen,bsave; //保存和打开
private JFileChooser fchooser;
private Object file;
public EditorJFrame()
{
super("文本编辑器"); //默认BorderLayout布局
Dimension dim = getToolkit().getScreenSize(); //获得屏幕分辨率
this.setBounds(dim.width/4,dim.height/4,dim.width/2,dim.height/4); //窗口居中

text = new JTextArea("Welcome");
text.addMouseListener(this); //文本区注册鼠标事件监听器
this.getContentPane().add(new JScrollPane(text)); //文本区添加到滚动窗格,滚动窗格添加到框架内容窗格中部
JToolBar toolbar=new JToolBar(); //创建工具栏,默认水平方向
this.getContentPane().add(toolbar,"North"); //工具栏添加到框架内容窗格北部
JButton bopen=new JButton("打开",new ImageIcon("open.txt"));//添加
bopen.addActionListener(this);
toolbar.add(bopen);
JButton bsave=new JButton("保存",new ImageIcon("save.txt"));
bsave.addActionListener(this);
toolbar.add(bsave);
//this.file=null;

String sizestr[]={"20","30","40","50","60","70"};
combox_size = new JComboBox(sizestr); //字号组合框
combox_size.addActionListener(this); //组合框注册单击事件监听器
toolbar.add(combox_size);
GraphicsEnvironment ge=GraphicsEnvironment.getLocalGraphicsEnvironment();
String[] fontsName=ge.getAvailableFontFamilyNames(); //获得系统字体
combox_name = new JComboBox(fontsName); //组合框显示系统字体
combox_name.addActionListener(this); //组合框注册单击事件监听器
toolbar.add(combox_name);

String colorstr[]={"红","绿","蓝","黑"};
ButtonGroup bgroup_color = new ButtonGroup(); //按钮组
radiob_color = new JRadioButton[colorstr.length]; //颜色单选按钮数组
for (int i=0; i<radiob_color.length; i++)
{
radiob_color[i]=new JRadioButton(colorstr[i]); //颜色单选按钮
radiob_color[i].addActionListener(this);
bgroup_color.add(radiob_color[i]); //单选按钮添加到按钮组
toolbar.add(radiob_color[i]); //单选按钮添加到工具栏
}
radiob_color[0].setSelected(true); //设置单选按钮的选中状态
this.addmyMenu(); //调用自定义方法,添加菜单
this.setVisible(true);
}
private void addmyMenu() //添加主菜单、快捷菜单、对话框
{
JMenuBar menubar = new JMenuBar(); //菜单栏
this.setJMenuBar(menubar); //框架上添加菜单栏
String menustr[]={"文件","编辑"};
JMenu menu[]=new JMenu[menustr.length];
for (int i=0; i<menustr.length; i++)
{
menu[i] = new JMenu(menustr[i]); //菜单
menubar.add(menu[i]); //菜单栏中加入菜单
}
JMenuItem menuitem_exit = new JMenuItem("新建");
menu[0].add(menuitem_exit);
menuitem_exit.addActionListener(this);
JMenuItem menuitem_exit1 = new JMenuItem("打开");
menu[0].add(menuitem_exit1); //生成菜单项并加入到菜单
menuitem_exit1.addActionListener(this);
JMenuItem menuitem_exit2 = new JMenuItem("保存");
menu[0].add(menuitem_exit2);
menuitem_exit2.addActionListener(this);
JMenuItem menuitem_exit3 = new JMenuItem("剪切");
menu[1].add(menuitem_exit3); //生成菜单项并加入到菜单
menuitem_exit3.addActionListener(this);
JMenuItem menuitem_exit4 = new JMenuItem("复制");
menu[1].add(menuitem_exit4); //生成菜单项并加入到菜单
menuitem_exit4.addActionListener(this);
JMenuItem menuitem_exit5 = new JMenuItem("粘贴");
menu[1].add(menuitem_exit5); //生成菜单项并加入到菜单
menuitem_exit5.addActionListener(this);
}

public void actionPerformed(ActionEvent e) //单击事件处理方法
{
if(e.getActionCommand().equals("新建"))
{
this.file=null;

this.text.setText("");
}
if( e.getActionCommand().equals("打开"))//打开文件时操作
{
try {
JFileChooser choosefile=new JFileChooser("d:\\");
FileNameExtensionFilter filefilter=new FileNameExtensionFilter(".txt","txt");
choosefile.setFileFilter(filefilter);//文件过滤器
int re=choosefile.showOpenDialog(null);
if(re==JFileChooser.APPROVE_OPTION)
{
String ioRecord="";
File file=choosefile.getSelectedFile();
if(filefilter.accept(file))
{
FileReader readfile=new FileReader(file);
BufferedReader readfile_ln=new BufferedReader(readfile);
ioRecord = readfile_ln.readLine();
String s="";
while(ioRecord!=null){
s+=ioRecord+"\n";
ioRecord=readfile_ln.readLine();
}
text.setText(s);
}else JOptionPane.showMessageDialog(null, "选择文件类型不正确");
}
} catch (FileNotFoundException q) {q.printStackTrace();}
catch(IOException q){ q.printStackTrace(); }
}
if (e.getSource() instanceof JRadioButton) //选择一个颜色复选框
{
if (e.getSource()==radiob_color[0])
color = new Color(255,0,0);
if (e.getSource()==radiob_color[1])
color = new Color(0,255,0);
if (e.getSource()==radiob_color[2])
color = new Color(0,0,255);
if (e.getSource()==radiob_color[3])
color = new Color(0,0,0);
text.setForeground(color); //设置文本区颜色
return;
}
if (e.getSource() instanceof JMenuItem) //单击菜单项
{
if (e.getActionCommand()=="剪切")
text.cut(); //将选中文本剪切送系统剪贴板
if (e.getActionCommand()=="复制")
text.copy(); //将选中文本复制送系统剪贴板
if (e.getActionCommand()=="粘贴")
text.paste(); //将剪贴板的文本粘贴在当前位置
return;
}
if (e.getActionCommand()=="保存")
{
//保存非空文件,不显示保存文件对话框
try{
FileWriter out=new FileWriter("d:\\list.txt");
out.write(text.getText());
out.close();
JOptionPane.showMessageDialog(null,"文件已经保存!");
System.exit(0);
}
catch(Exception e1){ JOptionPane.showMessageDialog(null, "文件 IO 异常!"); }
}

if (e.getSource() instanceof JComboBox || e.getSource() instanceof JCheckBox )
{ //组合框、复选框
int size=0;
String fontname = (String)combox_name.getSelectedItem();//获得字体名
size = Integer.parseInt((String)combox_size.getSelectedItem());//获得字号
java.awt.Font font = text.getFont(); //获得文本区的当前字体对象
int style = font.getStyle(); //获得字形
text.setFont(new Font(fontname, style, size)); //设置文本区字体
}
}
//保存

public void mouseClicked(MouseEvent mec) //鼠标事件处理方法,实现MouseListener接口
{
if (mec.getModifiers()==MouseEvent.BUTTON3_MASK) //单击的是鼠标右键
popupmenu.show(text,mec.getX(),mec.getY()); //在鼠标单击处显示快捷菜单
}
public void mousePressed(MouseEvent mep) {}
public void mouseReleased(MouseEvent mer) {}
public void mouseEntered(MouseEvent mee) {}
public void mouseExited(MouseEvent mex) {}
public void mouseDragged(MouseEvent med) {}
public static void main(String arg[])
{
new EditorJFrame();
}
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-06-19
还是问同学比较实际

真想把室友写的复制黏贴过来。。。
相似回答