您的位置:首页 > 编程语言 > Java开发

java程序设计课程 大型实验 - 记事本

2013-02-06 19:51 316 查看
packagej_201126100207;
[code]
importjava.awt.*;
importjava.awt.event.*;
importstaticjava.awt.event.InputEvent.*;
importjava.io.BufferedReader;
importjava.io.BufferedWriter;
importjava.io.File;
importjava.io.FileReader;
importjava.io.FileWriter;
importjava.io.IOException;
importjavax.swing.*;
importjavax.swing.event.*;
importjavax.swing.filechooser.FileFilter;
publicclassJ_201126100207extendsJFrame{
publicfinalstaticStringimagePath="image/";
publicfinalstaticIconNEW24=newImageIcon(imagePath+"New24.gif","new");
publicfinalstaticIconOPEN24=newImageIcon(imagePath+"Open24.gif","open");
publicfinalstaticIconSAVE24=newImageIcon(imagePath+"Save24.gif","save");
//内部成员;
privateJFileChooserchoose;
privateFileselectedFile=null;
privateJTextAreatextarea;
privatebooleannewPage=false;
privateFontfont;
//===========================================================================================================
publicJ_201126100207(Stringtitle){
Containercontent=getContentPane();
setTitle(title);
super.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
JMenuBarmb=newJMenuBar();
setJMenuBar(mb);
//菜单栏标题及内容设置
JMenufileMenu=newJMenu("文件(F)");
mb.add(fileMenu);
fileMenu.setMnemonic('F');
JMenujavaTest=newJMenu("Java上机题目");
mb.add(javaTest);
JMenucommunication=newJMenu("通讯录(C)");
mb.add(communication);
communication.setMnemonic('C');
JMenuhelp=newJMenu("帮助(H)");
mb.add(help);
help.setMnemonic('H');
//文件一栏的菜单
JMenuItemnewItem=newJMenuItem("新建(N)");
fileMenu.add(newItem);
JMenuItemopenItem=newJMenuItem("打开(O)...");
fileMenu.add(openItem);
JMenuItemsaveItem=newJMenuItem("保存(S)");
fileMenu.add(saveItem);
fileMenu.addSeparator();
JMenuItemfontColorItem=newJMenuItem("字体与颜色(F)...");
fileMenu.add(fontColorItem);
fileMenu.addSeparator();
JMenuItemexitItem=newJMenuItem("退出(X)");
fileMenu.add(exitItem);
//Java上机题目一栏的菜单
JMenuItemrepreatItem=newJMenuItem("回文数(H)...");
javaTest.add(repreatItem);
JMenuItemtranslationItem=newJMenuItem("数字与英语互译(T)...");
javaTest.add(translationItem);
JMenuItemcountItem=newJMenuItem("统计英文数据(C)...");
javaTest.add(countItem);
JMenuItemsumItem=newJMenuItem("文本文件求和(M)...");
javaTest.add(sumItem);
//通讯录一栏的菜单
JMenuItemmaintainItem=newJMenuItem("通讯维护(W)...");
communication.add(maintainItem);
communication.addSeparator();
JMenuItemsetupItem=newJMenuItem("通讯录存储文件设置(L)...");
communication.add(setupItem);
JMenuItemaboutItem=newJMenuItem("关于(G)...");
help.add(aboutItem);
//设置textArea:添加滚动条,设置默认字体,及背景颜色
textarea=newJTextArea();
JScrollPanescorl=newJScrollPane(textarea);
content.add(scorl);
//font=newFont("宋体",Font.PLAIN,14);
textarea.setFont(font);
//toolbar组件定义
JToolBartoolBar=newJToolBar();
JButtonnewButton=newJButton(NEW24);
newButton.setToolTipText("新建文件");
JButtonopenButton=newJButton(OPEN24);
openButton.setToolTipText("打开文件");
JButtonsaveButton=newJButton(SAVE24);
saveButton.setToolTipText("保存文件");
toolBar.add(newButton);
toolBar.add(openButton);
toolBar.add(saveButton);
toolBar.setFloatable(false);
JPanelpane=newJPanel();
BorderLayoutbord=newBorderLayout();
pane.setLayout(bord);
pane.add("North",toolBar);
pane.add("Center",scorl);
content.add(pane);
//快捷键设置
newItem.setAccelerator(KeyStroke.getKeyStroke('N',CTRL_DOWN_MASK));
openItem.setAccelerator(KeyStroke.getKeyStroke('O',CTRL_DOWN_MASK));
saveItem.setAccelerator(KeyStroke.getKeyStroke('S',CTRL_DOWN_MASK));
fontColorItem.setAccelerator(KeyStroke.getKeyStroke('F',CTRL_DOWN_MASK));
exitItem.setAccelerator(KeyStroke.getKeyStroke('X',CTRL_DOWN_MASK));
repreatItem.setAccelerator(KeyStroke.getKeyStroke('H',CTRL_DOWN_MASK));
translationItem.setAccelerator(KeyStroke.getKeyStroke('T',CTRL_DOWN_MASK));
countItem.setAccelerator(KeyStroke.getKeyStroke('C',CTRL_DOWN_MASK));
sumItem.setAccelerator(KeyStroke.getKeyStroke('M',CTRL_DOWN_MASK));
maintainItem.setAccelerator(KeyStroke.getKeyStroke('W',CTRL_DOWN_MASK));
setupItem.setAccelerator(KeyStroke.getKeyStroke('L',CTRL_DOWN_MASK));
aboutItem.setAccelerator(KeyStroke.getKeyStroke('G',CTRL_DOWN_MASK));
//===================================================================================================================
//事件处理:
//窗口关闭
addWindowListener(newWindowAdapter(){
@Override
publicvoidwindowClosing(WindowEventevent){
if(selectedFile==null&&textarea.getText().equals("")){
intretuenValue=JOptionPane.showConfirmDialog(null,"确定要退出系统吗?","是否退出",JOptionPane.YES_NO_OPTION);
if(retuenValue==JOptionPane.YES_OPTION){
System.exit(0);
}
}else{
intbtn=JOptionPane.showConfirmDialog(null,"是否保存到"
+selectedFile+"?","是否保存",
JOptionPane.YES_NO_CANCEL_OPTION);
if(btn==JOptionPane.CANCEL_OPTION){
}elseif(btn==JOptionPane.NO_OPTION){
System.exit(0);
}else{
if(selectedFile==null
&&!textarea.getText().equals("")){
choose=newJFileChooser();
intstate=choose.showSaveDialog(J_201126100207.this);
if(state==JFileChooser.APPROVE_OPTION){
try{
Filefile=choose.getSelectedFile();
BufferedWriterbw=newBufferedWriter(
newFileWriter(file));
Stringstr=textarea.getText();
String[]lines=str.split("\n");
for(Stringline:lines){
bw.write(line+"\r\n");
}
bw.flush();
file.createNewFile();
bw.close();
}catch(IOExceptione){
JOptionPane.showConfirmDialog(null,
"保存文件失败!","ERROR",
JOptionPane.ERROR_MESSAGE);
}
}
System.exit(0);
}elseif(selectedFile!=null){
try{
BufferedWriterbw=newBufferedWriter(
newFileWriter(selectedFile));
Stringstr=textarea.getText();
String[]lines=str.split("\n");
for(Stringline:lines){
bw.write(line+"\r\n");
}
bw.flush();
bw.close();
}catch(IOExceptione){
}
System.exit(0);
}
}
}
}
});
//新建按钮
newItem.addActionListener(newActionListener(){
@Override
publicvoidactionPerformed(ActionEvente){
if(selectedFile==null&&textarea.getText().equals("")){
return;
}else{
intbtn=JOptionPane.showConfirmDialog(J_201126100207.this,"是否保存到...?","是否保存",JOptionPane.YES_NO_CANCEL_OPTION);
if(btn==JOptionPane.CANCEL_OPTION){
return;
}elseif(btn==JOptionPane.YES_OPTION){
if(!textarea.getText().equals("")){
JFileChooserchoose=newJFileChooser();
intstate=choose.showSaveDialog(J_201126100207.this);
if(state==JFileChooser.APPROVE_OPTION){
try{
Filefile=choose.getSelectedFile();
BufferedWriterbw=newBufferedWriter(newFileWriter(file));
Stringstr=textarea.getText();
String[]lines=str.split("\n");
for(Stringline:lines){
bw.write(line+"\r\n");
}
bw.flush();
file.createNewFile();
bw.close();
}catch(IOExceptionex){
JOptionPane.showConfirmDialog(J_201126100207.this,
"保存文件失败!","ERROR",
JOptionPane.ERROR_MESSAGE);
}
}
}
}
}
textarea.setText("");//清空textarea中的内容;
}
});
newButton.addActionListener(newActionListener(){
@Override
publicvoidactionPerformed(ActionEvente){
if(selectedFile==null&&textarea.getText().equals("")){
return;
}else{
intbtn=JOptionPane.showConfirmDialog(J_201126100207.this,"是否保存到...?","是否保存",JOptionPane.YES_NO_CANCEL_OPTION);
if(btn==JOptionPane.CANCEL_OPTION){
return;
}elseif(btn==JOptionPane.YES_OPTION){
if(!textarea.getText().equals("")){
choose=newJFileChooser();
intstate=choose.showSaveDialog(J_201126100207.this);
if(state==JFileChooser.APPROVE_OPTION){
try{
Filefile=choose.getSelectedFile();
BufferedWriterbw=newBufferedWriter(newFileWriter(file));
Stringstr=textarea.getText();
String[]lines=str.split("\n");
for(Stringline:lines){
bw.write(line+"\r\n");
}
bw.flush();
file.createNewFile();
bw.close();
}catch(IOExceptionex){
JOptionPane.showConfirmDialog(J_201126100207.this,
"保存文件失败!","ERROR",
JOptionPane.ERROR_MESSAGE);
}
}
}
}
}
textarea.setText("");//清空textarea中的内容;
}
});
//打开按钮
openItem.addActionListener(newActionListener(){
@Override
publicvoidactionPerformed(ActionEvente){
if(selectedFile==null&&textarea.getText().equals("")){
}else{
intbtn=JOptionPane.showConfirmDialog(J_201126100207.this,
"是否保存到...?","是否保存",
JOptionPane.YES_NO_CANCEL_OPTION);
if(btn==JOptionPane.CANCEL_OPTION){
return;
}elseif(btn==JOptionPane.YES_OPTION){
}
}
choose=newJFileChooser();
choose.addChoosableFileFilter(newfileFilter("java"));
choose.addChoosableFileFilter(newfileFilter("txt"));
choose.addChoosableFileFilter(newfileFilter("cpp"));
intstate=choose.showOpenDialog(J_201126100207.this);
if(state==JFileChooser.APPROVE_OPTION){
try{
selectedFile=choose.getSelectedFile();
BufferedReaderbr=newBufferedReader(newFileReader(selectedFile));
textarea.read(br,"");
br.close();
}catch(IOExceptionex){
JOptionPane.showConfirmDialog(J_201126100207.this,
"打开文件失败","error",
JOptionPane.ERROR_MESSAGE);
}
}
}
});
//打开图标
openButton.addActionListener(newActionListener(){
@Override
publicvoidactionPerformed(ActionEvente){
if(selectedFile==null&&textarea.getText().equals("")){
}else{
intbtn=JOptionPane.showConfirmDialog(J_201126100207.this,
"是否保存到...?","是否保存",
JOptionPane.YES_NO_CANCEL_OPTION);
if(btn==JOptionPane.CANCEL_OPTION){
return;
}elseif(btn==JOptionPane.YES_OPTION){
}
}
choose=newJFileChooser();
choose.addChoosableFileFilter(newfileFilter("java"));
choose.addChoosableFileFilter(newfileFilter("txt"));
choose.addChoosableFileFilter(newfileFilter("cpp"));
intstate=choose.showOpenDialog(J_201126100207.this);
if(state==JFileChooser.APPROVE_OPTION){
try{
selectedFile=choose.getSelectedFile();
BufferedReaderbr=newBufferedReader(newFileReader(selectedFile));
textarea.read(br,"");
br.close();
}catch(IOExceptionex){
JOptionPane.showConfirmDialog(J_201126100207.this,
"打开文件失败","error",
JOptionPane.ERROR_MESSAGE);
}
}
}
});
//保存按钮
saveItem.addActionListener(newActionListener(){
@Override
publicvoidactionPerformed(ActionEventevent){
if(newPage==true||selectedFile==null){
choose=newJFileChooser();
intstate=choose.showSaveDialog(J_201126100207.this);
if(state==JFileChooser.APPROVE_OPTION){
try{
Filefile=choose.getSelectedFile();
BufferedWriterbw=newBufferedWriter(
newFileWriter(file));
Stringstr=textarea.getText();
String[]lines=str.split("\n");
for(Stringline:lines){
bw.write(line+"\r\n");
}
bw.flush();
file.createNewFile();
bw.close();
newPage=false;
selectedFile=file;
}catch(IOExceptione){
JOptionPane.showMessageDialog(J_201126100207.this,"保存文件失败",
"ERROR",JOptionPane.ERROR_MESSAGE);
}
}
}elseif(newPage==false&&selectedFile!=null){
try{
BufferedWriterbw=newBufferedWriter(newFileWriter(
selectedFile));
Stringstr=textarea.getText();
String[]lines=str.split("\n");
for(Stringline:lines){
bw.write(line+"\r\n");
}
bw.flush();
bw.close();
newPage=false;
}catch(IOExceptione){
JOptionPane.showMessageDialog(J_201126100207.this,"保存文件失败",
"ERROR",JOptionPane.ERROR_MESSAGE);
}
}
}
});
//保存图标
saveButton.addActionListener(newActionListener(){
@Override
publicvoidactionPerformed(ActionEventevent){
if(newPage==true||selectedFile==null){
choose=newJFileChooser();
intstate=choose.showSaveDialog(J_201126100207.this);
if(state==JFileChooser.APPROVE_OPTION){
try{
Filefile=choose.getSelectedFile();
BufferedWriterbw=newBufferedWriter(
newFileWriter(file));
Stringstr=textarea.getText();
String[]lines=str.split("\n");
for(Stringline:lines){
bw.write(line+"\r\n");
}
bw.flush();
file.createNewFile();
bw.close();
newPage=false;
selectedFile=file;
}catch(IOExceptione){
JOptionPane.showMessageDialog(J_201126100207.this,"保存文件失败",
"ERROR",JOptionPane.ERROR_MESSAGE);
}
}
}elseif(newPage==false&&selectedFile!=null){
try{
BufferedWriterbw=newBufferedWriter(newFileWriter(
selectedFile));
Stringstr=textarea.getText();
String[]lines=str.split("\n");
for(Stringline:lines){
bw.write(line+"\r\n");
}
bw.flush();
bw.close();
newPage=false;
}catch(IOExceptione){
JOptionPane.showMessageDialog(J_201126100207.this,"保存文件失败",
"ERROR",JOptionPane.ERROR_MESSAGE);
}
}
}
});
//字体颜色设置
fontColorItem.addActionListener(newActionListener(){
@Override
publicvoidactionPerformed(ActionEvente){
FontDialogfontdialog=newFontDialog(J_201126100207.this);
}
});
exitItem.addActionListener(newActionListener(){
@Override
publicvoidactionPerformed(ActionEventevent){
if(selectedFile==null&&textarea.getText().equals("")){
intretuenValue=JOptionPane.showConfirmDialog(null,"确定要退出系统吗?","是否退出",JOptionPane.YES_NO_OPTION);
if(retuenValue==JOptionPane.YES_OPTION){
System.exit(0);
}
}else{
intbtn=JOptionPane.showConfirmDialog(null,"是否保存到"
+selectedFile+"?","是否保存",
JOptionPane.YES_NO_CANCEL_OPTION);
if(btn==JOptionPane.CANCEL_OPTION){
return;
}elseif(btn==JOptionPane.NO_OPTION){
System.exit(0);
}else{
if(selectedFile==null
&&!textarea.getText().equals("")){
choose=newJFileChooser();
intstate=choose.showSaveDialog(J_201126100207.this);
if(state==JFileChooser.APPROVE_OPTION){
try{
Filefile=choose.getSelectedFile();
BufferedWriterbw=newBufferedWriter(
newFileWriter(file));
Stringstr=textarea.getText();
String[]lines=str.split("\n");
for(Stringline:lines){
bw.write(line+"\r\n");
}
bw.flush();
file.createNewFile();
bw.close();
}catch(IOExceptione){
JOptionPane.showConfirmDialog(null,
"保存文件失败!","ERROR",
JOptionPane.ERROR_MESSAGE);
}
}
System.exit(0);
}elseif(selectedFile!=null){
try{
BufferedWriterbw=newBufferedWriter(
newFileWriter(selectedFile));
Stringstr=textarea.getText();
String[]lines=str.split("\n");
for(Stringline:lines){
bw.write(line+"\r\n");
}
bw.flush();
bw.close();
}catch(IOExceptione){
}
System.exit(0);
}
}
}
}
});
repreatItem.addActionListener(newActionListener(){
@Override
publicvoidactionPerformed(ActionEventevent){
repreatDialogrepreat=newrepreatDialog(J_201126100207.this);
}
});
translationItem.addActionListener(newActionListener(){
@Override
publicvoidactionPerformed(ActionEventevent){
translateDialogtranslation=newtranslateDialog(J_201126100207.this);
}
});
countItem.addActionListener(newActionListener(){
@Override
publicvoidactionPerformed(ActionEventevent){
countDialogCountDialog=newcountDialog(J_201126100207.this);
}
});
sumItem.addActionListener(newActionListener(){
@Override
publicvoidactionPerformed(ActionEventevent){
sumDialogsum=newsumDialog(J_201126100207.this);
}
});
//关于按钮
aboutItem.addActionListener(newActionListener(){
@Override
publicvoidactionPerformed(ActionEvente){
JOptionPane.showMessageDialog(J_201126100207.this,"Java记事本"+"\n"
+"designedby姜楠\n"+"inZJUT","关于",
JOptionPane.INFORMATION_MESSAGE);
}
});
}
//================================================================================================================
/**
*内部类定义以及实现
*/
privateclassFontDialogextendsJDialogimplementsActionListener,ItemListener{
privateJButtonfontColorButton;
privateJButtonbackGroundButton;
privateJButtonokButton;
privateJButtoncancelButton;
privateStringfontName;
privateintfontSize;
privateFontfont;
privateJComboBoxnameCombo;
privateJComboBoxsizeCombo;
privateJLabelfontDisplay;
publicFontDialog(J_201126100207window){
GridLayoutgrid=newGridLayout(6,2);
setLayout(grid);
setModal(true);
setTitle("设置颜色与字体");
font=textarea.getFont();
fontName=font.getFontName();
fontSize=font.getSize();
//获取所有的字体
GraphicsEnvironmentge=GraphicsEnvironment.getLocalGraphicsEnvironment();
String[]fontNames=ge.getAvailableFontFamilyNames();
nameCombo=newJComboBox(fontNames);
nameCombo.addItemListener(this);
//创建和添加组件到FontDialog
JLabelnameLabel=newJLabel("字体名称");
add(nameLabel);
add(nameCombo);
JLabelsizeLabel=newJLabel("字体大小");
String[]size={"8","10","12","14","16","18","20","22","24","26","28","30","32","34","42","52","62","72"};
sizeCombo=newJComboBox(size);
sizeCombo.addItemListener(this);
add(sizeLabel);
add(sizeCombo);
JLabelfontLabel=newJLabel("字体颜色");
fontColorButton=newJButton("设置...");
fontColorButton.addActionListener(this);
add(fontLabel);
add(fontColorButton);
JLabelbackGroundLabel=newJLabel("背景颜色");
backGroundButton=newJButton("设置...");
backGroundButton.addActionListener(this);
add(backGroundLabel);
add(backGroundButton);
JLabeldisplayLabel=newJLabel("字体预览");
fontDisplay=newJLabel("Java字体预览");
fontDisplay.setFont(font);
JPaneldisplayPanel=newJPanel(true);
displayPanel.setBackground(Color.WHITE);
displayPanel.add(fontDisplay);
add(displayLabel);
add(displayPanel);
okButton=newJButton("确定");
okButton.addActionListener(this);
cancelButton=newJButton("取消");
cancelButton.addActionListener(this);
add(okButton);
add(cancelButton);
setSize(600,300);
setLocationRelativeTo(window);
setVisible(true);
}
@Override
publicvoiditemStateChanged(ItemEvente){
if(e.getStateChange()==ItemEvent.SELECTED){
if(e.getSource()==nameCombo){
fontName=(String)nameCombo.getSelectedItem();
}elseif(e.getSource()==sizeCombo){
fontSize=Integer.parseInt(sizeCombo.getSelectedItem().toString());
}
font=newFont(fontName,font.PLAIN,fontSize);
fontDisplay.setFont(font);
fontDisplay.repaint();
}
}
@Override
publicvoidactionPerformed(ActionEvente){
if(e.getSource()==fontColorButton){
Colorcolor=JColorChooser.showDialog(null,"选择字体颜色",getBackground());
textarea.setForeground(color);
}elseif(e.getSource()==backGroundButton){
Colorcolor=JColorChooser.showDialog(null,"选择背景颜色",getBackground());
textarea.setForeground(color);
}elseif(e.getSource()==okButton){
textarea.setFont(font);//Settheselectedfont
setVisible(false);
}elseif(e.getSource()==cancelButton){
setVisible(false);
}
}
}
//================================================================================================================
privateclassfileFilterextendsFileFilter{
Stringext;
publicfileFilter(Stringext){
this.ext=ext;
}
@Override
publicbooleanaccept(Filefile){
Stringname=file.getName().toLowerCase();
if(name.endsWith(ext)||file.isDirectory()){
returntrue;
}else{
returnfalse;
}
}
@Override
publicStringgetDescription(){
if(ext.equals("java")){
return"*.java";
}elseif(ext.equals("txt")){
return"*.txt";
}elseif(ext.equals("cpp")){
return"*.cpp";
}
return"";
}
}
//================================================================================================================
privateclasscountDialogextendsJDialogimplementsActionListener{
JLabellabel1,label2,label3;
JTextFieldtextField1,textField2,textField3;
JButtonokButton;
JButtoncancelButton;
publiccountDialog(J_201126100207window){
GridLayoutgrid=newGridLayout(4,2);
setLayout(grid);
setModal(true);
setTitle("统计英文数据");
label1=newJLabel("以字母w开头的单词数");
add(label1);
textField1=newJTextField();
textField1.setEditable(false);
add(textField1);
label2=newJLabel("含'or'字符串的单词数");
add(label2);
textField2=newJTextField();
textField2.setEditable(false);
add(textField2);
label3=newJLabel("长度为3的单词数");
add(label3);
textField3=newJTextField();
textField3.setEditable(false);
add(textField3);
JPanelokPanel=newJPanel();
okButton=newJButton("确定");
okPanel.add(okButton);
okButton.addActionListener(this);
this.add(okPanel);
JPanelcancelPanel=newJPanel();
cancelButton=newJButton("退出");
cancelPanel.add(cancelButton);
cancelButton.addActionListener(this);
this.add(cancelPanel);
intbeginWithW=0,includeOr=0,lengthEqualToThree=0;
Stringstr=textarea.getText();
if(!str.equals("")){
String[]lines=str.split("\n");
if(!lines.equals("")){
for(Stringline:lines){
Stringt[]=line.split("");
for(Stringtemp:t){
if(temp.charAt(0)=='W'||temp.charAt(0)=='w'){
beginWithW++;
}
if(temp.indexOf("or")!=-1){
includeOr++;
}
if(temp.length()==3){
lengthEqualToThree++;
}

}
}
}
textField1.setText(String.valueOf(beginWithW));
textField2.setText(String.valueOf(includeOr));
textField3.setText(String.valueOf(lengthEqualToThree));
setSize(400,200);
setLocationRelativeTo(window);
setVisible(true);
}
@Override
publicvoidactionPerformed(ActionEvente){
if(e.getSource()==okButton||e.getSource()==cancelButton){
this.setVisible(false);
}
}
}
privateclasstranslateDialogextendsJDialogimplementsActionListener{
JLabelcinLabel,coutLabel;
JTextFieldcinTextField,coutTextField;
JButtonokButton;
JButtoncancelButton;
Stringx[]={"zero","one","two","three","four","five","six","seven","eight","nine"};
Stringy[]={"ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"};
Stringz[]={"twenty","thirty","fourty","fifty","sixty","seventy","eighty","ninety"};
publictranslateDialog(J_201126100207window){
GridLayoutgrid=newGridLayout(3,2);
setLayout(grid);
setModal(true);
setTitle("数字与英文互译");
cinLabel=newJLabel("请输入一个不大于100的数字或英文:");
add(cinLabel);
cinTextField=newJTextField();
add(cinTextField);
coutLabel=newJLabel("显示翻译结果:");
add(coutLabel);
coutTextField=newJTextField();
coutTextField.setEditable(false);
add(coutTextField);
JPanelokPanel=newJPanel();
okButton=newJButton("确定");
okPanel.add(okButton);
add(okPanel);
okButton.addActionListener(this);
JPanelcancelPanel=newJPanel();
cancelButton=newJButton("取消");
cancelPanel.add(cancelButton);
add(cancelPanel);
cancelButton.addActionListener(this);
setSize(500,150);
setLocationRelativeTo(window);
setVisible(true);
}
@Override
publicvoidactionPerformed(ActionEvente){
if(e.getSource()==okButton){
Stringstr=cinTextField.getText();
Stringtrim=str.trim();
if(trim.equals("")){
JOptionPane.showMessageDialog(translateDialog.this,"未按要求输入,请重新输入",
"错误",JOptionPane.ERROR_MESSAGE);
}else{
if(trim.charAt(0)<='9'&&trim.charAt(0)>='0'){
inttemp=Integer.parseInt(trim);
Strings=null;
if(temp<=9){
s=x[temp];
}
if(temp>=10&&temp<=19){
s=y[temp-10];
}elseif(temp>=20&&temp<=99){
s=z[temp/10-2];
if(temp%10!=0){
s+=""+x[temp%10];
}
}
coutTextField.setText(s);
}
else{
intanswer=0;
String[]part=trim.split("");
for(inti=0;i<part.length;i++){
if(!part[i].equals("")){
for(intj=0;j<x.length;j++){
if(part[i].equals(x[j])){
answer+=j+1;
}
}
for(intj=0;j<y.length;j++){
if(part[i].equals(y[j])){
answer+=j+10;
}
}
for(intj=0;j<z.length;j++){
if(part[i].equals(z[j])){
answer+=(j+2)*10;
}
}
}
}
coutTextField.setText(String.valueOf(answer));
}
}
}elseif(e.getSource()==cancelButton){
this.setVisible(false);
}
}
}
privateclassrepreatDialogextendsJDialogimplementsActionListener{
JLabelcinLabel;
JTextFieldcinTextField;
JButtonjudgeButton;
JButtoncancelButton;
publicrepreatDialog(J_201126100207window){
GridLayoutgrid=newGridLayout(2,2);
setLayout(grid);
setModal(true);
setTitle("回文数");
cinLabel=newJLabel("输入1-99999之间的整数:");
add(cinLabel);
cinTextField=newJTextField();
add(cinTextField);
JPaneljudgePanel=newJPanel();
judgeButton=newJButton("判断是否是回文数?");
judgePanel.add(judgeButton);
add(judgePanel);
judgeButton.addActionListener(this);
JPanelcancelPanel=newJPanel();
cancelButton=newJButton("取消");
cancelPanel.add(cancelButton);
add(cancelPanel);
cancelButton.addActionListener(this);
setSize(400,100);
setLocationRelativeTo(window);
setVisible(true);
}
privatebooleanisLegal(Strings){
if(s.length()>5){
returnfalse;
}else{
for(inti=0;i<s.length();i++){
if(s.charAt(i)>'9'||s.charAt(i)<'0'){
returnfalse;
}
}
}
returntrue;
}
privatebooleanisReverse(Strings){
for(inti=0;i<s.length();i++){
if(s.charAt(i)!=s.charAt(s.length()-1-i)){
returnfalse;
}
}
returntrue;
}
@Override
publicvoidactionPerformed(ActionEvente){
if(e.getSource()==judgeButton){
Stringstr=cinTextField.getText();
if(str.equals("")){
JOptionPane.showMessageDialog(repreatDialog.this,"未按要求输入,请重新输入",
"错误",JOptionPane.ERROR_MESSAGE);
}elseif(isLegal(str)){
if(isReverse(str)){
JOptionPane.showMessageDialog(repreatDialog.this,str+"是回文数",
"确认",JOptionPane.INFORMATION_MESSAGE);
}else{
JOptionPane.showMessageDialog(repreatDialog.this,str+"不是回文数",
"确认",JOptionPane.INFORMATION_MESSAGE);
}
}
cinTextField.setText("");
}elseif(e.getSource()==cancelButton){
this.setVisible(false);
}
}
}
privateclasssumDialogextendsJDialogimplementsActionListener,ChangeListener{
JProgressBarprogressBar;
JLabelsumLabel;
Timertimer;
JButtonokButton;
intvalues=0,number=0,total=0;
String[]lines,temp;
publicsumDialog(J_201126100207window){
GridLayoutgrid=newGridLayout(3,1);
setLayout(grid);
setModal(true);
setTitle("文本文件求和");
sumLabel=newJLabel("",JLabel.CENTER);
this.add(sumLabel);
progressBar=newJProgressBar();
progressBar.setOrientation(JProgressBar.HORIZONTAL);
progressBar.setMinimum(0);
progressBar.setMaximum(100);
progressBar.setValue(0);
progressBar.setStringPainted(true);
progressBar.addChangeListener(this);
progressBar.setPreferredSize(newDimension(200,30));
progressBar.setBorderPainted(true);
this.add(progressBar);
timer=newTimer(5,this);
JPanelokPanel=newJPanel();
okButton=newJButton("开始计算");
okPanel.add(okButton);
add(okPanel);
okButton.addActionListener(this);
setSize(400,200);
setLocationRelativeTo(window);
setVisible(true);
}
@Override
publicvoidactionPerformed(ActionEvente){
if(e.getSource()==okButton){
timer.start();
number=0;
values=0;
Stringstr=textarea.getText();
lines=str.split("\n");
for(inti=0;i<lines.length;i++){
temp=lines[i].split("");
for(intj=0;j<temp.length;j++){
total++;
}
}
for(inti=0;i<lines.length;i++){
for(intj=0;j<temp.length;j++,number++){
if(!temp[j].equals("")){
values+=Integer.parseInt(temp[j]);
}
}
}
}elseif(e.getSource()==timer){
intvalue=progressBar.getValue();
if(value<100){
value=(int)100*number/total;
progressBar.setValue(value);
}else{
timer.stop();
JOptionPane.showMessageDialog(sumDialog.this,Integer.toString(values),
"确认",JOptionPane.INFORMATION_MESSAGE);
progressBar.setValue(0);
}
}
}
@Override
publicvoidstateChanged(ChangeEvente1){
intvalue=progressBar.getValue();
if(e1.getSource()==progressBar){
sumLabel.setText("目前已完成进度:"+Integer.toString(value)+"%");
}
}
}
//================================================================================================================
//窗口居中函数
publicstaticvoidcenterWindow(Windowf){
Toolkittk=f.getToolkit();
Dimensiondm=tk.getScreenSize();
f.setLocation((int)(dm.getWidth()-f.getWidth())/2,(int)(dm.getHeight()-f.getHeight())/2);
}
publicstaticvoidmain(String[]args){
JFramefr=newJ_201126100207("201126100207-姜楠-Java程序设计综合实验");
fr.setSize(1000,500);
centerWindow(fr);
fr.setVisible(true);
}
}

.csharpcode,.csharpcodepre
{
font-size:small;
color:black;
font-family:consolas,"CourierNew",courier,monospace;
background-color:#ffffff;
/*white-space:pre;*/
}
.csharpcodepre{margin:0em;}
.csharpcode.rem{color:#008000;}
.csharpcode.kwrd{color:#0000ff;}
.csharpcode.str{color:#006080;}
.csharpcode.op{color:#0000c0;}
.csharpcode.preproc{color:#cc6633;}
.csharpcode.asp{background-color:#ffff00;}
.csharpcode.html{color:#800000;}
.csharpcode.attr{color:#ff0000;}
.csharpcode.alt
{
background-color:#f4f4f4;
width:100%;
margin:0em;
}
.csharpcode.lnum{color:#606060;}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: