java编辑框_java 学习 ——文本编辑框小程序

本文介绍了一个使用Java编写的简易文本编辑框小程序,包括新建、打开、保存、复制、剪切、粘贴等功能。程序通过JTextPane组件实现文本编辑,结合JFileChooser进行文件操作,并通过JMenuBar和JToolBar创建菜单和工具栏,提供用户友好的界面交互。
摘要由CSDN通过智能技术生成

简易的文本编辑框小程序:

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

import java.io.*;

class TextEditorFrame extends JFrame{

File file=null;

Color color=Color.red;

TextEditorFrame(){

initTextPane();

initAboutDialog();

initToolBar();

initMenu();

}

void initTextPane(){

getContentPane().add(new JScrollPane(text));

}

JTextPane text=new JTextPane(); //这是用来做文本框的

JFileChooser filechooser=new JFileChooser(); //文件选择框

JColorChooser colorchooser=new JColorChooser();//

JDialog about=new JDialog(this); //关于对话框

JMenuBar menubar=new JMenuBar();//菜单

JMenu[] menus=new JMenu[]{

new JMenu("文件"),

new JMenu("编辑"),

new JMenu("帮助")

};

JMenuItem menuitems[][]=new JMenuItem[][]{{

new JMenuItem("新建"),

new JMenuItem("打开"),

new JMenuItem("保存"),

new JMenuItem("退出")

},

{

new JMenuItem("复制"),

new JMenuItem("剪切"),

new JMenuItem("粘贴"),

},

{

new JMenuItem("关于")

}

};

void initMenu(){

for(int i=0;i

menubar.add(menus[i]);

for(int j=0;j

menus[i].add(menuitems[i][j]);

menuitems[i][j].addActionListener( action );

}

}

this.setJMenuBar(menubar);

}

ActionListener action=new ActionListener(){

public void actionPerformed(ActionEvent e){

JMenuItem mi=(JMenuItem)e.getSource();

String id=mi.getText();

if(id.equals("新建")){

text.setText("");

file=null;

}else if(id.equals("打开")){

if(file !=null)filechooser.setSelectedFile(file);

int returnVal=filechooser.showOpenDialog(TextEditorFrame.this);

if(returnVal==JFileChooser.APPROVE_OPTION){

file=filechooser.getSelectedFile();

openFile();

}

}else if(id.equals("保存")){

if(file!=null) filechooser.setSelectedFile(file);

int returnVal=filechooser.showSaveDialog(TextEditorFrame.this);

if(returnVal==JFileChooser.APPROVE_OPTION){

file=filechooser.getSelectedFile();

saveFile();

}

}else if(id.equals("退出")){

TextEditorFrame f=new TextEditorFrame();

int s=JOptionPane.showConfirmDialog(f,"你真的要退出吗","退出程序",JOptionPane.YES_NO_CANCEL_OPTION);

if(s==JOptionPane.YES_OPTION)

System.exit(0);

}else if(id.equals("剪切")){

text.cut();

}else if(id.equals("复制")){

text.copy();

}else if(id.equals("粘贴")){

text.paste();

}else if(id.equals("关于")){

about.setSize(300,250);

about.show();

}

}

};

void saveFile(){

try{

FileWriter fw=new FileWriter(file);

fw.write(text.getText());

fw.close();

}

catch(Exception e){

e.printStackTrace();

}

}

void openFile(){

try{

FileReader fr=new FileReader(file);

int len=(int)file.length();

char []buffer=new char[len];

fr.read(buffer,0,len);

fr.close();

text.setText(new String(buffer));

}

catch(Exception e){

e.printStackTrace();

}

}

void initAboutDialog(){

about.getContentPane().add(new JLabel("You have been making great progress."));

about.setModal(true);

}

JToolBar toolbar=new JToolBar();//我来加上工具条

JButton [] buttons=new JButton[]{

new JButton("", new ImageIcon("qin.jpg")),

new JButton("", new ImageIcon("shu.jpg")),

new JButton("", new ImageIcon("xin.jpg"))

};

void initToolBar(){

for(int i=0;i

toolbar.add(buttons[i]);

buttons[0].setToolTipText("复制");

buttons[0].addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e){

text.copy();

}

});

buttons[1].setToolTipText("剪切");

buttons[1].addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e){

text.cut();

}

});

buttons[2].setToolTipText("粘贴");

buttons[2].addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e){

text.paste();

}

});

this.getContentPane().add(toolbar,BorderLayout.NORTH);

}

}

public class F{

public static void main(String args[]){

TextEditorFrame f=new TextEditorFrame();

f.addWindowListener(new WindowAdapter(){

public void windowClosing(WindowEvent e){

TextEditorFrame f=new TextEditorFrame();

int s=JOptionPane.showConfirmDialog(f,"你真的要退出吗","退出程序",JOptionPane.YES_NO_OPTION);

if(s==JOptionPane.YES_OPTION)

System.exit(0);}

});

f.setTitle("TextEditor");

f.setSize(800,600);

f.show();

}

}

版权声明:本文为博主原创文章,未经博主允许不得转载。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值