JAVA记事本实验分析方案含源代码运行结果Word下载.docx

上传人:b****6 文档编号:8614975 上传时间:2023-05-12 格式:DOCX 页数:66 大小:983.15KB
下载 相关 举报
JAVA记事本实验分析方案含源代码运行结果Word下载.docx_第1页
第1页 / 共66页
JAVA记事本实验分析方案含源代码运行结果Word下载.docx_第2页
第2页 / 共66页
JAVA记事本实验分析方案含源代码运行结果Word下载.docx_第3页
第3页 / 共66页
JAVA记事本实验分析方案含源代码运行结果Word下载.docx_第4页
第4页 / 共66页
JAVA记事本实验分析方案含源代码运行结果Word下载.docx_第5页
第5页 / 共66页
JAVA记事本实验分析方案含源代码运行结果Word下载.docx_第6页
第6页 / 共66页
JAVA记事本实验分析方案含源代码运行结果Word下载.docx_第7页
第7页 / 共66页
JAVA记事本实验分析方案含源代码运行结果Word下载.docx_第8页
第8页 / 共66页
JAVA记事本实验分析方案含源代码运行结果Word下载.docx_第9页
第9页 / 共66页
JAVA记事本实验分析方案含源代码运行结果Word下载.docx_第10页
第10页 / 共66页
JAVA记事本实验分析方案含源代码运行结果Word下载.docx_第11页
第11页 / 共66页
JAVA记事本实验分析方案含源代码运行结果Word下载.docx_第12页
第12页 / 共66页
JAVA记事本实验分析方案含源代码运行结果Word下载.docx_第13页
第13页 / 共66页
JAVA记事本实验分析方案含源代码运行结果Word下载.docx_第14页
第14页 / 共66页
JAVA记事本实验分析方案含源代码运行结果Word下载.docx_第15页
第15页 / 共66页
JAVA记事本实验分析方案含源代码运行结果Word下载.docx_第16页
第16页 / 共66页
JAVA记事本实验分析方案含源代码运行结果Word下载.docx_第17页
第17页 / 共66页
JAVA记事本实验分析方案含源代码运行结果Word下载.docx_第18页
第18页 / 共66页
JAVA记事本实验分析方案含源代码运行结果Word下载.docx_第19页
第19页 / 共66页
JAVA记事本实验分析方案含源代码运行结果Word下载.docx_第20页
第20页 / 共66页
亲,该文档总共66页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

JAVA记事本实验分析方案含源代码运行结果Word下载.docx

《JAVA记事本实验分析方案含源代码运行结果Word下载.docx》由会员分享,可在线阅读,更多相关《JAVA记事本实验分析方案含源代码运行结果Word下载.docx(66页珍藏版)》请在冰点文库上搜索。

JAVA记事本实验分析方案含源代码运行结果Word下载.docx

importjava.io.File。

import.URLClassLoader。

import.URL。

importjava.lang.InterruptedException。

importjava.io.FileInputStream。

importjava.io.FileOutputStream。

importjava.io.PrintStream。

importjava.util.Scanner。

importjava.util.Date。

importjava.util.Iterator。

importjava.util.List。

importjava.text.SimpleDateFormat。

importjavax.swing.JButton。

importjavax.swing.JCheckBox。

importjavax.swing.JCheckBoxMenuItem。

importjavax.swing.JFrame。

importjavax.swing.JLabel。

importjavax.swing.JPanel。

importjavax.swing.JTextArea。

importjavax.swing.JMenu。

importjavax.swing.JMenuBar。

importjavax.swing.ImageIcon。

importjavax.swing.JScrollPane。

importjavax.swing.JToolBar。

importjavax.swing.JMenuItem。

importjavax.swing.KeyStroke。

importjavax.swing.JPopupMenu。

importjavax.swing.JFileChooser。

importjavax.swing.JOptionPane。

importjavax.swing.JColorChooser。

importjavax.swing.JDialog。

importjavax.swing.JTextField。

importjavax.swing.BorderFactory。

importjavax.swing.JList。

importjavax.swing.JComboBox。

importjavax.swing.UIManager。

importjavax.swing.JRadioButton。

importjavax.swing.JToggleButton。

importjavax.swing.ButtonGroup。

importjavax.swing.TransferHandler。

importjavax.swing.border.Border。

importjavax.swing.border.TitledBorder。

importjavax.swing.text.Document。

importjavax.swing.undo.UndoManager。

importjavax.swing.undo.UndoableEdit。

importjavax.swing.event.UndoableEditEvent。

importjavax.swing.event.UndoableEditListener。

importjavax.swing.event.DocumentListener。

importjavax.swing.event.DocumentEvent。

importjavax.swing.JComponent。

importjava.awt.Font。

importjava.awt.Window。

importjava.awt.Event。

