正文
像素鸟java源代码 像素鸟图片资源
小程序:扫一扫查出行
【扫一扫了解最新限行尾号】
复制小程序
【扫一扫了解最新限行尾号】
复制小程序
北大青鸟java培训:java源码管理与版本控制工具?
java项目一般都是团队开发,当多人共同编写一个项目的时候。
代码的整合就需要用到专门的源码管理工具了。
另外java项目版本的不断更新,也需要版本的管理。
所以源码管理与版本控制工具也是每个java程序员必须要熟练掌握的。
目前比较流行的java版本控制工具主要有svn、git这两款软件。
陕西北大青鸟认为这两种工具也是每个java程序员必须要熟练掌握的。
SVNSVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。
互联网上很多版本控制服务已从CVS迁移到Subversion。
说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。
SVN的缺陷是过分依赖网络,不适合分布式开发。
使用svn的工作流程如下:1、早上从从服务器下载项目组最新代码。
2、进入自己的分支,进行工作,每隔一个小时向服务器自己的分支提交一次代码(很多人都有这个习惯。
因为有时候自己对代码改来改去,最后又想还原到前一个小时的版本,或者看看前一个小时自己修改了哪些代码,就需要这样做了)。
3、下班时间快到了,把自己的分支合并到服务器主分支上,一天的工作完成,并反映给服务器。
GitGit是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。
Git是LinusTorvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件。
与常用的版本控制工具CVS,Subversion等不同,它采用了分布式版本库的方式,不必服务器端软件支持(ps:这得分是用什么样的服务端,使用http协议或者git协议等不太一样。
并且在push和pull的时候和服务器端还是有交互的。
),使源代码的发布和交流极其方便。
目前GIT已经可以在windows下使用,主要方法有二:msysgit和Cygwin。
Cygwin和Linux使用方法类似,Windows版本的GIT提供了友好的GUI(图形界面),安装后很快可以上手使用。
如何用java编程,实现声音特征的提取?
您好,1 双方之间的网络连接
Java在这方面有其独特的优势,Java提供了丰富的网络类库的支持,可以轻松编写多种类型的网络通信程序。在我下面的例子中我就使用了TCP/IP协议,通过Java的Socket类进行编程。
2 音频信号的采集和回放以及音频数字信号的编码与解码
在解决这两个问题的时候,在网上很幸运地通过一些文章的介绍,找到了Answer Machine 演示程序的源代码(由of jsresources.org的Florian Bomers 和Matthias Pfisterer编写,网址)。在这个程序代码中,有几个解决我们问题所需要的类,而且作者将这些类封装的很好,我们基本不需要做什么改动,只需要屏蔽其中的调试信息的输出就行了,更可贵的是它还封装了几种常见的音频格式。其中的GSM格式(Global System for Mobile Telecommunications)就是我们下面例子中采用的压缩格式,GSM格式可以将128kbps 的音频数据流 (16bit通过8k Hz的音频采样) 压缩为13kbps 的音频数据流,非常适合语音信号的传送,所以可谓是一石二鸟。
我分析过这几个类的源代码,不得不佩服它的作者,每个类的源代码都很精炼,大家可以自己分析一下。好了下面就给大家讲讲这几个类,并且将它们用到的Java Sound API中的类和函数等一并做个简单介绍,让大家对Java Sound API中常用的类也有个大致的了解。由于Java Sound API中的类比较多。限于篇幅无法对所有用到的类做详尽的解释,以下内容只是简单提及了各个类的用途和使用规范,有关Java Sound API中类的具体介绍请大家访问这里, 查找javax.sound.sampled的相关内容。
以下的提到几个文件是从Answer Machine 演示程序的源代码中提取出来的,由于是开放源代码的程序,大家在使用的时候请注意相关的公共协议。
① AMAudioFormat类(封装在AMAudioFormat.java文件中)
AMAudioFormat类封装了CD、FM、TELEPHONE、GSM这四种质量的音频格式的参数,使用起来也非常简单,这样我们在使用Java Sound API时就不用自己去写那些复杂的代码了,但为了明白Java Sound API的原理,我们需要对它的代码做一下分析。它使用了Java Sound API中的AudioFormat这个类,这个类非常重要,在Java中对任何音频数据的使用都要实现通过它指定所需要使用的音频格式,AudioFormat类有一个嵌套的类AudioFormat.Encoding,实际上大部分对AudioFormat类的使用都是使用的这个嵌套的类。
AMAudioFormat类的重要方法:
名称:getLineAudioFormat
调用格式:getLineAudioFormat(整型音频格式代号)
返回值: 根据传递音频格式代号生成的AudioFormat对象。
说道这里大家可能要问了,那么通过Java Sound API可以直接使用GSM格式吗?答案是比较复杂,但同样有解决的办法,作者在这里使用了另外的开源程序的类库-tritonus的GSM编码解码库。大家需要在这里下载tritonous_share.jar和tritonus_gsm.jar两个文件,并在AMAudioFormat类中引用,这样就完成了GSM格式的设置。需要告诉大家的是在对AMAudioFormat.java这个类进行编译后,我们的程序运行的时候就可以不需要tritonous_share.jar和tritonus_gsm.jar这两个文件的支持了。
② AudioCapture类(封装在AudioCapture.java文件中)
AudioCapture类封装了从音频硬件捕获音频数据并自动编码为GSM音频压缩数据的过程,并且通过它的getAudioInputStream()方法提供给我们一个音频数据输入流,我们就可以直接将这个流发送到网络中。
AudioCapture 类的重要方法:
名称:getAudioInputStream
调用格式:getAudioInputStream()
返回值:AudioInputStream对象
AudioCapture 类使用了Java Sound API中的AudioInputStream、AudioFormat、AudioSystem这几个类和TargetDataLine、LineListener接口。除了AudioFormat类我再简单介绍一下其他的类:
AudioInputStream 类是带有特殊音频格式和长度的InputStream类,它有两个构造方法,分别是AudioInputStream(InputStream stream, AudioFormat format,long length)和AudioInputStream(TargetData -Line line)。
TargetDataLine 接口是DataLine接口的一种,通过它就可以直接从音频硬件获取数据了,它有几个常用的方法,分别是:open(AudioFormat format)、void open(AudioFormat format, int bufferSize)、int read(byte[] b, int off, int len)。
AudioSystem 类是Java标准音频系统的入口点,在AudioSystem 类中使用他的getLine() 方法创建TargetDataLine对象。
LineListener接口用来对线路状态改变的时间进行监听,他的重要的方法是update(LineEvent event)方法。
③ AudioPlayStream类(封装在AudioPlayStream.java文件中)
AudioPlayStream类与AudioCapture类刚好相反,它封装了GSM压缩音频数据的解码和音频信号的回放过程,提供给我们一个音频信号输出流。AudioCapture类用到的Java Sound API中的类它也基本都用到了,只是它使用了SourceDataLine接口而不是TargetDataLine接口
④ Debug类(封装在Debug.java文件中)
Debug类主要用来在调试时输出讯息,代码很少,后来我把其中输出信息的语句都屏蔽了,对程序运行没有影响。
为了方便使用以上的几个类,我们需要对它们进行编译和打包,编译时需要设置相关的编译环境,以下是我们需要用到的命令行
set CLASSPATH=%CLASSPATH%;.;tritonus_gsm.jar;tritonus_share.jar
javac am*.java amaudio*.java
jar cmf packagingmanifest.mf am.jar am*.class
amaudio*.class
说明一下,我将以上提到的Java源码文件放在了am目录下,编译之后可以得到一个8k的am.jar文件,我们下一步所需要做的就是在我们的程序中引用这个包。
北大青鸟java培训:Java编程工具有哪些比较好用?
一、EditplusEditPlus是功能很全面的文本、HTML、程序源代码编辑器。
默认的支持HTML、ASP、Perl、C/C++、CSS、PHP、Java、java和VB的语法着色。
通过定制语法文件还可以扩展到其他程序语言。
可以在Tools菜单的ConfigureUserTools菜单项配置用户工具,类似于UltraEdit的配置,配置好Java的编译器Javac和解释器Java后,通过EditPlus的菜单可以直接编译执行Java程序。
二、UltraEdit初学者一般用什么开发工具?UltraEdit是一个功能强大的文本、HTML、程序源代码编辑器。
作为源代码编辑器,它的默认配置可以对C/C++,VB,HTML,Java和Perl进行语法着色。
用它设计Java程序时,可以对Java的关键词进行识别并着色,方便了Java程序设计。
它具有完备的复制、粘贴、剪切、查找、替换、格式控制等编辑功能。
可以在Advanced菜单的ToolConfiguration菜单项配置好Java的编译器Javac和解释器Java,直接编译运行Java程序。
三、Eclipse初学者一般用什么开发工具?Eclipse是一个开放可扩展的集成开发环境(IDE)。
它不仅可以用于Java的开发,通过开发插件,它可以构建其他的开发工具。
Eclipse是开放源代码的项目,并可以免费下载。
建议使用Releases或StableBuilds版本。
四、JcreatorJcreator是一个用于Java程序设计的集成开发环境,具有编辑、调试、运行Java程序的功能。
这个软件比较小巧,对硬件要求不是很高,完全用C++写的,速度快、效率高。
java课程认为具有语法着色、代码参数提示、工程向导、代码自动完成、类向导等功能。
先进次启动时提示设置JavaJDK主目录及JDKJavaDoc目录,软件自动设置好类路径、编译器及解释器路径,还可以在帮助菜单中使用JDKHelp。
但目前这个版本对中文支持性不好。
求java小游戏源代码
表1. CheckerDrag.java
// CheckerDrag.javaimport java.awt.*;import java.awt.event.*;public class CheckerDrag extends java.applet.Applet{ // Dimension of checkerboard square. // 棋盘上每个小方格像素鸟java源代码的尺寸 final static int SQUAREDIM = 40; // Dimension of checkerboard -- includes black outline. // 棋盘像素鸟java源代码的尺寸 – 包括黑色像素鸟java源代码的轮廓线 final static int BOARDDIM = 8 * SQUAREDIM + 2; // Dimension of checker -- 3/4 the dimension of a square. // 棋子的尺寸 – 方格尺寸的3/4 final static int CHECKERDIM = 3 * SQUAREDIM / 4; // Square colors are dark green or white. // 方格的颜色为深绿色或者白色 final static Color darkGreen = new Color (0, 128, 0); // Dragging flag -- set to true when user presses mouse button over checker // and cleared to false when user releases mouse button. // 拖动标记 --当用户在棋子上按下鼠标按键时设为true像素鸟java源代码, // 释放鼠标按键时设为false boolean inDrag = false; // Left coordinate of checkerboard's upper-left corner. // 棋盘左上角的左方向坐标 int boardx; // Top coordinate of checkerboard's upper-left corner. //棋盘左上角的上方向坐标 int boardy; // Left coordinate of checker rectangle origin (upper-left corner). // 棋子矩形原点(左上角)的左方向坐标 int ox; // Top coordinate of checker rectangle origin (upper-left corner). // 棋子矩形原点(左上角)的上方向坐标 int oy; // Left displacement between mouse coordinates at time of press and checker // rectangle origin. // 在按键时的鼠标坐标与棋子矩形原点之间的左方向位移 int relx; // Top displacement between mouse coordinates at time of press and checker // rectangle origin. // 在按键时的鼠标坐标与棋子矩形原点之间的上方向位移 int rely; // Width of applet drawing area. // applet绘图区域的宽度 int width; // Height of applet drawing area. // applet绘图区域的高度 int height; // Image buffer. // 图像缓冲 Image imBuffer; // Graphics context associated with image buffer. // 图像缓冲相关联的图形背景 Graphics imG; public void init () { // Obtain the size of the applet's drawing area. // 获取applet绘图区域的尺寸 width = getSize ().width; height = getSize ().height; // Create image buffer. // 创建图像缓冲 imBuffer = createImage (width, height); // Retrieve graphics context associated with image buffer. // 取出图像缓冲相关联的图形背景 imG = imBuffer.getGraphics (); // Initialize checkerboard's origin, so that board is centered. // 初始化棋盘的原点,使棋盘在屏幕上居中 boardx = (width - BOARDDIM) / 2 + 1; boardy = (height - BOARDDIM) / 2 + 1; // Initialize checker's rectangle's starting origin so that checker is // centered in the square located in the top row and second column from // the left. // 初始化棋子矩形的起始原点,使得棋子在第一行左数第二列的方格里居中 ox = boardx + SQUAREDIM + (SQUAREDIM - CHECKERDIM) / 2 + 1; oy = boardy + (SQUAREDIM - CHECKERDIM) / 2 + 1; // Attach a mouse listener to the applet. That listener listens for // mouse-button press and mouse-button release events. // 向applet添加一个用来监听鼠标按键的按下和释放事件的鼠标监听器 addMouseListener (new MouseAdapter () { public void mousePressed (MouseEvent e) { // Obtain mouse coordinates at time of press. // 获取按键时的鼠标坐标 int x = e.getX (); int y = e.getY (); // If mouse is over draggable checker at time // of press (i.e., contains (x, y) returns // true), save distance between current mouse // coordinates and draggable checker origin // (which will always be positive) and set drag // flag to true (to indicate drag in progress). // 在按键时如果鼠标位于可拖动的棋子上方 // (也就是contains (x, y)返回true),则保存当前 // 鼠标坐标与棋子的原点之间的距离(始终为正值)并且 // 将拖动标志设为true(用来表明正处在拖动过程中) if (contains (x, y)) { relx = x - ox; rely = y - oy; inDrag = true; } } boolean contains (int x, int y) { // Calculate center of draggable checker. // 计算棋子的中心位置 int cox = ox + CHECKERDIM / 2; int coy = oy + CHECKERDIM / 2; // Return true if (x, y) locates with bounds // of draggable checker. CHECKERDIM / 2 is the // radius. // 如果(x, y)仍处于棋子范围内则返回true // CHECKERDIM / 2为半径 return (cox - x) * (cox - x) + (coy - y) * (coy - y) CHECKERDIM / 2 * CHECKERDIM / 2; } public void mouseReleased (MouseEvent e) { // When mouse is released, clear inDrag (to // indicate no drag in progress) if inDrag is // already set. // 当鼠标按键被释放时,如果inDrag已经为true, // 则将其置为false(用来表明不在拖动过程中) if (inDrag) inDrag = false; } }); // Attach a mouse motion listener to the applet. That listener listens // for mouse drag events. //向applet添加一个用来监听鼠标拖动事件的鼠标运动监听器 addMouseMotionListener (new MouseMotionAdapter () { public void mouseDragged (MouseEvent e) { if (inDrag) { // Calculate draggable checker's new // origin (the upper-left corner of // the checker rectangle). // 计算棋子新的原点(棋子矩形的左上角) int tmpox = e.getX () - relx; int tmpoy = e.getY () - rely; // If the checker is not being moved // (at least partly) off board, // assign the previously calculated // origin (tmpox, tmpoy) as the // permanent origin (ox, oy), and // redraw the display area (with the // draggable checker at the new // coordinates). // 如果棋子(至少是棋子的一部分)没有被 // 移出棋盘,则将之前计算的原点 // (tmpox, tmpoy)赋值给永久性的原点(ox, oy), // 并且刷新显示区域(此时的棋子已经位于新坐标上) if (tmpox boardx tmpoy boardy tmpox + CHECKERDIM boardx + BOARDDIM tmpoy + CHECKERDIM boardy + BOARDDIM) { ox = tmpox; oy = tmpoy; repaint (); } } } }); } public void paint (Graphics g) { // Paint the checkerboard over which the checker will be dragged. // 在棋子将要被拖动的位置上绘制棋盘 paintCheckerBoard (imG, boardx, boardy); // Paint the checker that will be dragged. // 绘制即将被拖动的棋子 paintChecker (imG, ox, oy); // Draw contents of image buffer. // 绘制图像缓冲的内容 g.drawImage (imBuffer, 0, 0, this); } void paintChecker (Graphics g, int x, int y) { // Set checker shadow color. // 设置棋子阴影的颜色 g.setColor (Color.black); // Paint checker shadow. // 绘制棋子的阴影 g.fillOval (x, y, CHECKERDIM, CHECKERDIM); // Set checker color. // 设置棋子颜色 g.setColor (Color.red); // Paint checker. // 绘制棋子 g.fillOval (x, y, CHECKERDIM - CHECKERDIM / 13, CHECKERDIM - CHECKERDIM / 13); } void paintCheckerBoard (Graphics g, int x, int y) { // Paint checkerboard outline. // 绘制棋盘轮廓线 g.setColor (Color.black); g.drawRect (x, y, 8 * SQUAREDIM + 1, 8 * SQUAREDIM + 1); // Paint checkerboard. // 绘制棋盘 for (int row = 0; row 8; row++) { g.setColor (((row 1) != 0) ? darkGreen : Color.white); for (int col = 0; col 8; col++) { g.fillRect (x + 1 + col * SQUAREDIM, y + 1 + row * SQUAREDIM, SQUAREDIM, SQUAREDIM); g.setColor ((g.getColor () == darkGreen) ? Color.white : darkGreen); } } } // The AWT invokes the update() method in response to the repaint() method // calls that are made as a checker is dragged. The default implementation // of this method, which is inherited from the Container class, clears the // applet's drawing area to the background color prior to calling paint(). // This clearing followed by drawing causes flicker. CheckerDrag overrides // update() to prevent the background from being cleared, which eliminates // the flicker. // AWT调用了update()方法来响应拖动棋子时所调用的repaint()方法。该方法从 // Container类继承的默认实现会在调用paint()之前,将applet的绘图区域清除 // 为背景色,这种绘制之后的清除就导致了闪烁。CheckerDrag重写了update()来 // 防止背景被清除,从而消除了闪烁。 public void update (Graphics g) { paint (g); }}
java求源代码
像素鸟java源代码你是青鸟的吧 这像素鸟java源代码我写过 有源码 这里怎么上传压缩包啊
package ghhh;
import java.util.Scanner;
public class DvD {
public static void main(String[] args) {
int state[]=new int[6];
String name[]=new String[6];
int date[]=new int[6];
int count[]=new int [6];
name[0]="权利的游戏";
name[1]="命运之夜";
name[2]="傲慢与偏见";
state[0]=1;
state[1]=0;
state[2]=1;
date[0]=13;
date[1]=0;
date[2]=9;
count[0]=23;
count[1]=23;
count[2]=23;
int n;
// boolean n=false;
do{
System.out.println("欢迎使用迷你DVD管理器");
System.out.println("1.新增DVD");
System.out.println("2.查看DVD");
System.out.println("3.删除DVD");
System.out.println("4.借出DVD");
System.out.println("5.归还DVD");
System.out.println("6.退出DVD");
Scanner input =new Scanner(System.in);
System.out.println("请选择:");
n=input.nextInt();
switch(n){
case 1:
System.out.println("请输入要增加DVD的名称:");
String name1=input.next();
boolean flag=false;
for(int i=0;iname.length;i++){
if(name[i]==null){
name[i]=name1;
flag=true;
break;
}
}
if(flag){
System.out.println("新增DVD"+name1+"成功");
}else{
System.out.println("货架已满!增加失败!");
}
System.out.println("请输入0返回!");
n=input.nextInt();
break;
case 2:
System.out.println("序号\t"+"状态\t"+"名称\t\t"+"借出日期\t"+"借出次数");
for(int i=0;iname.length;i++){
if(name[i]!=null){
String state1 =((state[i]==0)?"可借":"已借");
String date1=((date[i]==0)?"":date[i]+"日");
String count1=count[i]+"次";
System.out.println((i+1)+"\t"+state1+"\t"+name[i]+"\t"+date1+"\t\t"+count1);
}
}
System.out.println("请输入0返回!");
n=input.nextInt();
break;
case 3:
System.out.println("请输入要删除的DVD名称:");
String name2=input.next();
int index=-1;
boolean a=false;
boolean flag1=false;
for(int i=0;iname.length;i++){
if(name2.equals(name[i])state[i]==1){
System.out.println("此DVD已经借出,无法删除");
a=true;
break;
}else if(name2.equals(name[i])state[i]==0){
a=true;
index=i;
flag1=true;
System.out.println("删除成功!");
break;
}
}
if(a==false){
System.out.println("没有找到相同名称的DVD!");
}
if(flag1){
for (int i=index;iname.length;i++){
if(i!=name.length-1){
name[i]=name[i+1];
state[i]=state[i+1];
date[i]=date[i+1];
count[i]=count[i+1];
}
name[name.length-1]=null;
state[name.length-1]=0;
date[name.length-1]=0;
count[name.length-1]=0;
}
}
System.out.println("请输入0返回!");
n=input.nextInt();
break;
case 4:
System.out.println("请输入要借出的DVD:");
String name3=input.next();
boolean a3=false;
boolean b3=false;
for(int i=0;iname.length;i++){
if(name3.equals(name[i]) state[i]==1){
System.out.println("该DVD已经借出");
a3=true;
}else if(name3.equals(name[i]) state[i]==0){
do{
System.out.println("请输入借出的日期:");
int m=input.nextInt();
if(m31||m1){
System.out.println("请重新输入日期:");
b3=true;
}else{
date[i]=m;
state[i]=1;
count[i]+=1;
}
}while(b3==true);
System.out.println("借出成功!");
a3=true;
}
}
if(a3==false){
System.out.println("没有该DVD");
}
System.out.println("请输入0返回!");
n=input.nextInt();
break;
case 5:
System.out.println("请输入要归还的DVD:");
String name5=input.next();
boolean b5=false;
boolean m5=false;
for(int i=0;iname.length;i++){
if(name5.equals(name[i]) state[i]==1){
b5=true;
do{
System.out.println("请输入要归还DVD的日期:(归还日期请输入当月日期 1~31)");
int a5=input.nextInt();
if(a531){
System.out.println("请重新输入日期:");
m5=true;
}else if(a5date[i]){
System.out.println("借出日期是"+date[i]+"日\t输入的日期不能小于借出的日期,请重新输入日期:");
m5=true;
}else{
state[i]=0;
System.out.println("归还成功");
System.out.println("借出日期是:"+date[i]+"归还日期是:"+a5+"日\t租金一天一元:共"+(a5-date[i])+"元");
date[i]=0;
m5=false;
}
}while(m5==true);
}else if (name5.equals(name[i]) state[i]==0){
System.out.println("该DVD未借出,不可归还!");
b5=true;
}
}
if(b5==false){
System.out.println("没有该名称的DVDV");
}
System.out.println("请输入0返回!");
n=input.nextInt();
break;
case 6:
n=1;
System.out.println("程序退出!");
break;
default:
if(n==0){
}else{
System.out.println("输入错误!请重新输入!");
n=0;
}
break;
}
}while(n==0);
System.out.println("谢谢使用!");
}
}
看看有没有问题 好久之前的了
java中怎么将图片导入程序小游戏飞扬的小鸟
1、首先,你需要准备一张图片,最好是png格式的;
2、使用图片编辑器打开图片,然后将图片裁剪成想要的大小;
3、将图片保存到程序文件夹中,并给它一个有意义的名字;
4、在程序代码中添加一个变量,用来存放图片的路径;
5、使用java的ImageIO类将图片读取到程序中;
6、在程序中使用刚刚读取的图片,实现小鸟的飞行效果。
像素鸟java源代码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于像素鸟图片资源、像素鸟java源代码的信息别忘了在本站进行查找喔。