范文网 论文资料 java小游戏实验报告(集锦)

java小游戏实验报告(集锦)

java小游戏实验报告随着国民文化水平的提升,报告在工作与学习方面,已经成为了常见记录方式。报告是有着写作格式与技巧的,写出有效的报告十分重要。下面是小编为大家整理的《java小游戏实验报告》,供需要的小伙伴们查阅,希望能够帮助到大家。第一。

java小游戏实验报告

随着国民文化水平的提升,报告在工作与学习方面,已经成为了常见记录方式。报告是有着写作格式与技巧的,写出有效的报告十分重要。下面是小编为大家整理的《java小游戏实验报告》,供需要的小伙伴们查阅,希望能够帮助到大家。

第一篇:java小游戏实验报告

Java猜拳小游戏程序设计实验报告

Java程序设计实验报告

班级:

学号:

姓名:

实验题目:猜拳小游戏

实验要求:

用java编写一个人机对战的猜拳小游戏。人选择性出拳,电脑随机出拳,判断输赢,记录输赢情况。有简单的操作界面。

实验内容:

1、问题分析过程:

(1)首先分析猜拳游戏本身的玩法:

人选择性出拳,电脑随机出拳,判断输赢,记录输赢情况。 (2)用面向对象的思想来分析:

在游戏过程中有几个对象组成

电脑

游戏规则

抽象出3个类:Person、Computer、Game Person类有哪些属性和行为呢?

属性:名字name,输赢次数(比分)score 行为:出拳ShowFirst()

选择性

Computer类有哪些属性和行为呢?

属性:名字name,输赢次数(比分)score 行为:出拳showFist()

随机

Game类有哪些属性和行为呢?

属性:游戏的双方(person、computer)、对战局数count 行为:产生角色initial()、游戏规则startGame()、显示比赛结果showResult()、统计

比赛结果calcResul()

2、主要实现代码:

import java.util.*; public class StartGame { public static void main(String[]args){

Game start = new Game();//实例化游戏类

start.initial(); //调用初始化方法

start.startGame(); //调用游戏开始方法

start.showResult(); //调用游戏结果显示方法

} } import java.util.*; public class Person { String name;//名字属性

int score;//积分属性

//出拳方法

public int showFist(){

System.out.print(" 请出拳:1.剪刀2.石头3.布(输入相应数字):");

Scanner input = new Scanner(System.in);

int num = input.nextInt();

String fist = "";//保存出拳

switch(num){ case 1:

fist = "剪刀";

break;

case 2:

fist = "石头";

break;

case 3:

fist = "布";

break;

}

System.out.println(name + "出拳:" + fist);

return num; } } import java.util.*; public class Game { //Person person;

//甲方

//Computer computer; //乙方

int count;

//对战次数

Person person = new Person(); //实例化用户类

Computer computer = new Computer(); //实例化计算机类

//初始化方法

public int initial(){

count = 0;

return count; } //游戏开始方法

public void startGame(){

//显示游戏开始界面

System.out.println(" ---------------欢

System.out.println(" ******************************");

System.out.println(" **

^_^ 猜拳,Start ^_^

**");

System.out.println(" *****************************");

界-------------- ");

System.out.println(" 出拳规则:1.剪刀 2.石头 3.布"); //选择计算机角色

System.out.print("请选择对方角色:1.刘备 2.孙权 3.曹操:"); Scanner input = new Scanner(System.in); int num = input.nextInt(); switch(num){ case 1: computer.name = "刘备"; break; case 2: computer.name = "孙权"; break; case 3:

} computer.name = "曹操"; break; //输入用户角色名

System.out.print("请输入你的姓名:"); person.name = input.next();

//显示对战双方

System.out.print(person.name + " VS " + computer.name + " 对战 "); //开始游戏

System.out.print(" 要开始吗?(y/n)"); String con = input.next(); int perFist;//用户出的拳 int compFist;//计算机出的拳

if(con.equals("y")){//判断是否开始

String answer = "y";

while("y".equals(answer)){//循环条件是是否开始下一轮

//出拳

perFist = person.showFist();//调用用户出拳方法

compFist = computer.showFist();//调用计算机出拳方法

//裁决

if((perFist == 1 && compFist == 1) ||

(perFist == 2 && compFist == 2) ||

(perFist == 3 && compFist == 3)){

System.out.println("结果:和局,真衰! "); //平局

}

else if((perFist == 1 && compFist == 3) ||

(perFist == 2 && compFist == 1) ||

(perFist == 3 && compFist == 2)){

System.out.println("结果:恭喜, 你赢了! "); //用户赢

person.score++;

//累计用户积分

}

else{

}

} System.out.println("结果说:^_^,你输了,真笨! ");//计算机赢

computer.score++;

//累计计算机积分 } count++;//累计对战次数

System.out.print("是否开始下一轮(y/n):"); answer = input.next(); }

//比较得分情况的方法 public void showResult(){ System.out.println("-----------------------"); System.out.println(computer.name + " VS " + person.name);

System.out.println("对战次数:" + count); System.out.println(" 姓名 得分 " + person.name + " " + person.score

+ " " + computer.name + " " + computer.score + " ");

//比较积分

if(computer.score == person.score){

System.out.println("结果:打成平手,下次再和你一分高下!");

}

else if(computer.score < person.score){

System.out.println("结果:你果然是高手," + computer.name + "佩服!");

}

else{

System.out.println("结果:呵呵,笨笨,下次加油哦!");

}

System.out.println("-----------------------"); } } public class Computer {

String name;//名字属性 int score;//积分属性 //出拳方法

public int showFist(){ int num = (int)(Math.random()*3) + 1; String fist = ""; switch(num){ case 1:

fist = "剪刀";

break; case 2:

fist = "石头";

break; case 3:

fist = "布";

break;

}

System.out.println(name + "出拳:" + fist);

return num; } } 运行界面:

3、实验心得体会:

从本次课程设计的完成中,我发现我有很多不足的地方,最突出的是所掌握的知识太少,学到的知识应用不到实践中。后来通过看书查找相关资料,完成课程设计任务。

程序设计语言是程序设计的工具,如果想有效的设计程序,正确的应用程序表达算法,必须准确应用程序设计语言;学习程序设计,必须要多读程序,并试着自己编写程序,多上机调试程序代码。

第二篇:JAVA实验报告

河北北方学院信息科学与工程学院

《Java程序设计》

实 验 报 告

实验学期 2014 至 2015 学年 第 2 学期

学生所在系部 信息科学与工程学院 年级 2012 专业班级 电子三班 学生姓名 冯洋 学号 201242220 任课教师 实验成绩

实验七 GUI标准组件及事件处理

一、课程设计目的: 《面向对象程序设计》是一门实践性很强的计算机专业基础课程,课程设计是学习完该课程后进行的一次较全面的综合练习。其目的在于通过实践加深学生对面向对象程序设计的理论、方法和基础知识的理解,掌握使用Java语言进行面向对象设计的基本方法,提高运用面向对象知识分析实际问题、解决实际问题的能力,提高学生的应用能力。

二、实验要求:

设计一个简单的文本编辑器,具有如下基本功能: 1)所见即所得的文本输入;

2)能方便地选中文本、复制、删除和插入文本; 3)具有一般编辑器所具有的查找和替换功能;

