Java实训报告
实训项目:小猪吃豆
班级:
指导老师:
一,游戏介绍:
小猪吃豆是一款简单而又经典的小游戏。游戏的玩法就是通过键盘的左右上下按键控制小猪,躲避森林动物的追击,同时把随机产生的小豆吃掉。游戏有初中高三个级别。游戏通过玩家过关所需要的时间来确定排名。
二,设计思路:
1, 一开始,在玩家点击菜单栏的开始按钮后,界面会随机出现一定数量的小豆和一只小猪,同时启动时间线程,计时开始。
2, 界面随机产生一些森林动物,作为小猪的障碍物。森林动物会移动,并紧跟着小猪。
3, 小猪会在玩家的控制下,躲避森林动物,并吃小豆,每吃掉一颗豆,就启动音乐线程,发出声音。
4, 游戏过程会随机出现大力丸,小猪吃掉大力丸后,可以增加功力,与森林动物对抗。大力丸会在一定时间后消失。
5, 游戏还要有一个暂停和继续的功能。
6, 游戏设置有三个级别。障碍物和小豆的个数都不同,用于体现难度的不同。
三,关键问题解决:
1, 游戏当中有几个核心的问题,比如:小豆,小猪,森林动物等物体的随机产生;小猪吃掉小豆,也就是他们的重叠;中途大力丸的出现等等。在老师的帮助下,我知道了Java中有个Random类,可以产生随机数。而判断小猪和小豆或者动物的重叠,也就是“被吃掉”也有相应的判断方法。
2, 有关大力丸部分的问题:在游戏中,小猪吃的大力丸个数不同,对应的功力也不同。而小猪吃掉大力丸之后,功力又恢复。这需要很多的判断。后来,我就是一步步来,用一个一个的if去实现的。
3, 游戏要控制大力丸出现后一定时间后消失。如果使用线程的话,那么游戏的线程太多,会影响到游戏的运行。后来老师建议使用Java的计时器。我参考了Java的帮助文档和网络上的有关资料,对计时器类timer有了一定认识和了解后,成功的将计时器加进了程序当中。
四,心得体会:
在游戏开发的整个过程,我感受最深的就是大力丸实现的部分。因为大力丸是老师要求的最后一个拓展部分,我完成前面部分的时候,曾想过不要增加大力丸,就那样就行了。可后来我觉得还是有时间,可以试试,就自己去试了。才发现,其实大力丸部分的实现也不是很难,还是可以完成的。而且是自己一个人完成的。这让我觉得:在开发过程,不应该还没有开始工作,开始尝试就选择放弃。有些功能,只要能尝试着去开发,最后是可以完成的。不要还没开始就放弃,那样就绝对没有机会完成相关内容。
在这个过程,我参考了很多资料,从老师那里来的,网上来的,还有同学那里。
就拿森林动物靠近小猪这个部分来说,我曾尝试让动物的坐标与小猪的坐标关联,可发现出了很多问题,比如那样子动物的移动就不是一步步移动,而是跳动的,那样不好看。后来我问了一位同学,他说,让动物的坐标靠近小猪的坐标就行了。其实,企业中,不是以个人为单位,而是以团队为单位的。团队的合作在现代企业中显得非常重要。当然,相对应的人与人之间的沟通与协助,也就显得非常重要了。这是个人软实力的体现。
在这个过程,我发现自己对Java的很多知识还很模糊。像游戏中的时间格式问题,
对键盘事件的处理等,都是从老师那里借鉴来的。自己的知识系统还不稳固,在今后的学习当中,要有针对性地加以补习。
Java实训报告
指导老师:夏超群
微机1班
姓名_______
学号_______
20##年3月28日-4月1日
标题:记事本
一.实训目的
1、为了进一步巩固《Java程序设计》课程中所学到的知识,熟练掌握Java各种数据类型和语句,充分领会Java程序设计方法的特点;
2、掌握Java语言编程和程序调试的基本技能,提高运用Java语言解决实 际问题的能力;
3、熟练掌握界面处理。
二.实训内容
1、实训设备与工具:个人计算机,Windows操作系统,Java编译开发环境
2、实训任务:首先创建一个窗体容器,然后为其添加一个主菜单和一个文本区,利用这些菜单项可分别完成文件内容编辑,新建,打开,和保存文件的功能。
3、技术要点:
(1)菜单的结构为:JMenuBar(菜单条) JMenu(主菜单项) JMenuItem(子菜单项)通过调用(MenuObject.add)将主菜单添加到菜单条中。
(2)通过调用窗体的JMenuBar(菜单条对象)方法可将菜单添加到窗体中。
(3)要为菜单添加相应的功能,应对各子菜单项对象增加事件监听器,然后编写相应的事件处理程序。
(4)通过编写:子菜单项.addActioLIstener(this);语句为各子菜单项注册了事件侦听器,然后通过actionPerformed方法中编写Object。
(5)JtextArea对象可用于编辑文本内容,利用其setText()方法可设置在文本区显示的内容,利用其getText()方法可获取文本区的内容。使用时,只需将其加入窗体即可。
(6)为了选择文件,我们使用了JfileChooser类,该类的showOpenDialog()方法用来显示一个文件选择对话框,getSeletedFile()方法用来返回所选文件。
(7)为了写文件,创建了一个FileWriter对象。
三.程序流程图
四.程序清单
import javax.swing.*; //关于图形界面应用的包
import java.awt.*; //导入构建图形用户界面的类包
import java.awt.event.*;
import java.io.*; //导入标准输入/输出包
import javax.swing.undo.*;
import javax.swing.event.*; //都是处理图形界面的包
//创建一个类
class NotePad extends JFrame {
private UndoManager manager;
private JFileChooser choose; //创建文件选择
private File selectedfile;
private JTextArea text; //创建文本区
private java.awt.Container container;
private JMenuBar menuBar; //创建菜单条
private JTextField status;
private boolean newPage = false;
// File菜单
private JMenu menu; //文件主菜单
private JMenuItem newText; //子菜单 新建
private JMenuItem open; //打开
private JCheckBoxMenuItem readOnly; //只读
private JMenuItem save; //保存
private JMenuItem saveAs; //另存为
private JMenuItem exit; //退出
// Edit菜单
private JMenu edit; //
private JMenuItem undo; //撤消
private JMenuItem redo; //重做
private JMenuItem cut; //剪切
private JMenuItem copy; //复制
private JMenuItem copyAll; //复制所有
private JMenuItem paste; //粘贴
private JMenuItem delete; //删除
private JMenuItem deleteAll; //删除所有
private JMenuItem selectAll; //选择所有
private JMenuItem searchAndReplace; //查找与替换
// 视图菜单
private JMenu view;
private JCheckBoxMenuItem wrap; //自动换行
private JCheckBoxMenuItem onTop; //保持窗口在最上
private JMenuItem zoomIn; //放大页面
private JMenuItem zoomOut; //缩小页面
// 工具菜单
private JMenu tool;
private JMenuItem fontSum; //字数统计
private JMenuItem setcolor; //设置背景颜色
private JMenuItem setFontColor; //设置字体颜色
// 帮助菜单
private JMenu help;
private JMenuItem about; //关于
// 右键菜单
private JPopupMenu pop; //弹出式菜单
private JMenuItem popUndo; //撤消
private JMenuItem popRedo; //重做
private JMenuItem popCut; //剪切
private JMenuItem popCopy; //复制
private JMenuItem popSelectAll; //全部选择
private JMenuItem popCopyAll; //全部复制
private JMenuItem popPaste; //粘贴
private JMenuItem popDelete; //删除
private JMenuItem popClear; //清空
public NotePad() { //构造函数,调用父类的构造函数设定标题
super("记事本");
try{
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
}catch(Exception e){}//异常捕捉处理
container = getContentPane();
container.setLayout(new BorderLayout(0,-2));
manager = new UndoManager();
text = new JTextArea();
text.setFont(new Font("宋体",Font.PLAIN,14));
text.getDocument().addUndoableEditListener(manager);
text.setTabSize(2);
text.setSelectedTextColor(Color.WHITE);
text.setSelectionColor(Color.DARK_GRAY);
text.setLineWrap(true);
text.setWrapStyleWord(true);
text.setCaretColor(Color.RED);
text.setMargin(new Insets(3, 10, 3, 7));
text.setDragEnabled(true);
container.add(new JScrollPane(text,JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED));//设置滚动条对象
menuBar = new JMenuBar();
// File菜单
menu = new JMenu("文件(F)");
menu.setMnemonic('F');//设置快捷键
newText = new JMenuItem("新建(N)");
newText.setMnemonic('N');//设置快捷键
newText.addActionListener(new ActionListener() { //注册新建动作监听
public void actionPerformed(ActionEvent event) {
if(selectedfile == null && !text.getText().equals("") &&
JOptionPane.showConfirmDialog(container, "是否保存", "是否保存", JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION){
choose = new JFileChooser();
int state = choose.showSaveDialog(container); //显示保存对话框
if (state == JFileChooser.APPROVE_OPTION) {
try {
File file = choose.getSelectedFile();
FileWriter os = new FileWriter(file);//初始化输入流
os.write(text.getText(), 0, text.getText().length());
os.flush();
file.createNewFile();
os.close();
} catch (IOException e) {//异常捕捉处理
JOptionPane.showMessageDialog(container, "保存文件失败","ERROR", JOptionPane.ERROR_MESSAGE);//显示对话框
}
}
}else if(selectedfile != null &&
JOptionPane.showConfirmDialog(container, "是否保存", "是否保存", JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION){
try {
FileWriter os = new FileWriter(selectedfile);
os.write(text.getText(), 0, text.getText().length());
os.flush();
os.close();
} catch (IOException e) {}//异常捕捉处理
}
text.setText("");
newPage = true;
selectedfile = null;
status.setText("");
}
});
open = new JMenuItem("打开(O)");
open.setMnemonic('O');//设置快捷键
open.addActionListener(new ActionListener() { //注册打开动作监听
public void actionPerformed(ActionEvent event) {
if(selectedfile!=null &&
JOptionPane.showConfirmDialog(container, "是否保存", "是否保存", JOptionPane.YES_NO_OPTION) == JOptionPane.YES_NO_OPTION){
try{
FileWriter os = new FileWriter(selectedfile);
os.write(text.getText(), 0, text.getText().length());
os.flush();
os.close();
newPage = false;
}catch(IOException e){}
}else if(selectedfile==null && !text.getText().equals("") &&
JOptionPane.showConfirmDialog(container, "是否保存", "是否保存", JOptionPane.YES_NO_OPTION) == JOptionPane.YES_NO_OPTION){
choose = new JFileChooser();
int state = choose.showSaveDialog(container);
if (state == JFileChooser.APPROVE_OPTION) {
try {
File file = choose.getSelectedFile();
FileWriter os = new FileWriter(file);
os.write(text.getText(), 0, text.getText().length());
os.flush();
file.createNewFile();
os.close();
newPage = false;
} catch (IOException e) {
JOptionPane.showMessageDialog(container, "保存文件失败",
"ERROR", JOptionPane.ERROR_MESSAGE);
}
}
}
choose = new JFileChooser();
choose.setFileFilter(new filter());
int state = choose.showOpenDialog(container);
if (state == JFileChooser.APPROVE_OPTION) {
status.setText(choose.getSelectedFile().toString());
try {
selectedfile = choose.getSelectedFile();
FileReader isr = new FileReader(selectedfile);
text.read(isr, "");
isr.close();
newPage = false;
} catch (IOException e) {
JOptionPane.showMessageDialog(container, "打开文件失败",
"ERROR", JOptionPane.ERROR_MESSAGE);
}
}
}
});
readOnly = new JCheckBoxMenuItem("只读模式(R)");
readOnly.setMnemonic('R');//设置快捷键
readOnly.addChangeListener(new ChangeListener() {
public void stateChanged(ChangeEvent event) {
if(readOnly.isSelected()){
text.setEditable(false);
cut.setEnabled(false);
paste.setEnabled(false);
delete.setEnabled(false);
deleteAll.setEnabled(false);
redo.setEnabled(false);
undo.setEnabled(false);
searchAndReplace.setEnabled(false);
popClear.setEnabled(false);
popCut.setEnabled(false);
popDelete.setEnabled(false);
popPaste.setEnabled(false);
popRedo.setEnabled(false);
popUndo.setEnabled(false);
}
else{
text.setEditable(true);
cut.setEnabled(true);
paste.setEnabled(true);
delete.setEnabled(true);
deleteAll.setEnabled(true);
redo.setEnabled(true);
undo.setEnabled(true);
searchAndReplace.setEnabled(true);
popClear.setEnabled(true);
popCut.setEnabled(true);
popDelete.setEnabled(true);
popPaste.setEnabled(true);
popRedo.setEnabled(true);
popUndo.setEnabled(true);
}
}
});
save = new JMenuItem("保存(S)");
save.setMnemonic('S');//设置快捷键
save.addActionListener(new ActionListener() { //注册保存动作监听
public void actionPerformed(ActionEvent event) {
if (newPage == true || selectedfile == null) {
choose = new JFileChooser();
int state = choose.showSaveDialog(container);
if (state == JFileChooser.APPROVE_OPTION) {
try {
File file = choose.getSelectedFile();
FileWriter os = new FileWriter(file);
os.write(text.getText(), 0, text.getText().length());
os.flush();
file.createNewFile();
os.close();
newPage = false;
} catch (IOException e) {
JOptionPane.showMessageDialog(container, "保存文件失败","ERROR", JOptionPane.ERROR_MESSAGE);
}
}
} else if(newPage == false && selectedfile != null){
try {
FileWriter os = new FileWriter(selectedfile);
os.write(text.getText(), 0, text.getText().length());
os.flush();
os.close();
} catch (IOException e) {
JOptionPane.showMessageDialog(container, "保存文件失败","ERROR", JOptionPane.ERROR_MESSAGE);
}
}
}
});
saveAs = new JMenuItem("另存为(A)");
saveAs.setMnemonic('A');//设置快捷键
saveAs.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
choose = new JFileChooser();
int state = choose.showSaveDialog(container);
if (state == JFileChooser.APPROVE_OPTION) {
try {
File file = choose.getSelectedFile();
FileWriter os = new FileWriter(file);
os.write(text.getText(), 0, text.getText().length());
os.flush();
file.createNewFile();
os.close();
newPage = false;
} catch (IOException e) {
JOptionPane.showMessageDialog(container, "保存文件失败","ERROR", JOptionPane.ERROR_MESSAGE);
}
}
}
});
exit = new JMenuItem("退出(Q)");
exit.setMnemonic('Q');//设置快捷键
exit.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
System.exit(0);
}
});
menu.add(newText);
menu.add(open);
menu.add(readOnly);
menu.add(save);
menu.add(saveAs);
menu.add(exit);
// Edit菜单
edit = new JMenu("编辑(E)");
edit.setMnemonic('E');//设置快捷键
undo = new JMenuItem("撤销(U)");
undo.setMnemonic('U');//设置快捷键
undo.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
if (manager.canUndo())
manager.undo();
}
});
redo = new JMenuItem("重做(Y)");
redo.setMnemonic('Y');//设置快捷键
redo.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
if (manager.canRedo())
manager.redo();
}
});
cut = new JMenuItem("剪切(X)");
cut.setMnemonic('X');//设置快捷键
cut.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
text.cut();
}
});
copy = new JMenuItem("复制(C)");
copy.setMnemonic('C');//设置快捷键
copy.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
text.copy();
}
});
copyAll = new JMenuItem("复制所有(Z)");
copyAll.setMnemonic('Z');//设置快捷键
copyAll.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
text.selectAll();
text.copy();
}
});
paste = new JMenuItem("粘贴(V)");
paste.setMnemonic('V');//设置快捷键
paste.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
text.paste();
}
});
delete = new JMenuItem("删除(D)");
delete.setMnemonic('D');//设置快捷键
delete.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
text.replaceRange("", text.getSelectionStart(), text
.getSelectionEnd());
}
});
deleteAll = new JMenuItem("删除所有(W)");
deleteAll.setMnemonic('W');//设置快捷键
deleteAll.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
text.replaceRange("", 0, text.getText().length());
}
});
selectAll = new JMenuItem("选择所有(B)");
selectAll.setMnemonic('B');//设置快捷键
selectAll.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
text.selectAll();
}
});
searchAndReplace = new JMenuItem("查找与替换(M)");
searchAndReplace.setMnemonic('M');//设置快捷键
searchAndReplace.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
new Search();
}
});
edit.add(undo);
edit.add(redo);
edit.addSeparator();
edit.add(selectAll);
edit.add(cut);
edit.add(copy);
edit.add(copyAll);
edit.add(paste);
edit.add(delete);
edit.add(deleteAll);
edit.addSeparator();
edit.add(searchAndReplace);
// 视图菜单
view = new JMenu("视图(V)");
view.setMnemonic('V');//设置快捷键
wrap = new JCheckBoxMenuItem("自动换行(J)");
wrap.setSelected(true);
wrap.setMnemonic('J');//设置快捷键
wrap.addChangeListener(new ChangeListener() {
public void stateChanged(ChangeEvent event) {
text.setLineWrap(wrap.isSelected());
}
});
onTop = new JCheckBoxMenuItem("保持窗口在最上");
onTop.addChangeListener(
new ChangeListener(){
public void stateChanged(ChangeEvent event){
keepOnTop(onTop.isSelected());
}
}
);
zoomIn = new JMenuItem("放大页面(I)");
zoomIn.setMnemonic('I');//设置快捷键
zoomIn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
String fontName = text.getFont().getFontName();
int fontSize = text.getFont().getSize();
int style = text.getFont().getStyle();
if (fontSize < 70)
text.setFont(new Font(fontName, style, fontSize + 2));
}
});
zoomOut = new JMenuItem("缩小页面(O)");
zoomOut.setMnemonic('O');//设置快捷键
zoomOut.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
String fontName = text.getFont().getFontName();
int fontSize = text.getFont().getSize();
int style = text.getFont().getStyle();
if (fontSize > 9)
text.setFont(new Font(fontName, style, fontSize - 1));
}
});
view.add(wrap);
view.addSeparator();
view.add(onTop);
view.addSeparator();
view.add(zoomIn);
view.add(zoomOut);
// 工具菜单
tool = new JMenu("工具(T)");
tool.setMnemonic('T');//设置快捷键
fontSum = new JMenuItem("字数统计(L)");
fontSum.setMnemonic('L');//设置快捷键
fontSum.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
String all = text.getText();
int space = 0;// 空格
int letter = 0;// 英文字母
int digit = 0;// 数字
int enter = 0;// 换行
int other = 0;// 其它
int otherLetter = 0;
for (int i = 0; i < all.length(); i++) {
char ch = all.charAt(i);
if (Character.isDigit(ch))
digit++;
else if (Character.isLowerCase(ch)
|| Character.isUpperCase(ch))
letter++;
else if (Character.isLetter(ch))
otherLetter++;
else if (Character.isSpaceChar(ch))
space++;
else if (ch == 10)
enter++;
else
other++;
}
JOptionPane.showMessageDialog(container, "字符个数:\n\n数字:" + digit
+ "\n英文字母:" + letter + "\n其它字母:" + otherLetter
+ "\n空格:" + space + "\n换行:" + enter + "\n其它:" + other,
"字符统计", JOptionPane.INFORMATION_MESSAGE);
}
});
setFontColor = new JMenuItem("设置字体颜色");
setFontColor.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent event){
Color color = JColorChooser.showDialog(container, "字体色选择", Color.BLACK);
text.setForeground(color);
}
}
);
setcolor = new JMenuItem("设置背景色(G)");
setcolor.setMnemonic('G');//设置快捷键
setcolor.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent event){
Color color = JColorChooser.showDialog(container, "背景色选择", Color.WHITE);
text.setBackground(color);
}
}
);
tool.add(fontSum);
//tool.add(setfont);
tool.add(setFontColor);
tool.add(setcolor);
// 帮助菜单
help = new JMenu("帮助(H)");
help.setMnemonic('H');//设置快捷键
about = new JMenuItem("关于(P)");
about.setMnemonic('P');//设置快捷键
about.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
JOptionPane.showMessageDialog(container, "Java记事本", "关于",
JOptionPane.INFORMATION_MESSAGE);
}
});
help.add(about);
menuBar.add(menu);
menuBar.add(edit);
menuBar.add(view);
menuBar.add(tool);
menuBar.add(help);
// popupMenu右键弹出式菜单
pop = new JPopupMenu();
popUndo = new JMenuItem("撤销");
popUndo.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
if (manager.canUndo())
manager.undo();
}
});
popRedo = new JMenuItem("重做");
popRedo.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
if (manager.canRedo())
manager.redo();
}
});
popCut = new JMenuItem("剪切");
popCut.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
text.cut();
}
});
popCopy = new JMenuItem("复制");
popCopy.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
text.copy();
}
});
popSelectAll = new JMenuItem("全部选择");
popSelectAll.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
text.selectAll();
}
});
popCopyAll = new JMenuItem("全部复制");
popCopyAll.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
text.selectAll();
text.copy();
}
});
popPaste = new JMenuItem("粘贴");
popPaste.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
text.paste();
}
});
popDelete = new JMenuItem("删除");
popDelete.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
text.replaceRange("", text.getSelectionStart(), text
.getSelectionEnd());
}
});
popClear = new JMenuItem("清空");
popClear.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
text.setText("");
}
});
//添加组件
pop.add(popUndo);
pop.add(popRedo);
pop.addSeparator();
pop.add(popCut);
pop.add(popCopy);
pop.add(popPaste);
pop.add(popCopyAll);
pop.add(popSelectAll);
pop.add(popDelete);
pop.add(popClear);
text.add(pop);
text.addMouseListener(new MouseAdapter() { //鼠标右键单击事件
public void mouseReleased(MouseEvent event) {
if (event.isPopupTrigger()) {
pop.setVisible(true);
pop.show(text, event.getX(), event.getY());
}
}
});
status = new JTextField();
status.setEditable(false);
container.add(status, BorderLayout.SOUTH);
setSize(730, 660);
// pack();
container.add(menuBar, BorderLayout.NORTH);
Dimension frameSize = getSize();
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
setLocation((screenSize.width - frameSize.width) / 2,
(screenSize.height - frameSize.height) / 2);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String args[]) {
new NotePad();
}
private void keepOnTop(boolean b){
setAlwaysOnTop(b);
}
private class Search extends JFrame {
private JTabbedPane tab;
private Container cont;
// 查找
private JPanel searPanel;
private JTextField searField;
private JButton searButton;
// 替换
private JPanel replPanel;
private JPanel buttonPanel;
private JTextField replField;
private JButton replButton;
private JLabel label;
private JTextField replSear;
public Search() {
super("查找与替换");
cont = getContentPane();
tab = new JTabbedPane(JTabbedPane.TOP);
// 查找
searPanel = new JPanel(new FlowLayout());
searField = new JTextField(15);
searButton = new JButton("查找下一处");
searPanel.add(searField);
searPanel.add(searButton);
searButton.addActionListener(new ActionListener() { //注册查找动作监听
public void actionPerformed(ActionEvent event) { //注册事件侦听器
String searText = searField.getText().trim();
if (searText.equals("")) {
JOptionPane.showMessageDialog(cont, "查找串为空", "提示信息",JOptionPane.INFORMATION_MESSAGE);
} else {
String allText = text.getText();
int start = allText.indexOf(searText, text.getSelectionEnd());
if (start == -1)
JOptionPane.showMessageDialog(container,"已到达文件末尾,没有找到\n" + searText, "提示信息",JOptionPane.INFORMATION_MESSAGE);
else
text.select(start, start + searText.length());
}
}
});
// 替换
replPanel = new JPanel(new GridLayout(3, 1));
buttonPanel = new JPanel(new FlowLayout());
label = new JLabel("替换为");
replField = new JTextField(15);
replSear = new JTextField(15);
replButton = new JButton("替换下一处");
replButton.addActionListener(new ActionListener() { //注册替换动作监听
public void actionPerformed(ActionEvent event) {
String searText = replSear.getText();
if (searText.equals("")) {
JOptionPane.showMessageDialog(cont, "要替换的串为空", "提示信息", JOptionPane.INFORMATION_MESSAGE);
} else {
String allText = text.getText();
int start = allText.indexOf(searText, text.getSelectionEnd());
if (start == -1)
JOptionPane.showMessageDialog(container, "替换完毕","提示信息", JOptionPane.INFORMATION_MESSAGE);
else
text.replaceRange(replField.getText(), start, start + searText.length());
}
}
});
replPanel.add(replSear);
replPanel.add(label);
replPanel.add(replField);
buttonPanel.add(replButton);
JPanel panel = new JPanel(new FlowLayout());
panel.add(replPanel);
panel.add(buttonPanel);
tab.addTab("查找", searPanel);
tab.addTab("替换", panel);
tab.setVisible(true);
cont.add(tab);
pack();
Point paraLoca = container.getLocationOnScreen();
setLocation(paraLoca.y + getSize().width, paraLoca.x
+ getSize().height);
setVisible(true);
setResizable(false);
addWindowListener(new WindowAdapter() {
public void windowClosing() {
dispose();
}
});
}
}
private class filter extends javax.swing.filechooser.FileFilter {
public boolean accept(File file){
String name = file.getName().toLowerCase();
if(name.endsWith(".txt") || name.endsWith(".cmd") ||file.isDirectory() ||
name.endsWith(".sql") || name.endsWith(".properties") || name.endsWith(".java") ||
name.endsWith(".cpp") || name.endsWith(".c") || name.endsWith(".css") ||
name.endsWith(".js") || name.endsWith(".xml") || name.endsWith(".html") ||
name.endsWith(".log"))
return true;
else
return false;
}
public String getDescription(){
return ".txt | .cmd | .sql |.properties | .java | .cpp | .c | .css | .js | .xml | .html |.log";
}
}
}
五.实训小结
了解常用类的属性和方法,我发现在用常用类的时候,经常会把类里面的方法和自定义的方法搞混。通过实训我更加认识到了Java强大的功能,丰富了我的知识,提高运用java语言解决实际问题的能力。
石家庄学院习报告王荣传20xx0502027数学与信息科学系信息与计算科学专业本科一班崔永刚讲师姓名:学号:院系:专业:班级:指导…
Java程序设计实训报告实训名称图书管理系统实训专业计算机应用技术班级学号090443220姓名高宇国指导教师侯丽敏20xx年12…
摘要随着自动化技术的不断发展电子产业对工艺生产的要求越来越高本次实训主要熟悉手工焊锡的常用工具的使用及其与修理手工电烙铁的焊接技术…
辽宁建筑职业学院Java高级应用实训报告课题名称婚庆公司网站专业软件技术班级xxxxxxxxxx学号姓名xxxx指导教师xxx二O…
PINGDINGSHANUNIVERSITYJava专业实训项目报告题目超市管理系统院系软件学院专业年级10级软件工程java工程…
实训报告书课程:Java项目实训专业班级:学生姓名:学号:指导教师:完成日期:重庆电子工程职业学院软件学院目录目录........…
JavaWeb实习报告一、实习目的与任务为了锻炼我们的实践动手能力,提高我们分析问题、解决问题的能力,培养我们的工作意识和团队合作…
辽宁建筑职业学院Java高级应用实训报告课题名称婚庆公司网站专业软件技术班级xxxxxxxxxx学号姓名xxxx指导教师xxx二O…
徐州工程学院管理学院实验报告实验课程名称数据结构与算法实验地点经济管理教学实验中心20xx年3月至20xx年6月专业信息管理与信息…
Java程序设计实训报告实训名称图书管理系统实训专业计算机应用技术班级学号090443220姓名高宇国指导教师侯丽敏20xx年12…
毕业实习实习名称:实习时间:学生姓名:学院名称:专业名称:班级名称:学号:指导教师:20xx03/04-20xx04/05董莹电子…