📄 webplayer.java
字号:
package webPlayer;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
public class WebPlayer extends JApplet implements Runnable
{
private static final long serialVersionUID = 345678L;
private javax.swing.JPanel jContentPanel = null;
private javax.swing.JPanel jPanelNorth = null;
private javax.swing.JPanel jPanelSouth = null;
private javax.swing.JPanel jPanelEast = null;
private javax.swing.JPanel jPanelWest = null;
private javax.swing.JPanel jPanelCenter = null;
private javax.swing.JPanel jPanelPlay = null;
private javax.swing.JLabel labelNorth = null;
private javax.swing.JLabel labelSouth = null;
private javax.swing.JLabel labelEast = null;
private javax.swing.JLabel labelWest = null;
// private javax.swing.JLabel labelCenter = null ;
private MyJButton playButton = null;
private boolean Selected = true;
private boolean runPlay = true;
static Thread startPlay ;
// int i = 1;
int index = 0;
public void init()
{
this.setContentPane(getJContentPanel());
this.setSize(166, 230);
}
private javax.swing.JPanel getJContentPanel()
{
Color playColor = new Color(100, 100, 100);
Font playFont = new Font("default", Font.BOLD, 10);
if (jContentPanel == null)
{
jContentPanel = new javax.swing.JPanel();
jContentPanel.setLayout(new BorderLayout());
jContentPanel.setBackground(java.awt.Color.WHITE);
// 将applet的总范围设置为broderlayout,构成播放器的大体结构
if (jPanelNorth == null)
{
javax.swing.JPanel jPanelNorth = new javax.swing.JPanel(new GridLayout(1, 0, 0, 0));
ImageIcon imgNorth = new ImageIcon("north.jpg");
if (labelNorth == null)
{
JLabel labelNorth = new JLabel(imgNorth, JLabel.CENTER); // 在label里面加入图片
jPanelNorth.add(labelNorth, null);// 将有图片的label放进上部分的jpanel
}
jContentPanel.add(jPanelNorth, BorderLayout.NORTH); // 上部分的jpanel放入整个borderlayout布局中
}
if (jPanelSouth == null)
{
javax.swing.JPanel jPanelSouth = new javax.swing.JPanel(new GridLayout(2, 0, 0, 0));
// 将加入borderlayout.south的jpanel分成两列
Icon imgSouth = new ImageIcon("south.jpg");
if (labelSouth == null)
{
JLabel labelSouth = new JLabel(imgSouth, JLabel.CENTER);
jPanelSouth.add(labelSouth, null);// 将带标签的图像放入第一列
if (jPanelPlay == null)
{
javax.swing.JPanel jPanelPlay = new javax.swing.JPanel(new GridLayout(1, 1, 0, 0));
// 将放入jpanelsouth第二列的jpanelplay分成两格,这里用
// gridlayout也很重要,避免了第一列的图像与其它模块产生缝隙
// jPanelPlay.setLayout(null);
jPanelPlay.add(playButton = new MyJButton("PLAY", playColor, playFont), null);
jPanelPlay.add(playButton = new MyJButton("STOP", playColor, playFont), null);
jPanelSouth.add(jPanelPlay, null);
}
// jPanelSouth.add(playButton = new
// MyJButton("play",playColor,playFont ),null);
}
jContentPanel.add(jPanelSouth, BorderLayout.SOUTH);
}
if (jPanelWest == null)
{
javax.swing.JPanel jPanelWest = new javax.swing.JPanel(new GridLayout(1, 0, 0, 0));
Icon imgWest = new ImageIcon("west.jpg");
if (labelWest == null)
{
JLabel labelWest = new JLabel(imgWest, JLabel.LEFT);
jPanelWest.add(labelWest, null);
}
jContentPanel.add(jPanelWest, BorderLayout.WEST);
}
if (jPanelEast == null)
{
javax.swing.JPanel jPanelEast = new javax.swing.JPanel( new GridLayout(1, 0, 0, 0));
Icon imgEast = new ImageIcon("east.jpg");
if (labelEast == null)
{
JLabel labelEast = new JLabel(imgEast, JLabel.RIGHT);
jPanelEast.add(labelEast, BorderLayout.NORTH);
}
jContentPanel.add(jPanelEast, BorderLayout.EAST);
}
/*
* if(jPanelCenter == null ) {
*
* String image =new String(); switch (i) { case 1: image = "1.jpg";
* break; case 2: image = "2.jpg"; break; case 3: image = "3.jpg";
* break; case 4: image = "4.jpg"; break; case 5: image = "5.jpg";
* break; default: break; }
*
*
*
* javax.swing.JPanel jPanelCenter = new javax.swing.JPanel(); Icon
* imgCenter=new ImageIcon(image); if (labelCenter == null) { JLabel
* labelCenter=new JLabel(imgCenter,JLabel.CENTER);
* jPanelCenter.add(labelCenter,BorderLayout.CENTER);
*
*
*
* } jContentPanel.add(jPanelCenter, BorderLayout.CENTER);
*
* }
*/
if (jPanelCenter == null)
{
jPanelCenter = new JCenterPanel();// 这个体现了调用方法的作用,先实例化一个对应类的变量
jContentPanel.add(jPanelCenter, BorderLayout.CENTER);// 调用drawimage的主动画界面
}
}
return jContentPanel;
}
//add new thread
public void startPlay ()
{
runPlay = true ;
Thread thread = new Thread(this);
thread.start();
}
//addIndex methond
public void run()
{
while (runPlay)
{
// index++;
// System.out.println(index);
jPanelCenter.repaint();
try {Thread.sleep(100);}
catch (InterruptedException e) {
// TODO: handle exception
}
}
}
//
public void cleanIndex()
{
runPlay = false ;
index = 0;
jPanelCenter.repaint();
}
//主要的面板布局实现
public class JCenterPanel extends JPanel
{
Image[] img = new Image[10];
public JCenterPanel()
{
try
{
for (int i = 0; i < 10; i++)
{
img[i] = getImage(getCodeBase(), (i+1) + ".jpg");
}
}
catch (Exception e)
{
e.printStackTrace();
}
}
public void paintComponent(Graphics g)
{
super.paintComponent(g);
// if (img[index] == null ) return;
index = (index+1) % 10;
g.drawImage(img[index], 0, 0, this);
}
public void playClick()
{
startPlay();
}
public void stopClick()
{
cleanIndex();
}
}
// 实现中间的动画转换
public class MyJButton extends JButton
{
Timer mouseTimer = null;
public MyJButton(String pTitle, Color pBk, java.awt.Font pFont)
{
this.setText(pTitle);
this.setBackground(pBk);
this.setFont(pFont);
this.addMouseListener(new MouseAdapter()
{
public void mouseClicked(MouseEvent e)
{
if (e.getClickCount() == 1)
{
mouseTimer = new javax.swing.Timer(350,
new ActionListener()
{
public void actionPerformed(ActionEvent evt)
{
if (!Selected)
return;
if (getText().equals("PLAY"))
{
JCenterPanel jCenterPanel = new JCenterPanel();
jCenterPanel.playClick();// 接口的调用
setBackground(java.awt.Color.GREEN);
mouseTimer.stop();
}
else if (getText().equals("STOP"))
{
JCenterPanel jCenterPanel = new JCenterPanel();
jCenterPanel.stopClick();
setBackground(java.awt.Color.RED);
mouseTimer.stop();
}
}
});
mouseTimer.start();
}
else if (e.getClickCount() == 2 && mouseTimer.isRunning())
{
mouseTimer.stop();
setBackground(java.awt.Color.blue);
}
}
});
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -