📄 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 + -