?? resourcelocator.java
字號:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;
import java.net.*;
import java.applet.*;
//ResourceLocator.java 演示用資源定位器裝載圖片和音頻文件到應用程序和小應用程序
public class ResourceLocator extends JApplet
implements ActionListener,ItemListener{
//圖像畫板演示一個圖片
private ImagePanel imagePanel =new ImagePanel();
//Combo box選擇一個國家
private JComboBox jcboCountry = new JComboBox();
//Button 用來播放音頻文件
private JButton jbtPlayAnthem = new JButton("Play Anthem");
//選擇國家
private String country = "china";
/** 初始化applet*/
public void init(){
JPanel p = new JPanel();
p.add(new JLabel("選擇一個國家"));
p.add(jcboCountry);
p.add(jbtPlayAnthem);
//初始化 combo box
jcboCountry.addItem("China");
jcboCountry.addItem("Norway");
jcboCountry.addItem("America");
jcboCountry.addItem("India");
jcboCountry.addItem("Germany");
jcboCountry.addItem("Denmark");
//默認中國國旗
imagePanel.showImage(createImage("china.jpg"));
imagePanel.setPreferredSize(new Dimension(300,300));
getContentPane().add(p,BorderLayout.NORTH);
getContentPane().add(imagePanel,BorderLayout.CENTER);
imagePanel.setBorder(new LineBorder(Color.black,1));
//注冊監聽器
jbtPlayAnthem.addActionListener(this);
jcboCountry.addItemListener(this);
}
/** 處理響應事件*/
public void actionPerformed(ActionEvent e){
//得到文件名
String filename = null;
//.wav 音頻文件存放在文件夾anthem下
if (country.equals("China"))
filename = "china.wav";
else if(country.equals("Norway"))
filename = "norway.wav";
else if(country.equals("American"))
filename = "american.wav";
else if(country.equals("India"))
filename = "india.wav";
else if(country.equals("Germany"))
filename = "germany.wav";
else if(country.equals("Denmark"))
filename = "denmark.wav";
//創建音頻剪輯并播放它
createAudioClip(filename).play();
}
/**處理ItemEvent*/
public void itemStateChanged(ItemEvent e){
//選擇一個國家
country = (String)jcboCountry.getSelectedItem();
//得到文件名
String filename = null;
//.jpg文件存放在文件夾image中
if (country.equals("China"))
filename = "china.jpg";
else if(country.equals("Norway"))
filename = "norway.jpg";
else if(country.equals("American"))
filename = "american.jpg";
else if(country.equals("India"))
filename = "india.jpg";
else if(country.equals("Germany"))
filename = "germany.jpg";
else if(country.equals("Denmark"))
filename = "denmark.jpg";
//從文件夾image中裝載圖片,顯示在面板上
imagePanel.showImage(createImage(filename));
}
/** 從指定的文件中創建一個音頻*/
public AudioClip createAudioClip(String filename){
//獲得文件的URL
URL url = this.getClass().getResource("anthem/"+filename);
//返回音頻剪輯
return Applet.newAudioClip(url);
}
/** 從指定的文件中創建一個圖片*/
public Image createImage(String filename){
//獲得文件的URL
URL url = this.getClass().getResource("image/"+filename);
//獲得一個image icon
ImageIcon imageIcon = new ImageIcon(url);
//返回圖片
return imageIcon.getImage();
}
/** 主函數*/
public static void main(String []args){
//創建一個窗體
JFrame frame = new JFrame("升旗奏國歌");
//創建一個applet實例
ResourceLocator applet = new ResourceLocator();
//添加實例applet到窗體上
frame.getContentPane().add(applet,BorderLayout.CENTER);
//激活init() 和start()
applet.init();
applet.start();
//演示窗體
frame.pack();
frame.setVisible(true);
}
}
class ImagePanel extends JPanel {
public ImagePanel panel;
public Image img;
//構造方法
public ImagePanel() {
this.setBackground(Color.white);
}
//顯示圖片
public void showImage(Image image){
img=image;
panel = new ImagePanel();
}
//繪制圖片
public void paint(Graphics g){
g.drawImage(img,0,0,this);
}
//設置窗口大小
public void setPreferredSize(Dimension d){
setSize(d);
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -