你跟我剛才回答的那個(gè)問(wèn)題是同學(xué)吧,我剛貼出來(lái)。下次提問(wèn)之前可以先搜一下
延津網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián),延津網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為延津1000多家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)網(wǎng)站制作要多少錢(qián),請(qǐng)找那個(gè)售后服務(wù)好的延津做網(wǎng)站的公司定做!
---------------分割線---下面是代碼,純手打-----------------
//自己沒(méi)有驗(yàn)證沒(méi)有測(cè)試,可能會(huì)有錯(cuò)誤,你自己看著改一下
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
HashMapString, ArrayList seat=new HashMap();
int row;
int column;
//創(chuàng)建座位
for(int i=1;i11;i++) {
ArrayList desk=new ArrayList();
for(int ii=0;ii8;ii++) {
desk.add("0");
}
seat.put("第"+i+"排", desk);
}
//開(kāi)始選座
for(;;) {
System.out.println("========開(kāi)始選票===========");
//循環(huán)輸出座位
for(int i=1;iseat.size();i++) {
System.out.print("第"+i+"排"+" ");
for(int ii=0;iseat.get("第"+i+"排").size();) {
System.out.print(seat.get("第"+i+"排").get(ii));
}
}
//開(kāi)始選座
for(;;) {
System.out.println("選擇排數(shù)");
row=s.nextInt();
System.out.println("選擇第幾個(gè),只有0可以選,x是已經(jīng)被選了");
column=s.nextInt();
if(seat.get("第"+row+"排").get(column).equals("0")) {
seat.get("第"+row+"排").set(column, "X");
System.out.println("選座成功,您的座位是:第"+row+"排,第"+column+"列");
break;
}
}
}
}
java swt實(shí)現(xiàn)播放音樂(lè)代碼如下:
public void play(String Filename)
{
try{
// 用輸入流打開(kāi)一音頻文件
InputStream in = new FileInputStream(Filename);//FIlename 是你加載的聲音文件如(“game.wav”)
// 從輸入流中創(chuàng)建一個(gè)AudioStream對(duì)象
AudioStream as = new AudioStream(in);
AudioPlayer.player.start(as);//用靜態(tài)成員player.start播放音樂(lè)
//AudioPlayer.player.stop(as);//關(guān)閉音樂(lè)播放
//如果要實(shí)現(xiàn)循環(huán)播放,則用下面的三句取代上面的“AudioPlayer.player.start(as);”這句
/*AudioData data = as.getData();
ContinuousAudioDataStream gg= new ContinuousAudioDataStream (data);
AudioPlayer.player.start(gg);// Play audio.
*/
//如果要用一個(gè) URL 做為聲音流的源(source),則用下面的代碼所示替換輸入流來(lái)創(chuàng)建聲音流:
/*AudioStream as = new AudioStream (url.openStream());
*/
} catch(FileNotFoundException e){
System.out.print("FileNotFoundException ");
} catch(IOException e){
System.out.print("有錯(cuò)誤!");
}
}
首先下載播放mp3的包,比如mp3spi1.9.4.jar。在工程中添加這個(gè)包。
播放器演示代碼如下
package?com.test.audio;
import?java.io.File;
import?java.awt.BorderLayout;
import?java.awt.FileDialog;
import?java.awt.Frame;
import?java.awt.GridLayout;
import?java.awt.Label;
import?java.awt.List;
import?java.awt.Menu;
import?java.awt.MenuBar;
import?java.awt.MenuItem;
import?java.awt.MenuShortcut;
import?java.awt.Panel;
import?java.awt.event.ActionEvent;
import?java.awt.event.ActionListener;
import?java.awt.event.KeyEvent;
import?java.awt.event.MouseAdapter;
import?java.awt.event.MouseEvent;
import?java.awt.event.WindowAdapter;
import?java.awt.event.WindowEvent;
import?javax.sound.sampled.AudioFormat;
import?javax.sound.sampled.AudioInputStream;
import?javax.sound.sampled.AudioSystem;
import?javax.sound.sampled.DataLine;
import?javax.sound.sampled.SourceDataLine;
public?class?MusicPlayer?extends?Frame?{
/**
?*?
?*/
private?static?final?long?serialVersionUID?=?-2605658046194599045L;
boolean?isStop?=?true;//?控制播放線程
boolean?hasStop?=?true;//?播放線程狀態(tài)
String?filepath;//?播放文件目錄
String?filename;//?播放文件名稱
AudioInputStream?audioInputStream;//?文件流
AudioFormat?audioFormat;//?文件格式
SourceDataLine?sourceDataLine;//?輸出設(shè)備
List?list;//?文件列表
Label?labelfilepath;//播放目錄顯示標(biāo)簽
Label?labelfilename;//播放文件顯示標(biāo)簽
public?MusicPlayer()?{
//?設(shè)置窗體屬性
setLayout(new?BorderLayout());
setTitle("MP3?Music?Player");
setSize(350,?370);
//?建立菜單欄
MenuBar?menubar?=?new?MenuBar();
Menu?menufile?=?new?Menu("File");
MenuItem?menuopen?=?new?MenuItem("Open",?new?MenuShortcut(KeyEvent.VK_O));
menufile.add(menuopen);
menufile.addActionListener(new?ActionListener()?{
public?void?actionPerformed(ActionEvent?e)?{
open();
}
});
menubar.add(menufile);
setMenuBar(menubar);
//?文件列表
list?=?new?List(10);
list.addMouseListener(new?MouseAdapter()?{
public?void?mouseClicked(MouseEvent?e)?{
//?雙擊時(shí)處理
if?(e.getClickCount()?==?2)?{
//?播放選中的文件
filename?=?list.getSelectedItem();
play();
}
}
});
add(list,?"Center");
//?信息顯示
Panel?panel?=?new?Panel(new?GridLayout(2,?1));
labelfilepath?=?new?Label("Dir:");
labelfilename?=?new?Label("File:");
panel.add(labelfilepath);
panel.add(labelfilename);
add(panel,?"North");
//?注冊(cè)窗體關(guān)閉事件
addWindowListener(new?WindowAdapter()?{
public?void?windowClosing(WindowEvent?e)?{
System.exit(0);
}
});
setVisible(true);
}
//?打開(kāi)
private?void?open()?{
FileDialog?dialog?=?new?FileDialog(this,?"Open",?0);
dialog.setVisible(true);
filepath?=?dialog.getDirectory();
if?(filepath?!=?null)?{
labelfilepath.setText("Dir:"?+?filepath);
//?顯示文件列表
list.removeAll();
File?filedir?=?new?File(filepath);
File[]?filelist?=?filedir.listFiles();
for?(File?file?:?filelist)?{
String?filename?=?file.getName().toLowerCase();
if?(filename.endsWith(".mp3")?||?filename.endsWith(".wav"))?{
list.add(filename);
}
}
}
}
//?播放
private?void?play()?{
try?{
isStop?=?true;//?停止播放線程
//?等待播放線程停止
System.out.print("Start:"?+?filename);
while?(!hasStop)?{
System.out.print(".");
try?{
Thread.sleep(10);
}?catch?(Exception?e)?{
}
}
System.out.println("");
File?file?=?new?File(filepath?+?filename);
labelfilename.setText("Playing:"?+?filename);
//?取得文件輸入流
audioInputStream?=?AudioSystem.getAudioInputStream(file);
audioFormat?=?audioInputStream.getFormat();
//?轉(zhuǎn)換mp3文件編碼
if?(audioFormat.getEncoding()?!=?AudioFormat.Encoding.PCM_SIGNED)?{
audioFormat?=?new?AudioFormat(AudioFormat.Encoding.PCM_SIGNED,
audioFormat.getSampleRate(),?16,?audioFormat
.getChannels(),?audioFormat.getChannels()?*?2,
audioFormat.getSampleRate(),?false);
audioInputStream?=?AudioSystem.getAudioInputStream(audioFormat,
audioInputStream);
}
//?打開(kāi)輸出設(shè)備
DataLine.Info?dataLineInfo?=?new?DataLine.Info(
SourceDataLine.class,?audioFormat,
AudioSystem.NOT_SPECIFIED);
sourceDataLine?=?(SourceDataLine)?AudioSystem.getLine(dataLineInfo);
sourceDataLine.open(audioFormat);
sourceDataLine.start();
//?創(chuàng)建獨(dú)立線程進(jìn)行播放
isStop?=?false;
Thread?playThread?=?new?Thread(new?PlayThread());
playThread.start();
}?catch?(Exception?e)?{
e.printStackTrace();
}
}
class?PlayThread?extends?Thread?{
byte?tempBuffer[]?=?new?byte[320];
public?void?run()?{
try?{
int?cnt;
hasStop?=?false;
//?讀取數(shù)據(jù)到緩存數(shù)據(jù)
while?((cnt?=?audioInputStream.read(tempBuffer,?0,
tempBuffer.length))?!=?-1)?{
if?(isStop)
break;
if?(cnt??0)?{
//?寫(xiě)入緩存數(shù)據(jù)
sourceDataLine.write(tempBuffer,?0,?cnt);
}
}
//?Block等待臨時(shí)數(shù)據(jù)被輸出為空
sourceDataLine.drain();
sourceDataLine.close();
hasStop?=?true;
}?catch?(Exception?e)?{
e.printStackTrace();
System.exit(0);
}
}
}
public?static?void?main(String?args[])?{
new?MusicPlayer();
}
}
要讓照片隨機(jī)播放,需要把照片名改成比如photo1.jpg,photo2.jpg,photo3.jpg...的有序號(hào)順序排列的文件名,
然后把改名后的照片文件放到你的項(xiàng)目名的目錄下,比如你的項(xiàng)目名叫"slideshow",你就把照片文件放到slideshow文件夾下.
最后把下面的Java程序拷貝到你的項(xiàng)目中,把有DD類(lèi)名的地方改成你的類(lèi)名,就行了.
完整的讓一些照片在JFrame窗體里自動(dòng)隨機(jī)播放的幻燈片程序如下
(我用的圖片文件是photo1.jpg,photo2.jpg,photo3.jpg,注意事項(xiàng)在注釋中注明
import java.awt.Graphics;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
public class DD extends JFrame implements Runnable{
ImageIcon ii=new ImageIcon("photo1.jpg");//這里換成你的圖片文件名,放在你的項(xiàng)目名的文件夾中
DD(){
super("Slide");
setSize(400, 400);
setLocationRelativeTo(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
public void paint(Graphics g){
super.paint(g);
g.drawImage(ii.getImage(),0,0,400,400,null);
}
@Override
public void run() {
while(true){
try {
Thread.sleep(500);//這里是幻燈片播放間隔的時(shí)間,這里為500毫秒=0.5秒
} catch (InterruptedException e) {
e.printStackTrace();
}
int i=(int)(Math.random()*3)+1;//這里是產(chǎn)生從1-3的隨機(jī)數(shù),如果你有6個(gè)圖片文件,把3改成6就是從1-6的隨機(jī)數(shù)了.
ii=new ImageIcon("photo"+i+".jpg");//這里調(diào)用你的圖片文件,如果你有6個(gè)圖片文件,改成從1-6的文件名方便調(diào)用
this.repaint();
}
}
public static void main(String[] args) {
DD d=new DD();
Thread t=new Thread(d);
t.start();
}
}
這個(gè)只要你引用自己背地的MediaPlayer就可以了;代碼:
div id="FlashFile"
object id="player" height="170" width="220"
classid="CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6"
param NAME="AutoStart" VALUE="1"
!--是否自動(dòng)播放--
param NAME="Balance" VALUE="0"
!--調(diào)整左右聲道平衡,同上面舊播放器代碼--
param name="enabled" value="-1"
!--播放器是否可人為控制--
param NAME="EnableContextMenu" VALUE="-1"
!--是否啟用上下文菜單--
param NAME="url" value="soft/%=file%"http://源文件路徑
!--播放的文件地址--
param NAME="PlayCount" VALUE="1"
!--播放次數(shù)控制,為整數(shù)--
param name="rate" value="1"
!--播放速率控制,1為正常,允許小數(shù),1.0-2.0--
param name="currentPosition" value="0"
!--控件設(shè)置:當(dāng)前位置--
param name="currentMarker" value="0"
!--控件設(shè)置:當(dāng)前標(biāo)記--
param name="defaultFrame" value=""
!--顯示默認(rèn)框架--
param name="invokeURLs" value="0"
!--腳本命令設(shè)置:是否調(diào)用URL--
param name="baseURL" value=""
!--腳本命令設(shè)置:被調(diào)用的URL--
param name="stretchToFit" value="0"
!--是否按比例伸展--
param name="volume" value="50"
!--默認(rèn)聲音大小0%-100%,50則為50%--
param name="mute" value="0"
!--是否靜音--
param name="uiMode" value="mini"
!--顯示模式:Full顯示全部;mini簡(jiǎn)化;None不顯示控制;invisible全部不顯示--
param name="windowlessVideo" value="0"
!--如果是0可以允許全屏,否則只能在窗口中查看--
param name="fullScreen" value="1"
!--開(kāi)始播放是否自動(dòng)全屏--
param name="enableErrorDialogs" value="-1"
!--是否啟用錯(cuò)誤提示報(bào)告--
param name="SAMIStyle" value
!--SAMI樣式--
param name="SAMILang" value
!--SAMI語(yǔ)言--
param name="SAMIFilename" value
!--字幕ID--
/object
/div
import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.FileDialog;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.media.ControllerClosedEvent;
import javax.media.ControllerEvent;
import javax.media.ControllerListener;
import javax.media.EndOfMediaEvent;
import javax.media.Manager;
import javax.media.MediaLocator;
import javax.media.NoPlayerException;
import javax.media.Player;
import javax.media.PrefetchCompleteEvent;
import javax.media.RealizeCompleteEvent;
import javax.media.Time;
import javax.swing.JCheckBoxMenuItem;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;
public class JMFMediaPlayer extends JFrame implements ActionListener,
ControllerListener, ItemListener {
// JMF的播放器
Player player;
// 播放器的視頻組件和控制組件
Component vedioComponent;
Component controlComponent;
// 標(biāo)示是否是第一次打開(kāi)播放器
boolean first = true;
// 標(biāo)示是否需要循環(huán)
boolean loop = false;
// 文件當(dāng)前目錄
String currentDirectory;
// 構(gòu)造方法
public JMFMediaPlayer(String title) {
super(title);
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e){
// 用戶點(diǎn)擊窗口系統(tǒng)菜單的關(guān)閉按鈕
// 調(diào)用dispose以執(zhí)行windowClosed
dispose();
}
public void windowClosed(WindowEvent e){
if (player != null){
// 關(guān)閉JMF播放器對(duì)象
player.close();
}
System.exit(0);
}
});
// 創(chuàng)建播放器的菜單
JMenu fileMenu = new JMenu("文件");
JMenuItem openMemuItem = new JMenuItem("打開(kāi)");
openMemuItem.addActionListener(this);
fileMenu.add(openMemuItem);
// 添加一個(gè)分割條
fileMenu.addSeparator();
// 創(chuàng)建一個(gè)復(fù)選框菜單項(xiàng)
JCheckBoxMenuItem loopMenuItem = new JCheckBoxMenuItem("循環(huán)", false);
loopMenuItem.addItemListener(this);
fileMenu.add(loopMenuItem);
fileMenu.addSeparator();
JMenuItem exitMemuItem = new JMenuItem("退出");
exitMemuItem.addActionListener(this);
fileMenu.add(exitMemuItem);
JMenuBar menuBar = new JMenuBar();
menuBar.add(fileMenu);
this.setJMenuBar(menuBar);
this.setSize(200, 200);
try {
// 設(shè)置界面的外觀,為系統(tǒng)外觀
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
SwingUtilities.updateComponentTreeUI(this);
} catch (Exception e) {
e.printStackTrace();
}
this.setVisible(true);
}
/**
* 實(shí)現(xiàn)了ActionListener接口,處理組件的活動(dòng)事件
*/
public void actionPerformed(ActionEvent e) {
if (e.getActionCommand().equals("退出")) {
// 調(diào)用dispose以便執(zhí)行windowClosed
dispose();
return;
}
FileDialog fileDialog = new FileDialog(this, "打開(kāi)媒體文件", FileDialog.LOAD);
fileDialog.setDirectory(currentDirectory);
fileDialog.setVisible(true);
// 如果用戶放棄選擇文件,則返回
if (fileDialog.getFile() == null){
return;
}
currentDirectory = fileDialog.getDirectory();
if (player != null){
// 關(guān)閉已經(jīng)存在JMF播放器對(duì)象
player.close();
}
try {
// 創(chuàng)建一個(gè)打開(kāi)選擇文件的播放器
player = Manager.createPlayer(new MediaLocator("file:"
+ fileDialog.getDirectory() + fileDialog.getFile()));
} catch (java.io.IOException e2) {
System.out.println(e2);
return;
} catch (NoPlayerException e2) {
System.out.println("不能找到播放器.");
return;
}
if (player == null) {
System.out.println("無(wú)法創(chuàng)建播放器.");
return;
}
first = false;
this.setTitle(fileDialog.getFile());
// 播放器的控制事件處理
player.addControllerListener(this);
// 預(yù)讀文件內(nèi)容
player.prefetch();
}
/**
* 實(shí)現(xiàn)ControllerListener接口的方法,處理播放器的控制事件
*/
public void controllerUpdate(ControllerEvent e) {
// 調(diào)用player.close()時(shí)ControllerClosedEvent事件出現(xiàn)。
// 如果存在視覺(jué)部件,則該部件應(yīng)該拆除(為一致起見(jiàn),
// 我們對(duì)控制面板部件也執(zhí)行同樣的操作)
if (e instanceof ControllerClosedEvent) {
if (vedioComponent != null) {
this.getContentPane().remove(vedioComponent);
this.vedioComponent = null;
}
if (controlComponent != null) {
this.getContentPane().remove(controlComponent);
this.controlComponent = null;
}
return;
}
// 如果是媒體文件到達(dá)尾部事件
if (e instanceof EndOfMediaEvent) {
if (loop) {
// 如果允許循環(huán),則重新開(kāi)始播放
player.setMediaTime(new Time(0));
player.start();
}
return;
}
// 如果是播放器預(yù)讀事件
if (e instanceof PrefetchCompleteEvent) {
// 啟動(dòng)播放器
player.start();
return;
}
// 如果是文件打開(kāi)完全事件,則顯示視頻組件和控制器組件
if (e instanceof RealizeCompleteEvent) {
vedioComponent = player.getVisualComponent();
if (vedioComponent != null){
this.getContentPane().add(vedioComponent);
}
controlComponent = player.getControlPanelComponent();
if (controlComponent != null){
this.getContentPane().add(controlComponent, BorderLayout.SOUTH);
}
this.pack();
}
}
// 處理“循環(huán)”復(fù)選框菜單項(xiàng)的點(diǎn)擊事件
public void itemStateChanged(ItemEvent e) {
loop = !loop;
}
public static void main(String[] args){
new JMFMediaPlayer("JMF媒體播放器");
}
}
試試吧,我這里運(yùn)行正常