J**a记事本源代码

时间:2013.11.21 发布人:cqyymw

J**a记事本源代码

已解决问题

谷歌cqyymw用户在2013.11.21提交了关于“广汽传祺J**a记事本源代码”的提问,欢迎大家涌跃发表自己的观点。目前共有1个回答,最后更新于2024-09-08T08:50:29。希望大家能够帮助她。

详细问题描述及疑问:期待您的答案,没有什么华丽的语言,但是我对你的感谢不会减少 !

希望以下的回答,能够帮助你。

第1个回答

用户名:puiwyezw7  

importj**a.awt.BorderLayout;
importj**a.awt.Color;
importj**a.光般块搞甚父awt.FlowLayout;
importj**a.awt.dat态赶保本都连车苏atransfer.Clipboard;
importj**a.awt.datatransfer.DataFl**or;
impor长装又专日愿女南那眼tj**a.awt.d背日宁派环游压个乱重atatransfer.Transferable;
importj**a.顺雨第们显妒神冲胜刻光awt.event.ActionEvent;
importj**a.awt.event.ActionListener;
importj**a.awt.event.Focus问答Event;
importja另信形身坏va.awt.event.FocusL单势周给istener;
importj**a.awt.event.InputEvent;
imp优ortj**a.awt.event.MouseEvent;
importj**a.awt.event.MouseLis万例鱼集是严整是船tener;
importj**a.io.BufferedReader期起察底根那项;
importjava.io.BufferedWriter;
importj**a.io.File;
importj**a.io.FileNotFoundException;
importj**a.io.FileReader;
importj**a.io.FileWriter;
importj**a.io.IOException;

importj**ax.swing.JFileChooser;
importj**ax.swing.JFrame;
importj**ax.swing.JMe**;
importj**ax.swing.JMe**Bar;
importj**ax.swing.JMe**Item;
importj**ax.swing.JOptionPane;
importjavax.swing.JPanel;
importj**ax.swing.JPopupMe**;
importj**ax.swing.JScrollPane;
importja察汽势银纸名两杆vax.swing.JText日单随老歌视铁Area;
importj**ax.swing.KeyStroke;
妈配互革领importj**ax.swi以补低候顾异支想杂ng.filechoo界八散ser.FileFilter;

publicclas致掌纪师爱搞职冷元意sDemoextendsJFrame{

privatestaticfinallongserialVersionUID=1L;//Eclipse自动生成序列号

Stringname="无标题";

JPanelmen药源们药uPanel=newJPanel();

JTextAreatext=newTextAreaMe**();//文本编辑区
JScrollPanejsp=newJScrollPane(text);//可滚动编辑区
JMe**BarmnbMain=newJMe**Bar();

JMe**mnServer=newJMe**("文件(F)");
JMe**mnEdit=newJM始火助席祖序亮药和渐e**("编辑(E)");

JMe**Item[]mniServers=newJMe**Item[]{
newJMe**Item("新建(N)"),
newJMe**Item("保存(S)"),
newJMe**Item("打开(O)"),
newJMe**Item("退出(X)"),
};
{
me**Panel.setLayout(newFlowLayout(FlowLayout.LEFT,0,0));
mnbMain.add(mnServer);
me**Panel.add(mnbMain);
mnbMain.setBounds(5,0,50,30);
for(inti=0;i<mniServers.length;i++){
mnServer.add(mniServers[i]);
}
mniServers[0].addActionListener(newActionListener(){//定义"新建"组件操作

@Override
publicvoidactionPerformed(ActionEventarg0){
newDemo(getLocation().x+15,getLocation().y+5);
}
});

mniServers[1].addActionListener(newActionListener(){//定义"保存"组件操作

@Override
publicvoidactionPerformed(ActionEventarg0){
chooseToS**e();
}

});
mniServers[2].addActionListener(newActionListener(){//定义"打开"组件操作

@Override
publicvoidactionPerformed(ActionEventarg0){
chooseToOpen();
}
});
mniServers[3].addActionListener(newActionListener(){//定义"退出"组件操作

@Override
publicvoidactionPerformed(ActionEventarg0){
System.exit(0);
}
});

text.addFocusListener(newFocusListener(){

@Override
publicvoidfocusLost(FocusEvente){
//TODOAuto-generatedmethodstub

}

@Override
publicvoidfocusGained(FocusEvente){

}
});

}
publicDemo(intx,inty){
this.setTitle(name+"-记事本");
this.setBounds(x,y,600,400);
this.setLayout(newBorderLayout());
this.add(me**Panel,BorderLayout.NORTh**);
this.add(jsp);
jsp.setBounds(5,30,getWidth()-10,geth**eight()-50);

this.setDefaultCloseOperation(DISPO**_ON_CLO**);
this.setVisible(true);
}

publicDemo(){
this(200,200);
}

protectedvoidchooseToS**e(){

Filefile=chooseFile();
if(**ll==file)return;
if(file.exists()){
intcho=JOptionPane.showConfirmDialog(this,"文件已存在,是否覆盖?");
System.out.println(cho);
if(cho==JOptionPane.OK_OPTION)s**e(file);
elsereturn;
}
elses**e(file);

}

privatevoids**e(Filefile){
name=file.getName();
write(text.getText(),file.getPath());
this.setTitle(name+"-记事本");
}

protectedvoidchooseToOpen(){
Filefile=chooseFile();
if(**ll==file||!file.exists())return;
name=file.getName();
Demo.this.setTitle(name+"-记事本");
read(text,file);
}
/*********************************************MAIN**************************************************/
publicstaticvoidmain(String[]args){
newDemo();
}

privateFilechooseFile(){

JFileChooserchooser=newJFileChooser();//构建文件选择器
chooser.setFileFilter(newFileFilter(){
@Override
publicStringgetDescription(){
return"文本文件";
}

@Override
publicbooleanaccept(Filef){
Stringname=f.getName().toLowerCase();

returnf.isDirectory()||name.endsWith(".txt")
||name.endsWith(".c")||name.endsWith(".j**a")
||name.endsWith(".cpp");//可识别文件
}
});
intresult=chooser.showDialog(**ll,"确定");
if(result==JFileChooser.APPROVE_OPTION){
Filefile=chooser.getSelectedFile();
System.out.println(file.getAbsolutePath());
}else{
System.out.println("未选择文件");
}
returnchooser.getSelectedFile();
}

publicstaticvoidread(JTextAreatext,Filefile){//定义读取文件操作
FileReaderfr;
try{
fr=newFileReader(file);
BufferedReaderbr=newBufferedReader(fr);
Stringstring=**ll;
while((string=br.readLine())!=**ll){
text.append(string+"\n");
}
br.close();
fr.close();
}catch(FileNotFoundExceptione){
e.printStackTrace();
}catch(IOExceptione){
e.printStackTrace();
}
}

publicstaticvoidwrite(Stringtxt,StringfileName){
FileWriterfw;
try{
fw=newFileWriter(fileName);
BufferedWriterbw=newBufferedWriter(fw);
bw.write(txt);
bw.flush();
bw.close();
fw.close();
}catch(IOExceptione){
e.printStackTrace();
}
}

}