importjava.awt.MediaTracker。

importjava.awt.Color。

importjava.awt.event.KeyEvent。

importjava.awt.event.KeyListener。

importjava.awt.BorderLayout。

importjava.awt.FlowLayout。

importjava.awt.GridLayout。

importjava.awt.Container。

importjava.awt.Toolkit。

importjava.awt.Image。

importjava.awt.GraphicsEnvironment。

importjava.awt.datatransfer.*。

importjava.awt.datatransfer.DataFlavor。

importjava.awt.datatransfer.StringSelection。

importjava.awt.datatransfer.Clipboard。

importjava.awt.datatransfer.Transferable。

importjava.awt.event.WindowAdapter。

importjava.awt.event.WindowEvent。

importjava.awt.event.WindowListener。

importjava.awt.event.KeyAdapter。

importjava.awt.event.ActionListener。

importjava.awt.event.MouseListener。

importjava.awt.event.MouseEvent。

importjava.awt.event.MouseAdapter。

importjava.awt.event.ActionEvent。

classMyTransferHandlerextendsTransferHandler

{

JTextAreatext=null。

publicMyTransferHandler(JTextAreatext)

{

this.text=text。

}

publicbooleancanImport(JComponentc,DataFlavor[]flavors)//在拖放操作期间重复调用此方法,判断是否可以输入

{

for(inti=0。

i<

flavors.length。

i++)

{

if(DataFlavor.javaFileListFlavor.equals(flavors[i]))

{

returntrue。

}

}

returnfalse。

}

publicbooleanimportData(JComponentcom,Transferablet)

try

Listlist=(List)t.getTransferData(DataFlavor.javaFileListFlavor)。

//返回一个对象,该对象表示将要被传输的数据

Iteratoriter=list.iterator()。

while(iter.hasNext())

{

Filefile=(File)iter.next()。

text.setText("

"

)。

Scannerscan=newScanner(newFileInputStream(file))。

scan.useDelimiter("

\n"

//将此扫描器的分隔模式设置为换行符

while(scan.hasNext())//如果此扫描器的输入中有另一个标记

{

text.append(scan.next()+"

}

}

catch(Exceptione)

}

}

}

classGotoextendsJDialogimplementsActionListener