4)简单的排版,如设置字体和字号等。

三、课程设计说明:

1、需求分析:简单文本编辑器提供给用户基本的纯文本编辑功能,能够将用户录入的文本存储到本地磁盘中。能够读取磁盘中现有的纯文本文件,以及方便用户进行需要的编辑功能。文件操作能够实现新建、保存、打开文档等,编辑操作能过实现文本的剪贴、复制、粘贴等,格式操作能过实现字体设置、背景等,帮助操作能够实现关于主题的查看等功能

2、概要设计:

(一)其基本功能包括:

① 基本的文本操作功能。包括新建,保存,打开,保存。

② 基本的编辑功能。包括复制,剪贴,粘贴。 ③ 基本的格式功能,字体。 ④ 简单的帮助,关于主题。

(二)主要的组件包括:

① 基本的Frame框架; ② 菜单;

③ 打开文件对话框; ④ 保存文件对话框; ⑤ 颜色对话框; ⑥ 简单的帮助框架。

3、程序说明:

整个记事本分成:Jframe程序主体框架,Jmenu菜单栏、JtextArea文本输入区、PopupMenu右键菜单、JscrollPane滚动条、FonDialog字体类等。

本程序中首先定义一个Java Yang类继承JFrame作为最底层容器。 要想记事本完成需求分析中相应的功能,还必须添加事件监听器。事件监听器不仅要添加在菜单栏和内容输入区,还需加在容器中。本程序中ActListener实现了ActionListener接口,用来监听并处理所有菜单项和内容输入区为事件源的事件。 另外,还用来WindowListener来监听处理容器关闭触发的事件,WindowListener继承了WindowsAdapter类并覆盖了WindowsClosing方法。

四、程序调试:

1、调试分析:

(1)关于打开、保存和退出我运用了文件对话框, openFileDialog、saveFileDialog和System.exit()以及文件输入输出流来实现,新建功能我选用了 textArea.setText()方法. (2)对于剪贴,粘贴,复制的实现则用 复制

String text = textArea.getSelectedText(); StringSelection selection= new StringSelection(text); clipboard.setContents(selection,null); 粘贴

Transferable contents = clipboard.getContents(this); if(contents==null) return; String text; text=""; try { text = (String)contents.getTransferData(DataFlavor.stringFlavor); } catch(Exception ex) { } textArea.replaceRange(text,textArea.getSelectionStart(),textArea.getSelectionEnd()); (3)至于字体功能的实现,则是新建了一个字体类,在这个类中设置了字形,字体以及大小并且有字体样式可预览用户当前的设置。FlowLayout()设置布局,setSize()设置大小add()添加需要用的原件。

