解决方案 »
- eclipse 可视化 为什么图片没有显示出来?
- 获取webroot下upload文件夹下图片文件
- 初始化块和静态初始化块的区别?
- 有关内部类变量的访问的问题
- java 如何进行串口通信
- 在线等待:求助,为什么在我本地(TOMCAT)上面没有问题,但部署在WebSphere却报这种错误啊???
- word表格导入Oracle数据库或Excel表格带图片导入Oracle数据库
- WINDOWS-延缓写入失败的问题
- 请教jdbc连接到access数据库进行查询操作的问题,多谢拉
- 求救:编程实现dos下dir功能
- String(byte[] bytes, int offset, int length)
- 控制面板的JAVA是错误图标,重装也没用,求救!
当改变窗口大小的时候窗口要重绘,这时组件才显示出来
把你加组件的代码放到JF1.setVisible(true);后面就行了这是我改的代码:import javax.swing.JFrame ;
import javax.swing.JPanel ;import javax.media.ControllerEvent;
import javax.media.ControllerListener;
import javax.media.Manager;
import javax.media.NoPlayerException;
import javax.media.Player ;
import javax.media.PrefetchCompleteEvent;
import javax.media.RealizeCompleteEvent;import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component ;
import java.awt.Dimension;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;import java.io.IOException;
import java.net.URL;public class mymp3
{
private JFrame JF1 ;
// private JPanel JP1 ;
private Player player ;
private Component com_contrl ;//java中的一个组件
private ControllerListener conLis ;
private Dimension dim ;//Java的一个类,封装了一个构件的高度和宽度
//初始化播放器
private void ini_player(URL url) throws IOException
{
try
{
player = Manager.createPlayer(url) ;
}
catch(NoPlayerException noE)
{
System.out.println("没有发现播放器存在");
noE.printStackTrace() ;
}
}
//初始化参数
private void ini_Field()
{
JF1 = new JFrame("播放器") ;
// JP1 = new JPanel() ;
dim = new Dimension() ;
}
//注册controllerListener
private void register()
{
conLis = new ControllerListener()
{
@Override
public void controllerUpdate(ControllerEvent ce)
{
if(ce instanceof RealizeCompleteEvent)
{
player.prefetch() ;
}
if(ce instanceof PrefetchCompleteEvent)
{
if(com_contrl != null)
{
return ;
}
else if( (com_contrl = player.getControlPanelComponent())!= null )
{
// JP1.add(com_contrl , BorderLayout.EAST) ;
JF1.setSize(300 + dim.width , 320+dim.height) ;
//JF1.validate();
//JF1.repaint();
JF1.setVisible(true) ; JF1.add(com_contrl , BorderLayout.SOUTH) ;//com_contrl.setVisible(true);
dim = com_contrl.getPreferredSize();}
else
{
System.out.println("添加组件失败");
}
}
}
} ;
player.addControllerListener(conLis) ;
}
//播放设置
private void player(URL url) throws IOException
{
ini_Field() ;
ini_player(url) ;
JF1.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent we)
{
if(player != null)
{
player.close();
}
System.exit(0);
}
});
register() ;// JP1.setPreferredSize(new Dimension(300+dim.width, 50+dim.height)) ;
// JP1.setBackground(Color.BLUE) ;
//JF1.pack();// JF1.add(JP1 , BorderLayout.SOUTH) ;
//JF1.add(com_contrl , BorderLayout.SOUTH) ;player.realize() ;
player.start() ;}
//构造函数
public mymp3(URL url) throws IOException
{
player(url) ;
}
//main函数
public static void main(String[] args)
{
try
{
URL url = new URL("file:///D:\\Music\\My music\\meiyouqing_106015_m.mp3") ;
if(url.getFile() == null)
{
throw new IOException("未找到文件") ;
}
else
{
new mymp3(url) ;
}
}
catch(IOException ioe)
{
ioe.printStackTrace() ;
}
}
}你可以试一试!
当改变窗口大小的时候窗口要重绘,这时组件才显示出来"我理解不了,您能再给我解释一下吗?