JButtonbut1=newJButton("

确定"

JButtonbut2=newJButton("

取消"

JLabellab=newJLabel("

行数(L):

JTextFieldfield=newJTextField()。

//行数框

introw=0。

//记事本行数

intlocation=0。

//当前的位置

intcurrentline=0。

//当前所在的行

intline[]。

publicGoto(JTextAreatext)

setTitle("

转到下列行"

//设置标题

setLayout(null)。

//设置布局管理器null

lab.setBounds(10,10,50,20)。

//设置大小,位置

field.setBounds(70,10,100,20)。

but1.setBounds(10,40,60,20)。

but2.setBounds(110,40,60,20)。

row=text.getLineCount()。

//返回TextArea中的行数

line=newint[row]。

//分配空间

location=text.getCaretPosition()。

//得到当前位置

line[0]=text.getText().indexOf('

\12'

0)。

//'

是换行符,返回换行符字符在此字符串中第一次出现处的索引

for(inti=1。

i<

line.length。

i++)

line[i]=text.getText().indexOf('

line[i-1]+1)。

//从找到的位置加1继续找

for(inti=0。

{

if(location<

=line[i])//找到当前行,退出循环

currentline=i+1。

break。

}

if(currentline==0)//不在文字中,光标在文字的最下面

currentline=row。

field.setText(currentline+"

//在行数框设置当前行数

field.selectAll()。

add(lab)。

add(field)。

add(but1)。

add(but2)。

but1.addActionListener(this)。

but2.addActionListener(this)。

setSize(200,100)。

//设置大小

setResizable(false)。

//窗口不可拖拉变大变小

setLocation(400,400)。

//设置位置

show()。

//显示转到框

publicvoidactionPerformed(ActionEvente)

if(e.getSource()==but1)//确定

Stringstr=field.getText()。

//从行数得到行数的字符串

try

intcnt=Integer.parseInt(str)。

//转换成字符串

if(cnt<

1||cnt>

row)//行数超过范围

JOptionPane.showMessageDialog(null,"

行数超过范围。

"

提示..."

JOptionPane.WARNING_MESSAGE)。

else

if(cnt==1)//行数为1时,鼠标光标设在开头

text.setCaretPosition(0)。

else

currentline=line[cnt-2]+1。

text.setCaretPosition(currentline)。

//lin[cnt-1]是cnt-1行的换行符位置,+1后是第cnt行开头的位置

hide()。

//转到对话框消失

catch(NumberFormatExceptione1)

只能输入数字,不能输入数字以外的字母,符号等。

}

if(e.getSource()==but2)//取消

hide()。

//转到对话框消失

classMyTimeextendsThread//我的时间线程

JLabellab=null。

publicMyTime(JLabellab)

this.lab=lab。

publicvoidrun()//重写run方法

while(true)

this.sleep(1000)。

//每隔1000毫秒,即1秒显示

SimpleDateFormatformat=newSimpleDateFormat("

yyyy年MM月dd日HH时mm分ss秒"

this.lab.setText("

现在时间:

+format.format(newDate()))。

catch(Exceptione)

classsearchimplementsActionListener

JDialogdialog=newJDialog()。

//创建一个寻找对话框

//文本框

JPanelpan=newJPanel()。

查找内容(N):

JCheckBoxbox=newJCheckBox("

区分大小写(C)"

true)。

//是一个可以被选定和取消复选框,初始化为选择

//在这里输入要寻找的字符串

ButtonGroupgroup=newButtonGroup()。

//单选组,将单选按钮加到组,就能实现单选

JRadioButtonup=newJRadioButton("

向上(U)"

//单选按钮

JRadioButtondown=newJRadioButton("

向下(D)"

//单选按钮,初始化为选择

JButtonsearchNext=newJButton("

查找下一个(F)"

JButtoncancel=newJButton("

StringgetText=null。

//从记事本中获得内容

StringgetField=null。

//从查找文本框获得内容

publicsearch(JTextAreatext)

dialog.setTitle("

查找"

//设置对话框标题

searchNext.setEnabled(false)。

//寻找按钮初始化为不弹起

lab.setBounds(10,10,80,20)。

//以下几行为设置组件大小

field.setBounds(100,10,210,20)。

searchNext.setBounds(320,10,120,20)。

box.setBounds(5,80,120,20)。

pan.setBounds(130,40,180,60)。

cancel.setBounds(320,40,120,20)。

dialog.setLayout(null)。

//不设置布局管理器

field.addKeyListener(newKeyAdapter(){//加入键盘监听器

publicvoidkeyReleased(KeyEvente)//当键盘按键松开时

if(field.getText().length()!

=0)//寻找文本框为空时,寻找按钮设置为不弹起

searchNext.setEnabled(true)。

searchNext.setEnabled(false)。

//寻找文本框非空时,寻找按钮设置为弹起

})。

searchNext.addActionListener(this)。

//加入操作事件的侦听器

cancel.addActionListener(this)。

dialog.add(lab)。

//将各组件加入寻找对话框

dialog.add(field)。

dialog.add(searchNext)。

dialog.add(box)。

pan.add(up)。

//将单选按钮加入面板

pan.add(down)。

pan.setBorder(BorderFactory.createTitledBorder("

方向"

))。

//面板加入边界并设置标题

group.add(up)。

//两个单选按钮加到一个按钮组才能实现二选一

group.add(down)。

dialog.add(pan)。

dialog.add(cancel)。

dialog.setResizable(false)。

dialog.setSize(455,150)。

dialog.show()。

//显示对话框

getText=text.getText()。

//getText,getField放在事件监听器中不断监听二个编辑框有无改变,

getField=field.getText()。

//若在构造方法中赋值则在编辑框改变也不会重新查找

inta=0。

//判断是否找到

intposition=text.getCaretPosition()。

//获得鼠标光标位置

if(e.getSource()==searchNext)//寻找按钮触发监听

if(box.isSelected()==false)//不勾选,即不区分大小写

getText=getText.toLowerCase()。

//将两个文本获得的字符串转换成小写字母

getField=getField.toLowerCase()。

if(down.isSelected())//向下查找

if(text.getSelectedText()==null)//还未查找到第一个,记事本中未选中文字

a=getText.indexOf(getField,position)。

//从记事本中找到要寻找的第一个索引

else//已查到一个以上

a=getText.indexOf(getField,position+1-getField.length())。

//从查到的索引的位置加1开始查找下一个,查到的索引位置与鼠标光标位置的差距即为选定字符串的长度

else//向上查找

a=getText.lastIndexOf(getField,position-1)。

//在记事本中指定位置从后向前找到要寻找的第一个索引

a=getText.lastIndexOf(getField,position-1-getField.length())。

//从查到的索引的位置减1开始查找下一个,查到的索引位置与鼠标光标位置的差距即为选定字符串的长度

if(a>

-1)//查到了指定的字符串

{

this.text.select(a,a+getField.length())。

else//查不到,弹出查不到的信息对话框

JOptionPane.showMessageDialog(dialog,"

找不到:

+getField,"

记事本"

JOptionPane.QUESTION_MESSAGE)。

if(e.getSource()==cancel)//取消按钮触发监听

dialog.hide()。

//对话框消失

classreplaceimplementsActionListener,KeyListener

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

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2