添加监听器获取选择用户的字号大小

public void itemStateChanged(ItemEvent event) { size = (new Integer((String) event.getItem()).intValue()); setCustomFont(new Font(name, type, size));} 设置字体

private void setCustomFont(Font customFont) { this.customFont = customFont; area.setFont(customFont); area.revalidate();} 获取字体

public Font getCustomFont() { return (this.customFont);}

附录:源代码

//记事本主体类 import java.awt.event.*; import java.awt.*; import java.io.*; import java.awt.datatransfer.*; import javax.swing.*;

import java.awt.print.PrinterException;

public class MiniNote extends JFrame implements ActionListener {

JMenuBar menuBar = new JMenuBar(); JMenu file = new JMenu("文件(F)"), //菜单 edit = new JMenu("编辑(E)"), format = new JMenu("格式(O)"), view = new JMenu("查看(V)"), help = new JMenu("帮助(H)");

JMenuItem[] menuItem ={ //菜单下拉项 new JMenuItem("新建(N)"), new JMenuItem("打开(O)"), new JMenuItem("保存(S)"), new JMenuItem("打印(P)"), new JMenuItem("全选(A)"), new JMenuItem("复制(C)"), new JMenuItem("剪切(T)"), new JMenuItem("粘贴(P)"), new JMenuItem("自动换行(W)"), new JMenuItem("字体(F)"), new JMenuItem("状态栏(S)"), new JMenuItem("帮助主题(H)"), new JMenuItem("关于记事本(A)"), new JMenuItem("页面设置(U)"), new JMenuItem("退出(X)"), new JMenuItem("查找(F)"), new JMenuItem("查找下一个(N)"), new JMenuItem("替换(R)") };

JPopupMenu popupMenu = new JPopupMenu(); ;//右键菜单 JMenuItem [] menuItem1 ={ new JMenuItem("撤销(Z)"), new JMenuItem("剪切(X)"), new JMenuItem("复制(C)"), new JMenuItem("粘贴(V)"), new JMenuItem("删除(D)"), new JMenuItem("全选(A)"), };

private JTextArea textArea ; //文本区域 private JScrollPane js ; //滚动条 private JPanel jp ; private FileDialog openFileDialog ; //打开保存对话框 private FileDialog saveFileDialog ; private Toolkit toolKit; //获取默认工具包。 private Clipboard clipboard; //获取系统剪切板 private String fileName; //设置默认的文件名

/** * MiniEdit 方法定义 * * 实现记事本初始化 * **/ public MiniNote() {

fileName = "无标题"; toolKit = Toolkit.getDefaultToolkit(); clipboard = toolKit.getSystemClipboard(); textArea =new JTextArea(); js = new JScrollPane(textArea); jp = new JPanel(); openFileDialog = new FileDialog(this,"打开",FileDialog.LOAD); saveFileDialog = new FileDialog(this,"另存为",FileDialog.SAVE);

js.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); jp.setLayout(new GridLayout(1,1)); jp.add(js); textArea.setComponentPopupMenu(popupMenu); //文本区域添加右键 textArea.add(popupMenu); add(jp); setTitle("迷你记事本"); setFont(new Font("Times New Roman",Font.PLAIN,15)); setBackground(Color.white); setSize(800,600); setJMenuBar(menuBar); menuBar.add(file); menuBar.add(edit); menuBar.add(format); menuBar.add(view); menuBar.add(help); for(int i=0;i<4;i++) { file.add(menuItem[i]); edit.add(menuItem[i+4]); } for(int i=0;i<3;++i) { edit.add(menuItem[i+15]); } for(int i=0;i<2;++i) { format.add(menuItem[i+8]); help.add(menuItem[i+11]); } view.add(menuItem[10]); file.add(menuItem[14]); for(int i=0; i<6;++i) { popupMenu.add(menuItem1[i]); }

//窗口监听

addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){ e.getWindow().dispose(); System.exit(0); } }); //注册各个菜单项的事件监听器

for(int i=0;i

Object eventSource = e.getSource(); if(eventSource == menuItem[0]) //新建动作 { textArea.setText(""); } else if(eventSource == menuItem[1])//打开动作 { openFileDialog.setVisible(true); fileName = openFileDialog.getDirectory()+openFileDialog.getFile(); if(fileName != null) { openFile(fileName); } } else if(eventSource ==menuItem[2])//保存动作 { saveFileDialog.setVisible(true); fileName = saveFileDialog.getDirectory()+saveFileDialog.getFile(); if(fileName !=null) { writeFile(fileName); } } else if(eventSource==menuItem[14])//退出动作 { System.exit(0); } else if(eventSource == menuItem[4]||eventSource == menuItem1[5]) //全选动作 { textArea.selectAll(); } else if(eventSource == menuItem[5]||eventSource == menuItem1[2]) //复制动作 { String text = textArea.getSelectedText(); StringSelection selection= new StringSelection(text); clipboard.setContents(selection,null); } else if(eventSource == menuItem[6]||eventSource == menuItem1[1])//剪切动作 { String text = textArea.getSelectedText(); StringSelection selection = new StringSelection(text); clipboard.setContents(selection,null); textArea.replaceRange("", textArea.getSelectionStart(), textArea.getSelectionEnd()); }

else if(eventSource == menuItem[7]||eventSource == menuItem1[3])//粘贴动作 { Transferable contents = clipboard.getContents(this); if(contents==null) return; String text; text=""; try { text = (String)contents.getTransferData(DataFlavor.stringFlavor); } catch(Exception ex) {

} textArea.replaceRange(text, textArea.getSelectionStart(),textArea.getSelectionEnd()); } else if(eventSource == menuItem[8]) //自动换行 { if (textArea.getLineWrap()) textArea.setLineWrap(false); else textArea.setLineWrap(true);

} else if(eventSource == menuItem[9]) //字体 {//实例化字体类

