import javax.sound.midi.*;
import java.io.*;
class MidiPlayer implements Runnable...{
protected Sequence m_Midi;
protected Sequencer m_player;
public boolean m_bOk;
private Thread m_thread;
MidiPlayer(String FileName)...{
File file=new File(FileName);
m_bOk=true;
m_thread=null;
try...{m_Midi=MidiSystem.getSequence(file);}
catch(InvalidMidiDataException ie)...{m_bOk=false;}
catch(IOException ie)...{m_bOk=false;}
try...{m_player=MidiSystem.getSequencer();}
catch(MidiUnavailableException ie)...{m_bOk=false;}
}
public void run()...{
while(m_thread!=null)...{
try...{m_player.open();}
catch(MidiUnavailableException ie)...{}
try...{m_player.setSequence(m_Midi);}
catch(InvalidMidiDataException ie)...{}
m_player.start();
while(m_player.isRunning()&&m_thread!=null)...{
try...{Thread.sleep(1000);}
catch(InterruptedException ie)...{}
}
m_player.close();
}
}
public void play()...{
if(m_player.isRunning()==false&&m_thread==null)...{
try...{m_player.open();}
catch(MidiUnavailableException ie)...{}
try...{m_player.setSequence(m_Midi);}
catch(InvalidMidiDataException ie)...{}
m_player.start();
}
}
public void loop()...{
if(m_player.isRunning()==false&&m_thread==null)...{
m_thread=new Thread(this);
m_thread.start();
}
}
public void stop()...{
if(m_thread!=null&&m_thread.isAlive())m_thread.yield();
m_thread=null;
if(m_player.isRunning())m_player.close();
}
}
//test.java
import java.awt.*;
import java.awt.event.*;
class fr extends Frame implements ActionListener...{
MidiPlayer p;
Button b1,b2,b3;
public fr()...{
super("123");
setLayout(new FlowLayout());
p=new MidiPlayer("sound.mid");
if(p.m_bOk==false)System.exit(0);
b1=new Button("循环");
b2=new Button("结束");
b3=new Button("播放");
add(b1);
add(b2);
add(b3);
b1.addActionListener(this);b2.addActionListener(this);b3.addActionListener(this);
addWindowListener(new WindowAdapter()...{
public void windowClosing(WindowEvent e)...{
setVisible(false);
System.exit(0);
}
});
setSize(200,200);
setVisible(true);
}
public void actionPerformed(ActionEvent e)...{
if(e.getSource()==b1)...{
p.loop();
}
else if(e.getSource()==b2)...{
p.stop();
}
else if(e.getSource()==b3)p.play();
}
}
public class test...{
public static void main(String args[])...{
fr f=new fr();
}
}
用Java实现支持多线程的socket通信
//Server.java
/**//*
* Created on 2004-8-11
*
* To change the template for this generated file go to
* Window>Preferences>Java>Code Generation>Code and Comments
*/
package socket_communicate;
import java.io.*;
import java.net.*;
//用java实现支持多线程的socket通信
/**//**
* @author Administrator
*
* To change the template for this generated type comment go to
* Window>Preferences>Java>Code Generation>Code and Comments
*/
public class Server ...{
public Server(int port)
...{
ServerSocket serversocket=null;
try
...{
serversocket=new ServerSocket(port);
}
catch(IOException e)
...{
System.out.println("Error occurs when listening to port:"+port);
System.exit(0);
}
System.out.println("Server is listening to port "+port);
Socket clientsocket=null;
try
...{
clientsocket=serversocket.accept();
}
catch(IOException e)
...{
System.out.println("Error occurs:"+e.getMessage());
System.exit(0);
}
try ...{
PrintWriter out=new PrintWriter(clientsocket.getOutputStream(),true);//用来向客户端输出信息
BufferedReader in=new BufferedReader(new InputStreamReader(clientsocket.getInputStream()));
String line;
while((line=in.readLine())!=null)
...{
out.println("The message send form Client to Server is:"+line+".");//这条语句将向客户端输出信息
System.out.println("Message from Client is:"+line);//向标准输出设备输出信息
}
in.close();
out.close();
clientsocket.close();
serversocket.close();
}
catch(IOException e)
...{
System.err.println("Error:"+e.getMessage());
}
}
public static void main(String[] args) ...{
Server server=new Server(85);
}
}
//Client.java
/**//*
* Created on 2004-8-11
*
* To change the template for this generated file go to
* Window>Preferences>Java>Code Generation>Code and Comments
*/
package socket_communicate;
import java.io.*;
import java.net.*;
/**//**
* @author Administrator
*
* To change the template for this generated type comment go to
* Window>Preferences>Java>Code Generation>Code and Comments
*/
public class Client ...{
public Client(String hostname,int port)
...{
try
...{
Socket clientsocket=new Socket(hostname,port);
PrintWriter out=new PrintWriter(clientsocket.getOutputStream(),true);
BufferedReader in=new BufferedReader(new InputStreamReader(clientsocket.getInputStream()));
BufferedReader user_in=new BufferedReader(new InputStreamReader(System.in));
String line_user;
String line_server;
while((line_user=user_in.readLine())!=null)
...{
if(line_user.equals("88"))//断开连接的输入
break;
out.println(line_user);
line_server=in.readLine();
System.out.println("Client receive:"+line_server);
}
out.close();
in.close();
clientsocket.close();
}
catch (UnknownHostException e)
...{
System.out.println("Unknown Host Name!");
System.exit(0);
}
catch (IOException e)
...{
System.out.println("Error:"+e.getMessage());
}
}
public static void main(String[] args) ...{
Client client=new Client("168.168.168.32",85);
}
}
用Java程序解决服务器JSP子页面不能及时更新的问题
import java.io.*;
public class FileChange ...{
public static void main(String[] args) throws IOException
...{
File Path=new File(args[0]); //获取应用程序文件目录
FileChange FC=new FileChange();
FC.listPath(Path); //调用方法,改变目录下的文件
}
void listPath(File Path) throws IOException ...{
File[] files;
files=Path.listFiles(); //获取目录下文件的列表
for(int i=0;i<files.length;i++)...{
try ...{
RandomAccessFile f=new RandomAccessFile(files[i],"rw");
//以读写的方式打开一个文件
f.seek(f.length()); //将文件指针放在文件尾
f.writeBytes(" "); //模拟键入回车件动作改变文件,但不改变文件实质内容
f.close();
}catch(FileNotFoundException e) ...{
System.out.println(e.getMessage());
}
}
}
}
基于JAVA快速排序的新应用
class dulist...{
public int key;
public dulist next,pre; //定义双向指针的结点
public dulist (int key)...{ //构造一个双向指针均为空的结点
this.key=key;
next=null;
pre=null;
}
public dulist creatdulist(int a[],int n)...{ //创建一个带头结点的双向循环链表
dulist p,q,la=new dulist(n); //n为链表长度
int i;
la.next=la; // la为头结点
la.pre=la;
q=la; //q为跟随指针
for(i=0;i<n;i++)
...{p=new dulist(a[i]);
q.next=p;
p.pre=q;
q=p;
}
q.next=la;
la.pre=q;
return la;
}
public dulist qkpass (dulist la,dulist p,dulist q)...{
int t,pivotkey; //一趟快速排序,返回枢轴位置
t=pivotkey=p.key; //用表的第一个结点作枢轴
while (p!=q) //从子表的两端交替地向中间扫描
...{while(p!=q&&q.key>=pivotkey) q=q.pre;
p.key=q.key; //将比枢轴小的结点移到低端
while(p!=q&&p.key<=pivotkey) p=p.next;
q.key=p.key; //将比枢轴大的移到高端
}
p.key=t; //枢轴结点到位
return p;
}
public void sort(dulist la,dulist low,dulist high)...{
dulist pivotloc; // low和high为头和尾的子表快排
if(low!=high)
...{pivotloc=qkpass(la,low,high); //将la一分为二
if(low.key<pivotloc.key) //枢轴在low之后
sort(la,low,pivotloc.pre);//对子表递归快排
if(high.key>pivotloc.key) //枢轴在high之前
sort(la,pivotloc.next,high);
} //对高子表递归快排
}
public void printdulist(dulist la)...{
dulist p=la.next; //打印链表中的数据域
while(p!=la)
...{System.out.println(p.key+"");
p=p.next;
}
System.out.println();
}
}
public class qsort...{
public static void main(String[] args)...{
dulist la;
int[] a=new int[]...{3,2,1,6,5,10,9,8,7,4};
la=dulist.creatdulist(a,10); //将数组元素存于链表
la.printdulist(la);
la.sort(la,la.next,la.pre);
la.printdulist(la);
}
}
//BorderLayoutTest.java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;
import javax.swing.event.*;
public class test1
{
public static void main(String[] args)
{
cloneFrame frame = new cloneFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.show();
}
}
class cloneFrame extends JFrame
{
public cloneFrame()
{
setTitle("机试程序");
setSize(600, 400);
JPanel buttonPanel = new JPanel();
buttonPanel.setBackground(new Color(56,43,85));
Button1 = new JButton("点击复制反转字符串");
Button1.addActionListener(new turnListener());
buttonPanel.add(Button1);
JPanel textPanel = new JPanel();
textPanel.setBackground(new Color(100,100,100));
field1 = new JTextField("姓名:老孙;学号:2004132028", 20);
field2 = new JTextField("反转", 20);
field2.setEditable(false);
textPanel.add(field1);
textPanel.add(field2);
JPanel tuPanel = new JPanel();
JLabel label = new JLabel(new ImageIcon("006.gif"));
tuPanel.add(label);
tuPanel.setBackground(new Color(100,100,100));
Container contentPane = getContentPane();
contentPane.add(buttonPanel, BorderLayout.SOUTH);
contentPane.add(textPanel, BorderLayout.NORTH);
contentPane.add(tuPanel, BorderLayout.CENTER);
contentPane.setBackground(new Color(100,100,100));
}
private class turnListener
implements ActionListener
{
public void actionPerformed(ActionEvent event)
{
String gets = field1.getText();
int i = gets.length();
StringBuffer buffer = new StringBuffer(i);
for(int j=i-1;j>=0;j--)
{
buffer.append(gets.charAt(j));
}
String gets2 = buffer.toString();
field2.setText(gets2);
}
}
private JButton Button1;
private JTextField field1;
private JTextField field2;
}
如何在指定目录下查找java类文件
import java.io.*;
import java.util.jar.*;
import java.util.Enumeration;
/**
* <p>Title: SearchClass</p>
*
* <p>Descriptionc:查找指定目录下的class文件 </p>
*
* <p>Copyright: Copyright (c) 2005</p>
*
* <p>Company:OpenSystem&MiddleWare Group of UESTC</p>
*
* @author: <a href="mailto:huangmx@yeah">an_ant</a>
* @version 1.0
*/
public class SearchClass {
static String className = "";
static int result = 0;
static boolean flag = false;
/**
* visit
*
* @param f File
* @throws Exception
* @todo 访问文件,并比较是否为要查找的class文件
*/
public static void visit(File f) throws Exception {
if (! (f.isDirectory())) {
String fileName = f.getName();
//f为jar文件
if (fileName.lastIndexOf(".jar") > 0) {
try {
JarFile jarFile = new JarFile(f);
JarEntry jarEntry = jarFile.getJarEntry(className);
if (jarEntry != null) {
result++;
System.out.println(result + ":在jar文件" + f + "中找到");
}
Enumeration e = jarFile.entries();
while (e.hasMoreElements()) {
String inname = e.nextElement().toString();
int j = inname.lastIndexOf("/");
if (j > 0) {
String suffix = inname.substring(j + 1, inname.length());
if (suffix.equals(className))
flag = true;
}
if (flag) {
result++;
System.out.println(result + ":在jar文件:" + f + "中找到");
System.out.println(inname);
flag = false;
break;
}
}
}
catch (Exception e) {
e.printStackTrace();
}
}
//f为class文件
else if (fileName.lastIndexOf(".class") > 0) {
if (fileName.equals(className)) {
result++;
System.out.println(result + ":在class文件" + f + "中找到");
}
}
}
else {
throw new Exception("发生意外!");
}
}
/**
* walk
*
* @param f File
* @todo 递归目录
*/
public static void walk(File f) {
//如果当前File是个文件,调用visit();
if (f.isFile())
try {
visit(f);
}
catch (Exception e) {
e.printStackTrace();
}
//如果当前File是个目录,存储其子目录,并递归调用walk();
else if (f.isDirectory()) {
String list[] = f.list();
for (int i = 0; i < list.length; i++)
walk(new File(f, list[i]));
}
}
/**
* main
*
* @param args String[]
* @todo 主函数
*/
public static void main(String args[]) {
if (args.length > 1) {
className = args[1] + ".class";
try {
File srcDirectory = new File(args[0]);
File firstList[] = srcDirectory.listFiles();
for (int i = 0; i < firstList.length; i++) {
if (firstList[i].exists()) {
walk(firstList[i]);
}
else
System.err.println("不能读取目录: " + srcDirectory);
}
System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
System.out.println("搜索结果:共出现" + result + "处");
}
catch (Exception e) {
e.printStackTrace();
}
}
else {
System.out.println("输入格式有误!");
System.out.println("正确输入格式:java SearchClass 搜索目录 类名称");
}
}
}
Java图像处理技术
//以下是创建图过程的程序代码:
import java.applet.Applet;
import java.awt.BorderLayout;
import com.sun.j3d.utils.applet.MainFrame;
import com.sun.j3d.utils.geometry.*;
import com.sun.j3d.utils.universe.*;
import javax.media.j3d.*;
import javax.vecmath.*;
public class simplebox extends Applet...{
//创建BranchGroup节点
public BranchGroup createSceneGraph()...{
BranchGroup objRoot=new BranchGroup();
//生成坐标系
TransformGroup objTrans=new TransformGroup();
objRoot.addChild(objTrans);
//定义外观
Appearance app=new Appearance();
//定义材质,设置材质的发射光为红色
Material material=new Material();
material.setEmissiveColor(new Color3f(1.0f,0.0f,0.0f));
app.setMaterial(material);
//定义几何体
Box b=new Box(.4f,.4f,.4f,app);
objTrans.addChild(b);
objRoot.compile();
return objRoot;
}
//定义simplebox构造器,在构造器中定义布局管理,画布,场景,视图
public simplebox()...{
setLayout(new BorderLayout());
Canvas3D c=new Canvas3D(null);
add("Center",c);
BranchGroup scene=createSceneGraph();
SimpleUniverse u=new SimpleUniverse(c);
u.getViewingPlatform().setNominalViewingTransform();
u.addBranchGraph(scene);
}
public static void main(String[] args)...{
new MainFrame(new simplebox(),256,256);
}
}
分享到:
相关推荐
在Java编程环境中,播放MP3、OGG、APE和FLAC等音频格式的音乐涉及到音频处理和播放技术。本文将详细介绍如何使用Java实现这一功能,同时也会提及一些相关的开源工具和库。 首先,Java提供了内置的`javax.sound....
在Java编程环境中,实现一个能够播放MP3音乐并带有动画效果的窗体是一个结合了多媒体处理和图形用户界面(GUI)设计的任务。本项目利用Java Media Framework (JMF) 和Swing库来创建这个功能丰富的应用程序。以下是...
【基于JAVA的MP3音乐播放器】是一款使用Java编程语言开发的音乐播放软件,它可以播放MP3和WAV等常见的音频格式。这个项目对于学习Java编程、多媒体处理以及用户界面设计的开发者来说,是一个很好的实践案例。下面...
Java MP3音乐播放器是一种利用Java编程语言开发的软件,专用于播放MP3格式的音频文件。这个项目展示了如何在Java环境下实现一个功能完备、用户界面友好的音乐播放器。在设计过程中,开发者运用了单例模式来确保程序...
Java MP3音乐播放器是一种基于Java编程语言开发的软件,用于播放MP3音频格式的音乐。这个项目不依赖于Java Foundation Classes (JFC)中的Java Media Framework (JMF),而是选择了第三方的Java库来实现MP3播放功能。...
Java版的MP3音乐播放器是一款专为初学者设计的学习项目,它可以帮助编程新手深入了解Java编程语言以及多媒体处理技术。这个项目的核心在于实现音频文件的读取、解码和播放功能,这对于理解Java的IO流、多线程以及...
在Java编程中,计算MP3音乐的时长是一项常见的任务,尤其在开发音频播放器或者处理音频文件的应用中。MP3文件的时长通常存储在ID3标签中,这是一个包含元数据如艺术家、歌曲名、专辑等信息的数据结构。本文将深入...
总的来说,这个Java音乐播放器项目结合了Java的多媒体处理能力、文件过滤机制以及网络下载功能,为用户提供了一站式的MP3音乐播放体验。开发者需要对Java的IO流、多线程、事件处理等有深入理解,同时熟悉JMF框架的...
在Java平台上,由于它自身的跨平台特性,这种插件尤为重要,因为它允许在不同的操作系统(如Windows、Linux、Mac OS等)上播放MP3音乐。 在Java中,播放MP3文件通常涉及到以下几个关键知识点: 1. **Java Sound ...
在这个主题中,我们将深入探讨如何使用Java支持MP3播放以及相关的jar文件。 标题提到的“四个支持mp3播放的jar文件”可能包括以下几个常见的Java音频库: 1. **JLayer**: JLayer是一个开源的Java库,它是解码MP3...
Java MP3音乐播放器是一款基于Java编程语言开发的软件,用于播放MP3格式的音频文件。这个源代码项目为开发者提供了一个学习和实践Java多媒体处理技术的绝佳平台。通过研究和理解这个源代码,我们可以深入了解Java...
Java MP3播放插件是一种专为Java平台设计的软件组件,它允许开发者通过Java编程语言创建功能丰富的音乐播放器应用程序。这款插件扩展了Java Media Framework (JMF) 的功能,使得开发者不仅可以处理常见的音频格式如...
在本项目中,我们讨论的是一个使用Java编程语言开发的简单MP3播放器。这个程序设计用于播放MP3格式的音频文件,并且具备一些基本功能,如显示歌词、支持多种播放模式等。以下是对这个Java MP3播放器的详细解析: 1....
JLayer库的核心是jl-1.0.1.jar文件,这是一个Java归档(JAR)文件,包含了所有必要的类和资源,使得开发者可以在Java应用程序中播放MP3音乐。JAR文件本质上是将多个编译后的Java类文件打包在一起,以便于分发和运行...
在Java编程环境中,实现图片播放和音乐播放的功能是一项常见的需求,尤其在开发多媒体应用程序时。以下将详细讲解如何使用Java来实现这些功能。 首先,针对“Java 图片播放”,Java提供了一些内置的类库,如`java....
Java MP3音乐播放器是一款基于Java编程语言开发的软件,其设计灵感来源于知名的音乐播放器如千千静听、QQ音乐以及酷狗音乐。这款播放器不仅具备基本的MP3文件播放功能,还融入了部分流行音乐应用的特色元素,为用户...
Java MP3小程序是一种使用Java编程语言开发的音乐播放器应用,特别适合初学者用来学习Java的基础语法和函数用法。这个程序通常会包含播放、暂停、停止、下一曲、上一曲等基本功能,帮助开发者熟悉面向对象编程的概念...
Java MP3解码器是一种允许开发者在Java应用程序中播放MP3音乐文件的工具,尤其适合那些不希望依赖Java Media Framework (JMF)的项目。JMF虽然提供了多媒体处理能力,但有时可能过于庞大或者不易配置,因此这个非JMF...
JavaSwing后台播放音乐mp3是指使用JavaSwing框架在后台播放mp3音乐的技术。这种技术可以应用于多种场景,例如音乐播放器、游戏音效、广告音频等。下面将详细介绍JavaSwing后台播放音乐mp3的实现原理和相关知识点。 ...
例如,以下是一个简单的示例代码片段,演示了如何使用Java Sound API和MP3 SPI播放MP3文件: ```java import javax.sound.sampled.*; public class MP3Player { public static void main(String[] args) { try {...