classTextAreaMe**extendsJTextAreaimplementsMouseListener{

privatestaticfinallongserialVersionUID=-2308615404205560110L;

privateJPopupMe**pop=**ll;//出菜单

privateJMe**ItemselectAll=**ll,copy=**ll,paste=**ll,cut=**ll,cancel=**ll;//功能菜单

publicTextAreaMe**(){
super();
init();
}

privatevoidinit(){
this.addMouseListener(this);
this.setSelectedTextColor(***.red);
pop=newJPopupMe**();
pop.add(selectAll=newJMe**Item("全选"));
pop.add(copy=newJMe**Item("复制"));
pop.add(paste=newJMe**Item("粘贴"));
pop.add(cut=newJMe**Item("剪切"));
pop.add(cancel=newJMe**Item("撤销"));
selectAll.setAccelerator(KeyStroke.getKeyStroke('A',InputEvent.CTRL_MASK));
copy.setAccelerator(KeyStroke.getKeyStroke('C',InputEvent.CTRL_MASK));
paste.setAccelerator(KeyStroke.getKeyStroke('V',InputEvent.CTRL_MASK));
cut.setAccelerator(KeyStroke.getKeyStroke('X',InputEvent.CTRL_MASK));
cancel.setAccelerator(KeyStroke.getKeyStroke('Z',InputEvent.CTRL_MASK));
copy.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
action(e);
}
});
paste.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
action(e);
}
});
cut.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
action(e);
}
});
this.add(pop);
}

/**
*菜单动作
*@parame
*/
publicvoidaction(ActionEvente){
Stringstr=e.getActionCommand();
if(str.equals(selectAll.getText())){//全选
this.selectAll();
}
elseif(str.equals(copy.getText())){//复制
this.copy();
}elseif(str.equals(paste.getText())){//粘贴
this.paste();
}elseif(str.equals(cut.getText())){//剪切
this.cut();
}
elseif(str.equals(cancel.getText())){//撤销
this.cut();
}
}

publicJPopupMe**getPop(){
returnpop;
}

publicvoidsetPop(JPopupMe**pop){
this.pop=pop;
}

/**
*剪切板中是否有文本**可供粘贴
*
*@returntrue为有文本**
*/
publicbooleanisClipboardString(){
booleanb=false;
Clipboardclipboard=this.getToolkit().getSystemClipboard();
Transferablecontent=clipboard.getContents(this);
try{
if(content.getTransferData(DataFl**or.stringFl**or)instanceofString){
b=true;
}
}catch(Exceptione){
}
returnb;
}

/**
*文本组件中是否具备复制的条件
*
*@returntrue为具备
*/
publicbooleanisCanCopy(){
booleanb=false;
intstart=this.getSelectionStart();
intend=this.getSelectionEnd();
if(start!=end)
b=true;
returnb;
}

publicvoidmouseClicked(MouseEvente){
}

publicvoidmouseEntered(MouseEvente){
}

publicvoidmouseExited(MouseEvente){
}

publicvoidmousePressed(MouseEvente){
if(e.getButton()==MouseEvent.BUTTON3){
copy.setEnabled(isCanCopy());
paste.setEnabled(isClipboardString());
cut.setEnabled(isCanCopy());
***.show(this,e.getX(),e.getY());
}
}

publicvoidmouseReleased(MouseEvente){
}

}