FontDialog fontdialog = new FontDialog(new JFrame(),"字体",true); textArea.setFont(fontdialog.showFontDialog()); //设置字体 }

else if(eventSource == menuItem[11]) //帮助 { try { String filePath = "C:/WINDOWS/Help/notepad.hlp"; Runtime.getRuntime().exec("cmd.exe /c "+filePath); } catch(Exception ee) { JOptionPane.showMessageDialog(this,"打开系统的记事本帮助文件出错!","错误信息",JOptionPane.INFORMATION_MESSAGE); } } else if(eventSource == menuItem[12]) //关于记事本 { String help = "记事本 版本1.0 操作系统:WIN 8 编译器:eclipse 版权" + "所有: ESTON YANG 最终解释权归本人所有" + "" + " Build By 冯洋" + " 课程设计:JAVA"; JOptionPane.showConfirmDialog(null, help, "关于记事本", JOptionPane.DEFAULT_OPTION, JOptionPane.INFORMATION_MESSAGE);

} else if(eventSource == menuItem[15]||eventSource == menuItem[16]) //查找下一个 { search();

} else if(eventSource == menuItem[17]) //替换 { substitude(); } else if(eventSource == menuItem[3]) //打印 { try { textArea.print(); } catch (PrinterException e1) { e1.printStackTrace(); }

} } /** * openFile方法 * * 从TXT读进数据到记事本 * **/ public void openFile(String fileName){

try {

File file = new File(fileName); FileReader readIn = new FileReader(file); int size = (int)file.length(); int charsRead = 0; char[] content = new char[size]; while(readIn.ready()) { charsRead += readIn.read(content,charsRead,size-charsRead); } readIn.close(); textArea.setText(new String(content,0,charsRead)); } catch(Exception e) { System.out.println("Error opening file!"); } } /** * saveFile方法 * * 从记事本写进数据到TXT * **/ public void writeFile(String fileName){ try { File file = new File(fileName); FileWriter write = new FileWriter(file); write.write(textArea.getText()); write.close(); } catch(Exception e) { System.out.println("Error closing file!"); } } /** * substitude方法 * * 实现替换功能 * */ public void substitude() {

final JDialog findDialog = new JDialog(this, "查找与替换", true); Container con = findDialog.getContentPane(); con.setLayout(new FlowLayout(FlowLayout.LEFT)); JLabel searchContentLabel = new JLabel("查找内容(N) :"); JLabel replaceContentLabel = new JLabel("替换为(P) :"); final JTextField findText = new JTextField(30); final JTextField replaceText = new JTextField(30); final JCheckBox matchcase = new JCheckBox("区分大小写(C)"); ButtonGroup bGroup = new ButtonGroup(); final JRadioButton up = new JRadioButton("向上(U)"); final JRadioButton down = new JRadioButton("向下(D)"); down.setSelected(true); //默认向下搜索

bGroup.add(up); bGroup.add(down);

JButton searchNext = new JButton("查找下一个(F)"); JButton replace = new JButton("替换(R)"); final JButton replaceAll = new JButton("全部替换(A)");

//"替换"按钮的事件处理

replace.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { if (replaceText.getText().length() == 0 && textArea.getSelectedText() != null)

textArea.replaceSelection(""); if (replaceText.getText().length() > 0 && textArea.getSelectedText() != null)

textArea.replaceSelection(replaceText.getText()); } });

//"替换全部"按钮的事件处理

