Java中使用一个Frame,在其构造方法中又写了一个Frame,在构造方法中的Frame不显示

顾染尘 2019-12-06 04:37:47

package com.SoftWare.serviceComp.video;

import java.awt.BorderLayout;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JRootPane;

import com.SoftWare.jcappfr.BaseControl.swing.KnScrollPane;

import root.InnerFrame;
import root.KnTopoDesktop;
import uk.co.caprica.vlcj.component.EmbeddedMediaPlayerComponent;
import uk.co.caprica.vlcj.player.embedded.EmbeddedMediaPlayer;

/**
*
* 承载所有设备信息的Frame,即主Frame
*
* */
public class VideoInnerFrame extends InnerFrame {
// static MainWindow frame;
VideoMainPnl oView = null;
//*************************************************************
// private static final long serialVersionUID = 1L;
private JPanel contentPane;
//创建播放器的界面需要使用 EmbeddedMediaPlayerComponent
EmbeddedMediaPlayerComponent playerComponent;
public VideoInnerFrame() {

// class MainW extends JFrame {

/**
*
*/

// public MainW() {
// this.setUndecorated(true); // 去掉窗口的装饰
this.getRootPane().setWindowDecorationStyle(JRootPane.NONE);
System.out.println("liuchang ################# 44444444444444444");
contentPane = new JPanel();
contentPane.setLayout(new BorderLayout(250, 175));
setContentPane(contentPane);
JPanel videoPane = new JPanel();
contentPane.add(videoPane, BorderLayout.CENTER);
videoPane.setLayout(new BorderLayout(250, 175));
//在 videoPane 创建之后实例化 playerComponent
playerComponent=new EmbeddedMediaPlayerComponent();
playerComponent.getVideoSurface().addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {//鼠标双击事件
int click = e.getClickCount();
if(click==2) {
VideoPlayer1.normal();//双击放大
}
if(click==1) {
VideoPlayer1.play();//单击播放
}
}
});
//将 playerComponent 添加到 videoPane 中,并指定布局
videoPane.add(playerComponent, BorderLayout.CENTER);
}
//返回媒体播放器的实例
public EmbeddedMediaPlayer getMediaPlayer() {
return playerComponent.getMediaPlayer();
}





// }


// }


//*************************************************************
public VideoInnerFrame(KnTopoDesktop m_KnTopoDesktop, String str,
boolean bol1, boolean bol2, boolean bol3, boolean bol4) {
super(m_KnTopoDesktop, str, bol1, bol2, bol3, bol4);
oView = new VideoMainPnl(m_KnTopoDesktop);
// frame = new MainWindow();
// oView.Load_GUIEnd();
// this.add(oView);
VideoPlayer1 video = new VideoPlayer1();
// VideoPlayer2 video2 = new VideoPlayer2();
// VideoPlayer3 video3 = new VideoPlayer3();
// VideoPlayer4 video4 = new VideoPlayer4();
// VideoPlayer5 video5 = new VideoPlayer5();
// VideoPlayer6 video6 = new VideoPlayer6();
// VideoPlayer7 video7 = new VideoPlayer7();
// VideoPlayer8 video8 = new VideoPlayer8();
// VideoPlayer9 video9 = new VideoPlayer9();

System.out.println("这是第几步");
KnScrollPane knScrollPane = new KnScrollPane();
getContentPane().add(knScrollPane, BorderLayout.CENTER);
knScrollPane.setViewportView(oView);
oView.add(video);
// oView.add(frame);
// frame.setBounds(350, 55, 250, 175);
// this.add(frame,BorderLayout.NORTH);
this.setResizable(false);
this.setSize(800, 600);
this.setVisible(true);
}

// public VideoInnerFrame() {
// // TODO Auto-generated constructor stub
// }

/**
*
*/
private static final long serialVersionUID = 1L;


}

package com.SoftWare.serviceComp.video;

import java.awt.EventQueue;


public class VideoPlayer1 {

//将声明转移到类中,并设为 static
// static MainWindow frame;
// static MainW frame;
static VideoInnerFrame frame;
public void video() {
System.out.println("liuchang @################## 3333333333333");
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
// frame = new MainWindow();
frame = new VideoInnerFrame();
// frame = frame1.new MainW();
frame.setVisible(true);
frame.getMediaPlayer().prepareMedia("E:\\C++\\03\\test.mp4");
frame.getMediaPlayer().toggleFullScreen();
frame.setBounds(350, 55, 250, 175);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
//播放
public static void play() {
frame.getMediaPlayer().play();
}
public static void normal() {
// if(frame.getExtendedState() != frame.MAXIMIZED_BOTH)
// frame.setExtendedState(frame.MAXIMIZED_BOTH);
// else
// frame.setExtendedState(frame.NORMAL);
}
}

构造方法的使用有一点不好就是双击放大和单击播放不能实现
...全文
106 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
顾染尘 2019-12-13
  • 打赏
  • 举报
回复
已解决,怎么删帖子?
顾染尘 2019-12-06
  • 打赏
  • 举报
回复
实际运行只显示一个数frame this.setSize(800, 600); this.setVisible(true); 都用了,也不显示

58,453

社区成员

发帖
与我相关
我的任务
社区描述
Java Eclipse
社区管理员
  • Eclipse
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