文本阅读器java源程序.docx

上传人:b****6 文档编号:5733285 上传时间:2022-12-31 格式:DOCX 页数:13 大小:17.53KB
下载 相关 举报
文本阅读器java源程序.docx_第1页
第1页 / 共13页
文本阅读器java源程序.docx_第2页
第2页 / 共13页
文本阅读器java源程序.docx_第3页
第3页 / 共13页
文本阅读器java源程序.docx_第4页
第4页 / 共13页
文本阅读器java源程序.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

文本阅读器java源程序.docx

《文本阅读器java源程序.docx》由会员分享,可在线阅读,更多相关《文本阅读器java源程序.docx(13页珍藏版)》请在冰豆网上搜索。

文本阅读器java源程序.docx

文本阅读器java源程序

文本阅读器java源程序

importjava.awt.*;

importjava.awt.event.*;

importjava.io.*;

importjavax.swing.*;

publicclassNotebook{

privateJFrameframe;

privateJTextAreatextArea;

privateJMenuBarmenuBar;

privateJMenufile,format,search,help;

privateJMenuItemopen,exit;

privateJMenuItemfont,color,background,speed;

privateJMenuItemfind,changeto;

privateJMenuItemhelps,about;

privateBooleanautoLineWrap=true;

privateStringfileName="未命名";//文件名

//privateFilecurrentFile;

privateJScrollPanejsp;

privateJScrollBarjsb;

privateSpeedsped;

privatefontfont1;

intdelay=10;

Timertimer=newTimer(delay,newActionListener(){

publicvoidactionPerformed(ActionEventevt){

jsb.setValue(jsb.getValue()+jsb.getUnitIncrement());

}

});

 

publicNotebook(){

frame=newJFrame();

frame.setTitle("未命名");

frame.setLayout(newBorderLayout());

textArea=newJTextArea();

textArea.setFont(newFont("宋体",Font.PLAIN,18));//设置默认字体样式字号

//setinputtextArea设置编辑区

textArea.setText("");

textArea.setEditable(false);

textArea.setLineWrap(autoLineWrap);//设置自动换行

jsp=newJScrollPane(textArea);//setScroll

jsb=jsp.getVerticalScrollBar();

jsb.addAdjustmentListener(newAdjustmentListener(){

publicvoidadjustmentValueChanged(AdjustmentEvente){

inti;

i=jsb.getUnitIncrement();

System.out.println(i);

}});

frame.add(jsp,BorderLayout.CENTER);

//菜单

menuBar=newJMenuBar();

file=newJMenu("文件");

file.setMnemonic('F');

format=newJMenu("格式");

search=newJMenu("搜索");

help=newJMenu("帮助");

menuBar.add(file);

menuBar.add(format);

menuBar.add(search);

menuBar.add(help);

//文件菜单项

open=newJMenuItem("打开...",KeyEvent.VK_O);

exit=newJMenuItem("退出");

file.add(open);

file.add(exit);

//格式菜单项

//autoLine=newJCheckBoxMenuItem("自动换行");

font=newJMenuItem("字体...");

color=newJMenuItem("颜色...");

background=newJMenuItem("背景颜色...");

speed=newJMenuItem("滚屏速度...");

//format.add(autoLine);

format.add(font);

format.add(color);

format.add(background);

format.add(speed);

//搜索菜单项

find=newJMenuItem("查找...");

changeto=newJMenuItem("转到...");

search.add(find);

search.add(changeto);

//帮助菜单项

helps=newJMenuItem("帮助");

about=newJMenuItem("关于");

 

help.add(helps);

help.add(about);

//设置菜单条

menuBar.add(file);

menuBar.add(format);

menuBar.add(search);

menuBar.add(help);

frame.setJMenuBar(menuBar);

//sped///

sped=newSpeed(jsb,timer);

font1=newfont(textArea);

//调用监听方法

addEventHandler();

//////

textArea.addMouseListener(newMouseListener(){

publicvoidmouseClicked(MouseEvente){

if(e.getClickCount()==2){

timer.start();

}

if(e.getClickCount()==1){

timer.stop();

}

}

publicvoidmouseEntered(MouseEventarg0){

}

publicvoidmouseExited(MouseEventarg0){

}

publicvoidmousePressed(MouseEventarg0){

}

publicvoidmouseReleased(MouseEventarg0){

}});

//监听上下键//

textArea.addKeyListener(newKeyListener(){

@Override

publicvoidkeyPressed(KeyEventarg0){

if(arg0.getKeyCode()==KeyEvent.VK_UP){

jsb.setValue(jsb.getValue()-jsb.getUnitIncrement());

}

if(arg0.getKeyCode()==KeyEvent.VK_DOWN){

jsb.setValue(jsb.getValue()+jsb.getUnitIncrement());

}

}

publicvoidkeyReleased(KeyEventarg0){}

publicvoidkeyTyped(KeyEventarg0){

}});

//

textArea.addMouseListener(newMouseListener(){

@Override

publicvoidmouseClicked(MouseEvente){

if(e.getClickCount()==2){

timer.start();

}

if(e.getClickCount()==1){

timer.stop();

}

}

publicvoidmouseEntered(MouseEventarg0){

}

publicvoidmouseExited(MouseEventarg0){

}

publicvoidmousePressed(MouseEventarg0){

}

publicvoidmouseReleased(MouseEventarg0){

}});

}

///////////初始化frame////////////////

protectedvoidframeInit(){

Dimensiond=Toolkit.getDefaultToolkit().getScreenSize();

frame.setSize(d.width,d.height);

frame.setVisible(true);

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

Dimensionb=frame.getSize();

}

privatevoidaddEventHandler(){

//文件项的监听

open.addActionListener(newActionListener()

{publicvoidactionPerformed(ActionEvente){fileOpen();jsb.setValue(0);}}

);

exit.addActionListener(newActionListener()

{publicvoidactionPerformed(ActionEvente){fileExit();}}

);

//格式菜单的监听

font.addActionListener(newActionListener()

{publicvoidactionPerformed(ActionEvente){font1.addEventHandler();}}

);

color.addActionListener(newActionListener()

{publicvoidactionPerformed(ActionEvente){formatColor();}}

);

background.addActionListener(newActionListener()

{publicvoidactionPerformed(ActionEvente){formatBackgroun

d();}}

);

speed.addActionListener(newActionListener()

{publicvoidactionPerformed(ActionEvente){sped.liser();}}

);

}

//////////文件项的方法/////////////////////////

privatevoidfileOpen(){

textArea.setText("");

JFileChooserfileChooser=newJFileChooser();

fileChooser.showOpenDialog(frame);

Filefile=fileChooser.getSelectedFile();

if(file==null)return;

fileName=file.getName();//获得文件名

frame.setTitle(file.getAbsolutePath());

FileInputStreamfis=null;

BufferedReaderbr=null;

try{

fis=newFileInputStream(file);

br=newBufferedReader(newInputStreamReader(fis));

Stringstr=null;

while((str=br.readLine())!

=null){

textArea.append(str+"\n");

}

System.out.println("打开成功");

textArea.setCaretPosition(0);

}catch(IOExceptione1){

JOptionPane.showMessageDialog(frame,"文件不存在或已被损坏");

}finally{

if(br!

=null)try{br.close();}catch(IOExceptione){}

if(fis!

=null)try{fis.close();}catch(IOExceptione){}

}

}

privatevoidfileExit(){

intoption=-1;

Objectoptions[]={"Yes","No"};

option=JOptionPane.showOptionDialog(frame,"是否退出阅读?

","exit",JOptionPane.YES_NO_OPTION,JOptionPane.QUESTION_MESSAGE,null,options,options[0]);

switch(option){

caseJOptionPane.YES_OPTION:

System.exit(0);

caseJOptionPane.NO_OPTION:

return;

default:

System.exit(0);

}

}

////////////////////////////////////////////////////////////

/////////////////格式项的方法/////////////////////////////////

privatevoidformatColor(){

//弹出颜色色选择器对话框

Colorcolor=JColorChooser.showDialog(textArea,"选择颜色",Color.BLACK);

textArea.setForeground(color);

}

privatevoidformatBackground(){

//弹出颜色色选择器对话框

Colorcolor=JColorChooser.showDialog(textArea,"选择颜色",Color.BLACK);

textArea.setBackground(color);

}

//////////////////////////////////////////////////////////////

publicstaticvoidmain(Stringargs[]){

Notebooknt=newNotebook();

nt.frameInit();

 

}

}

classfont{

privateJTextAreatextArea;

privateJButtonok,cancel;

privateJComboBoxfontName,fontSize,fontStyle;

GraphicsEnvironmentge;//定义系统字体对象

String[]size={"8","10","12","14","16","18","20","22","24","26","28","32","36","48","72","96"};

String[]style={"PLAIN","BOLD","ITALIC"};

JFramejf=newJFrame("字体设置");

publicf

ont(JTextAreatextArea){

this.textArea=textArea;

JLabellabel1=newJLabel("字体");

JLabellabel2=newJLabel("字号");

JLabellabel3=newJLabel("样式");

ge=GraphicsEnvironment.getLocalGraphicsEnvironment();//获取系统字体

String[]fontname=ge.getAvailableFontFamilyNames();

fontName=newJComboBox(fontname);

fontSize=newJComboBox(size);

fontStyle=newJComboBox(style);

ok=newJButton("确定");

cancel=newJButton("取消");

jf.setLayout(newBorderLayout());

JPanelp1=newJPanel();

JPanelp2=newJPanel();

JPanelp3=newJPanel();

p1.add(label1);

p1.add(label2);

p1.add(label3);

p2.add(fontName);

p2.add(fontSize);

p2.add(fontStyle);

p3.add(ok);

p3.add(cancel);

jf.add(p1,BorderLayout.NORTH);

jf.add(p2,BorderLayout.CENTER);

jf.add(p3,BorderLayout.SOUTH);

jf.setSize(360,200);

jf.setLocation(300,200);

jf.setVisible(false);

jf.setResizable(false);

//addEventHandler();

}

voidaddEventHandler(){

jf.setVisible(true);

ok.addActionListener(newActionListener(){

publicvoidactionPerformed(ActionEvente){

Stringn1=(String)fontName.getSelectedItem();

intn2=fontStyle.getSelectedIndex();

Stringn3=(String)fontSize.getSelectedItem();

textArea.setFont(newFont(n1,n2,Integer.parseInt(n3)));

jf.setVisible(false);

}

});

cancel.addActionListener(newActionListener(){

publicvoidactionPerformed(ActionEvente){

jf.setVisible(false);//

}

}

);

}

}

classSpeedimplementsItemListener{

privateJScrollBarjsb;

privateJFramejfrm;

privateJLabeljlb1;

//JLabeljlb2;

privateJButtonjbt;

//privateJCheckBoxjcheckbox;

privateJComboBoxjcbb;

Integersudu;

Timertimer;

privateIntegermsg[]={1,10,18,36,48,66,80,90};

publicSpeed(finalJScrollBarjsb,finalTimertimer){

this.jsb=jsb;

this.timer=timer;

jfrm=newJFrame();

jlb1=newJLabel("滚屏速度");

jbt=newJButton("确定");

//jcheckbox=newJCheckBox("自动滚屏");

jcbb=newJComboBox(msg);

jfrm.setLayout(newFlowLayout());

jfrm.add(jlb1);

jfrm.add(jcbb);

//jfrm.add(jcheckbox);

jfrm.add(jbt);

jfrm.setVisible(false);

jcbb.setEditable(true);

jfrm.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);

jfrm.pack();

}

voidliser(){

jfrm.setVisible(true);

///////监听复选框///////////////////////////

jcbb.addItemListener(this);

/*jcbb.addActio

nListener(newActionListener(){

publicvoidactionPerformed(ActionEvente){

jcbb.setSe

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 城乡园林规划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1