replaceAll.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { textArea.setCaretPosition(0); //将光标放到编辑区开头 int a = 0, b = 0, replaceCount = 0; if (findText.getText().length() == 0) { JOptionPane.showMessageDialog(findDialog, "请填写查找内容!", "提示",JOptionPane.WARNING_MESSAGE); findText.requestFocus(true); return; } while (a > -1) { int FindStartPos = textArea.getCaretPosition();//获取光标位置

String str1, str2, str3, str4, strA, strB; str1 = textArea.getText(); str2 = str1.toLowerCase(); str3 = findText.getText(); str4 = str3.toLowerCase(); if (matchcase.isSelected()) //大小写区分 { strA = str1; strB = str3; } else { strA = str2; strB = str4; }

if (up.isSelected()) //向上搜索

{ if (textArea.getSelectedText() == null) { a = strA.lastIndexOf(strB, FindStartPos1); } } else //向下搜索

{ if (textArea.getSelectedText() == null) { a = strA.indexOf(strB, FindStartPos);

} else { a = strA.indexOf(strB, FindStartPos- findText.getText().length() + 1); } }

if (a > -1) { if (up.isSelected()) {

textArea.setCaretPosition(a); b = findText.getText().length(); textArea.select(a, a + b); } else if (down.isSelected()) {

textArea.setCaretPosition(a); b = findText.getText().length(); textArea.select(a, a + b); } } else { if (replaceCount == 0) { JOptionPane.showMessageDialog(findDialog,"找不到您查找的内容!", "记事本",JOptionPane.INFORMATION_MESSAGE); } else { JOptionPane.showMessageDialog(findDialog, "成功替换"+ replaceCount + "个匹配内容!", "替换成功",JOptionPane.INFORMATION_MESSAGE); } } if (replaceText.getText().length() == 0&& textArea.getSelectedText() != null) //用空字符代替选定内容

{

textArea.replaceSelection(""); replaceCount++; } if (replaceText.getText().length() > 0&& textArea.getSelectedText() != null) //用指定字符代替选定内容 {

textArea.replaceSelection(replaceText.getText()); replaceCount++; } }//end while } });

//"查找下一个"按钮事件处理

searchNext.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) { int a = 0, b = 0; int FindStartPos = textArea.getCaretPosition(); String str1, str2, str3, str4, strA, strB; str1 = textArea.getText(); str2 = str1.toLowerCase(); str3 = findText.getText(); str4 = str3.toLowerCase();

//"区分大小写"的CheckBox被选中

if (matchcase.isSelected()) //区分大小写

{ strA = str1; strB = str3; } else //不区分大小写 { strA = str2; strB = str4; } if (up.isSelected()) //向上搜索

{ if (textArea.getSelectedText() == null) {

a = strA.lastIndexOf(strB, FindStartPosfindText.getText().length()findText.getText().length() + 1); } } if (a > -1) { if (up.isSelected()) {

textArea.setCaretPosition(a); b = findText.getText().length(); textArea.select(a, a + b); } else if (down.isSelected()) {

textArea.setCaretPosition(a); b = findText.getText().length(); textArea.select(a, a + b); } } else { JOptionPane.showMessageDialog(null, "找不到您查找的内容!", "记事本", JOptionPane.INFORMATION_MESSAGE); } } });

//"取消"按钮及事件处理

JButton cancel = new JButton("取消"); cancel.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { findDialog.dispose(); } }); //创建"查找与替换"对话框的界面

JPanel bottomPanel = new JPanel(); JPanel centerPanel = new JPanel(); JPanel topPanel = new JPanel(); JPanel direction = new JPanel();

direction.setBorder(BorderFactory.createTitledBorder("方向")); direction.add(up); direction.add(down);

JPanel replacePanel = new JPanel(); replacePanel.setLayout(new GridLayout(1, 2)); replacePanel.add(searchNext); replacePanel.add(replace); replacePanel.add(replaceAll); replacePanel.add(cancel);

topPanel.add(searchContentLabel); topPanel.add(findText);

centerPanel.add(replaceContentLabel); centerPanel.add(replaceText); centerPanel.add(replacePanel);

bottomPanel.add(matchcase); bottomPanel.add(direction);

con.add(replacePanel); con.add(topPanel); con.add(centerPanel); con.add(bottomPanel);

//设置"查找与替换"对话框的大小、可更改大小(否)、位置和可见性

findDialog.setSize(550, 240); findDialog.setResizable(true); findDialog.setLocation(230, 280); findDialog.setVisible(true); }//方法mySearch()结束 /** * search方法 * * 实现查找功能 * */ public void search() {

final JDialog findDialog = new JDialog(this, "查找下一个", true); Container con = findDialog.getContentPane(); con.setLayout(new FlowLayout(FlowLayout.LEFT)); JLabel searchContentLabel = new JLabel(" 查找内容(N) :");

final JTextField findText = new JTextField(17); final JCheckBox matchcase = new JCheckBox("区分大小写(C)"); ButtonGroup bGroup = new ButtonGroup(); final JRadioButton up = new JRadioButton("向上(U)"); final JRadioButton down = new JRadioButton("向下(D)"); down.setSelected(true); //默认向下搜索

bGroup.add(up); bGroup.add(down);

JButton searchNext = new JButton("查找下一个(F)");

//"查找下一个"按钮事件处理

searchNext.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) { int a = 0, b = 0; int FindStartPos = textArea.getCaretPosition(); String str1, str2, str3, str4, strA, strB; str1 = textArea.getText(); str2 = str1.toLowerCase(); str3 = findText.getText(); str4 = str3.toLowerCase();

//"区分大小写"的CheckBox被选中

if (matchcase.isSelected()) //不区分大小写

{ strA = str1; strB = str3; } else //区分大小写 { strA = str2; strB = str4; } if (up.isSelected()) //向上搜索

{ if (textArea.getSelectedText() == null) {

a = strA.lastIndexOf(strB, FindStartPosfindText.getText().length()findText.getText().length() + 1); } } if (a > -1) { if (up.isSelected()) {

textArea.setCaretPosition(a); b = findText.getText().length(); textArea.select(a, a + b); } else if (down.isSelected()) {

textArea.setCaretPosition(a); b = findText.getText().length(); textArea.select(a, a + b); } } else { JOptionPane.showMessageDialog(null, "找不到您查找的内容!", "记事本", JOptionPane.INFORMATION_MESSAGE); } } });

//"取消"按钮及事件处理

JButton cancel = new JButton(" 取消 "); cancel.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { findDialog.dispose(); } }); //创建"替换"对话框的界面

JPanel bottomPanel = new JPanel(); JPanel centerPanel = new JPanel(); JPanel topPanel = new JPanel(); JPanel direction = new JPanel(); direction.setBorder(BorderFactory.createTitledBorder("方向")); direction.add(up); direction.add(down); topPanel.add(searchContentLabel); topPanel.add(findText); topPanel.add(searchNext); bottomPanel.add(matchcase); bottomPanel.add(direction); bottomPanel.add(cancel); con.add(topPanel); con.add(centerPanel); con.add(bottomPanel); //设置"替换"对话框的大小、可更改大小(否)、位置和可见性

findDialog.setSize(425, 200); findDialog.setResizable(true); findDialog.setLocation(230, 280); findDialog.setVisible(true); }

/** * 主函数 * * * **/ public static void main(String[] args) {

MiniNote note = new MiniNote(); note.setVisible(true); }

} //字体类

import java.awt.Font; import java.awt.GraphicsEnvironment; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; import java.awt.*; import javax.swing.*; import java.awt.event.*; import javax.swing.border.*; import java.util.*; public class FontDialog {

private Dialog fontdialog; private JButton okButton, cancelButton; private int width = 480; private int height = 250; private String name = "Serif"; private int type = 0; private int size = 12; private Font customFont = new Font("宋体", Font.ITALIC, 12); private boolean okpressed = false; private boolean cancelpressed = false; private JLabel lbl1 = new JLabel("字体:"); private JLabel lbl2 = new JLabel("字形:"); private JLabel lbl3 = new JLabel("大小:"); private JTextArea area; String[] zx = { "常规", "加粗", "斜体", "基线" }; String[] dx = {"8" , "9" , "10", "12", "14", "15", "16", "18",

"20", "21", "22", "24", "26", "28", "30", "36",

"48", "54","72" , "89"}; JLabel lbl = new JLabel("字体样式Style"); private JComboBox cb1, cb3 = new JComboBox(dx), cb2 = new JComboBox(zx); private String[] zt;

public FontDialog(Frame owner, String title, boolean modal) {

init(); fontdialog = new Dialog(owner, title, modal); fontdialog.setLocation(owner.getLocation()); fontdialog.setLayout(new FlowLayout()); fontdialog.setSize(getWidth(), getHeight()); fontdialog.add(lbl1); fontdialog.add(cb1); fontdialog.add(lbl2); fontdialog.add(cb2); fontdialog.add(lbl3); fontdialog.add(cb3); fontdialog.add(okButton); fontdialog.add(cancelButton); fontdialog.add(area); fontdialog.setResizable(false); fontdialog.setAlwaysOnTop(true); cancelButton.addActionListener(new fontListener()); okButton.addActionListener(new fontListener()); fontdialog.addWindowListener(new fontListener());

cb1.addItemListener(new ItemListener() { // public void itemStateChanged(ItemEvent event) { //获取选择用户的字体类型

name = (String) event.getItem(); setCustomFont(new Font(name, type, size)); } });

cb2.addItemListener(new ItemListener() { // public void itemStateChanged(ItemEvent event) { //获取选择用户的字形

String s = (String) event.getItem(); if (s.equals("常规")) { type = Font.PLAIN; setCustomFont(new Font(name, type, size)); } else if (s.equals("加粗")) { type = Font.BOLD;

字体动作 添加监听器字形动作 添加监听器 setCustomFont(new Font(name, type, size)); } else if (s.equals("斜体")) { type = Font.ITALIC; setCustomFont(new Font(name, type, size)); } else { type = Font.CENTER_BASELINE; setCustomFont(new Font(name, type, size)); } } });

cb3.addItemListener(new ItemListener() { //大小动作 public void itemStateChanged(ItemEvent event) { //添加监听器获取选择用户的字号大小

size = (new Integer((String) event.getItem()).intValue()); setCustomFont(new Font(name, type, size)); } });

}

public Font showFontDialog() { fontdialog.setVisible(true); if (okpressed) { return getCustomFont(); } else { return customFont; } }

private void init() { //初始化 okButton = new JButton("确定"); cancelButton = new JButton("取消"); GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment(); zt = ge.getAvailableFontFamilyNames(); cb1 = new JComboBox(zt); cb1.setMaximumRowCount(6); area = new JTextArea(6, 30); cb3 = new JComboBox(dx); cb3.setMaximumRowCount(6); okButton.setFocusable(true); area.setEditable(false); area.setText(new Date().toString()); area.setBorder(new TitledBorder("字体样式")); }

public void setWidth(int width) { this.width = width; }

public void setHeight(int height) { this.height = height; }

private int getWidth() { return (this.width); }

private int getHeight() { return (this.height); }

private void setCustomFont(Font customFont) //{ this.customFont = customFont; area.setFont(customFont); area.revalidate(); }

public String toString() { return FontDialog.class.toString(); }

设置字体 public Font getCustomFont() //获取字体 { return (this.customFont); }

private class fontListener extends WindowAdapter implements ActionListener //监听事件类 { public void windowClosing(WindowEvent e) { fontdialog.dispose(); }

public void actionPerformed(ActionEvent e) { if (e.getSource() == cancelButton) { fontdialog.dispose(); cancelpressed = true; } else if (e.getSource() == okButton) { okpressed = true; setCustomFont(new Font(name, type, size)); fontdialog.dispose(); } } } }

第三篇:Java上机实验报告

Homework3实验报告

一、实验目的与要求

1、掌握Java中类和接口的基本知识;

2、继承的基本知识;

3、集合的基本操作

二、实验内容 1.PIMCollection 类

创建一个可以管理PIMEntities实体的集合,该类实现了Collection接口,且必须实现了以下方法: (1).getNotes(); 返回PIMCollection中所有的PIMNote项,如果不包含PIMNote项,则返回一个空集合

(2).getTodos(); 返回集合PIMCollection中所有的PIMTodo项,如果不包含PIMTodo项,则返回一个空集合

(3).getAppointment(); 返回集合PIMCollection中所有的PIMAppointment项,如果不包含PIMAppointment项。则返回一个空集合 (4).getContacts(); 返回结合PIMCollection中所有的PIMContact项,如果不包含PIMContact项,则返回一个空集合

(5).getItemsForDate(Date d); 返回集合PIMCollection中所有与d匹配的PIMEntities,如果没有匹配d的项,

则返回一个空集合

(只有PIMTodo和PIMAppointment项,因为PIMNote和PIMContact跟日期没有关系)。

2.TestPIMCollection类(自己的测试类)

向PIMCollection集合类中加入了一些PIMEntity实体类,并用PIMCollection类中实现的方法分别筛选出了其中的PIMNote、PIMTodo、PIMAppointment、PIMContact、符合指定日期d的集合并打印输出。

三、实验器材

计算机+windows操作系统+eclipse

四、实验步骤

1.程序源代码(压缩在文件夹里) 2.编译执行程序 3.记录执行结果

五、实验结果

1.TestPIMCollection的测试代码:

2.程序的执行结果:

如图所示:程序分别输出了Todo、Note、Appointment、Contact、以及匹配指定日期的结合的结果。

六、实验小结

1、熟悉了Java集合的基本内容和操作,也包括了泛型的一些知识。

2、通过这个实验巩固了java的基础知识:类和接口的有关知识,继承的应用。

3、掌握了在eclipse下编译执行Java程序的知识。

4、通过几次的编程,熟悉了java的编程规则。

5、综合应用所学知识完成java程序的分析、设计、调试和总结,为以后编写更复杂的java程序打下了很好的基础。

第四篇:JAVA实验报告(1)

实验报告

一、 实验目的

巩固复习课上所讲内容,进一步熟悉面向对象编程。

二、 实验内容

编写程序求点到原点的距离

三、 程序清单及运行结果

abstractclass Distance

{

abstract int distance();

}

public class Point{

public double x,y;

public Point(double i,double j){

x=i;

y=j;

}

public double distance(){

return Math.sqrt(x*x+y*y);

}

public static void main(String args[]){

Point p=new Point(1,1);

System.out.println("p.distance()="+p.distance());p=new Point3d(1,1,1);

System.out.println("p.distance()="+p.distance());}

}

class Point3d extends Point{

public double z;

public Point3d (double i,double j,double k){

super(i,j);

z=k;

}

public double distance(){

return Math.sqrt(x*x+y*y+z*z);

}

}

运行结果:

p.distance()=1.4142135623730951

p.distance()=1.732050807568877

2四、 实验中出现的问题及解决方法

本次实验比较简单,没有出现较大的问题。

五、 实验总结

通过本次实验,可以很好的将老师上课讲授的内容进行回顾,更深刻的理解面向对象编程,对以后的学习有很大帮助。实验中需要注意的问题是方法重载的相关概念以及明晰方法重载与方法重写的异同点;对super关键字的正确使用。

第五篇:Java程序设计实验报告

实验一

实验题目:从键盘上读入10个字符串存入数组a中,然后输出这10个字符串中最大字符串和最小字符串。

实验代码:

public class StrPro {

public static void main(String[] args) {

String str[] = new String[5]; System.out.println("Please input 10 strings:"); int i; String max,min; for(i=0;i<5;i++){

} max = str[0]; min = str[0]; for(i=0;i

}

}

} } if(min.compareTo(str[i])>0){ } min = str[i]; System.out.println("最大的字符串为:"+max); System.out.println("最小的字符串为:"+min); 实验结果:

实验心得体会:

掌握了java的基本语法,数组的定义与使用,做这个实验要了解字符串数组的定义及字符串数组的输入方法,还有比较字符串数组的大小的调用方法等。

实验二

实验题目:

自定义一个矩形类(Rectangle),包含的属性有:长(length),宽(width),包含的方法有:关于属性的setter和getter方法,即setLength,getLength,setWidth,getWidth,计算矩形面积的方法(getArea)。

定义矩形类的子类正方形类(Square),包含的属性和方法自行确定,要求完成的功能是,能计算正方形的面积。

定义一个测试类(Test),测试矩形类和正方形类能否正确的计算面积。

以上类中属性和方法的访问权限自行确定,方法和构造方法若有参数,也自行确定。

实验代码:

public class Rectangle {

int Length; int Width; public int getLength() { } public void setLength(int length) { } public int getWidth() { return Width; Length = length; return Length; } public void setWidth(int width) {

Width = width; } int getArea(){

return Length * Width; } }

public class Square extends Rectangle{ Square(int border) {

super.setLength(border);

super.setWidth(border); } }

public class Test { public void test(){

System.out.println("请选择计算的形状的序号:1.矩形

Scanner sc = new Scanner(System.in);

int i = sc.nextInt(); int len,wid; 2.正方形");

} if(i==1){

} else if(i==2){

} System.out.print("请输入正方形的边长:"); Scanner s = new Scanner(System.in); len = s.nextInt(); Square sq = new Square(len); System.out.println("正方形面积为:"+sq.getArea()); System.out.print("请输入矩形的长:"); Scanner s = new Scanner(System.in); len = s.nextInt(); System.out.print("请输入矩形的宽:"); wid = s.nextInt(); Rectangle re = new Rectangle(); re.setLength(len); re.setWidth(wid); System.out.println("矩形面积为:"+re.getArea()); else{ } System.out.println("输入错误!");

} public static void main(String[] args) { } new Test().test(); 实验结果:

实验心得体会:

做这个实验要掌握如何定义类以及类的成员变量、类的方法,学会对象的创建、对象属性的引用和方法的调用以及如何定义和使用构造方法。掌握this的使用以及派生子类的方法,理解关键字super的含义。理解继承中属性的隐藏和方法的覆盖机制,理解在继承关系中构造方法的调用过程。

实验三

实验题目:定义一个Student类,包含姓名(name)、身高(height)、体重(weight),以及talk()方法,该方法的功能是,输出自己的身高和体重信息。

Student类实现Comparable接口,实现按照体重的大小比较两个Student对象的大小。 最后,定义一个测试类,生成一个数组,该数组有6个元素,每个元素类型是Student,调用Arrays.sort方法对该数组排序。

实验代码:

public class Student implements Comparable {

public void setName(String name) { } this.name = name; public String getName() { } return name; public Student(String name, float height, float weight) {

} super(); this.name = name; this.height = height; this.weight = weight; private String name; private float height, weight;

public float getHeight() { } return height; public void setHeight(float height) { } this.height = height; public float getWeight() { } return weight; public void setWeight(float weight) { } this.weight = weight; public void speak() { System.out.println("我是" + name + ",我的身高是" + height + ",我的体重是" + weight);

@Override }

} public int compareTo(Student o) {

} int flag; if(this.weight

public String toString() {

} return "Person [name=" + name + ", height=" + height + ", weight=" + weight + "]"; public class Test { public static void main(String[] args) {

}

} int i; Student ps[] = new Student[6]; ps[0] = new Student("张三", 170, 110); ps[1] = new Student("李四", 168, 120); ps[2] = new Student("王五", 165, 115); ps[3] = new Student("赵六", 172, 121); ps[4] = new Student("周七", 160, 100); ps[5] = new Student("郑八", 166, 119); System.out.println("排序前数组元素的序列是:"); for (i = 0; i < ps.length; i++) { } Arrays.sort(ps);//调用Java系统类中的排序方法对ps数组排序 System.out.println(" 排序后数组元素的序列是:"); for (i = 0; i < ps.length; i++) { } System.out.println(ps[i]); ps[i].speak(); 实验结果:

实验心得体会:

本次实验主要掌握对compareTo方法的重写,当返回值为0的时候此方法调用会出现错误,导致不进行排序,需要特别注意。这个实验主要使我们掌握了对类的接口的实现,和数组的比较,并使我们理解其中的细节。

上一篇
下一篇
返回顶部