Summary:
just provide any JPanel which you want to make it diaplay as full screen mode, it's very helpful for you
to use this utility class.
package com.gloomyfish.smtp.client;
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.GraphicsDevice;
import java.awt.GraphicsEnvironment;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JPanel;
/**
* @author gloomy fish
* @date 2011-03-03
*/
public class FullScreenViewer {
private Dimension size;
private JPanel sourcePanel;
private JPanel buttonsPanel;
private JButton exitBtn;
/**
*
display any JComponent as full screen, need to pass in root Container
*
* invoke swing graphic utility tool, it's a bug!! when double buffer image
* JFreechart * @param JFrame rootComponent
*/
public void showFullScreenOne(Frame rootComponent) {
final JDialog dialog = new JDialog(rootComponent, true);
dialog.getContentPane().setLayout(new BorderLayout());
final Container parent = sourcePanel.getParent();
dialog.getContentPane().add(sourcePanel, BorderLayout.CENTER);
dialog.getContentPane().add(buttonsPanel, BorderLayout.SOUTH);
dialog.setUndecorated(true);
exitBtn.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
dialog.setVisible(false);
}
});
GraphicsEnvironment ge = GraphicsEnvironment
.getLocalGraphicsEnvironment();
GraphicsDevice gd = ge.getDefaultScreenDevice();
if (gd.isFullScreenSupported()) {
try {
gd.setFullScreenWindow(dialog);
} finally {
gd.setFullScreenWindow(null);
dialog.dispose();
if (parent != null) {
sourcePanel.setSize(size);
parent.add(sourcePanel);
}
}
}
}
/**
* * it's a bug!! when double buffer image JFreechart
*
* @param owner
*/
public void showFullScreenTwo(Frame owner) {
final JDialog dialog = new JDialog(owner, true);
dialog.getContentPane().setLayout(new BorderLayout());
final Container parent = sourcePanel.getParent();
dialog.getContentPane().add(sourcePanel, BorderLayout.CENTER);
dialog.getContentPane().add(buttonsPanel, BorderLayout.SOUTH);
exitBtn.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
dialog.setVisible(false);
dialog.dispose();
if (parent != null) {
sourcePanel.setSize(size);
parent.add(sourcePanel);
}
}
});
Toolkit tk = Toolkit.getDefaultToolkit();
int xSize = ((int) tk.getScreenSize().getWidth());
int ySize = ((int) tk.getScreenSize().getHeight());
dialog.setUndecorated(true);
dialog.setSize(xSize, ySize);
dialog.setResizable(false);
dialog.setVisible(true);
dialog.toFront();
}
public FullScreenViewer(JPanel sourcePanel) {
this.sourcePanel = sourcePanel;
initComponents();
}
private void initComponents() {
exitBtn = new JButton("Exit");
buttonsPanel = new JPanel();
buttonsPanel.setLayout(new FlowLayout(FlowLayout.CENTER));
buttonsPanel.add(exitBtn);
size = new Dimension(sourcePanel.getSize().width,
sourcePanel.getSize().height);
}
}
PS:
There is an potential problem in above code implementation, just contact me
if you found this issue as well...
分享到:
相关推荐
Java Swing实现的生命游戏Java Swing实现的生命游戏Java Swing实现的生命游戏 Java Swing实现的生命游戏Java Swing实现的生命游戏Java Swing实现的生命游戏 Java Swing实现的生命游戏Java Swing实现的生命游戏Java ...
java swing实现学生住宿管理系统(源码) java swing实现学生住宿管理系统(源码) java swing实现学生住宿管理系统(源码) java swing实现学生住宿管理系统(源码) java swing实现学生住宿管理系统(源码) java ...
java Swing多Jpanel仿安卓苹果桌面动态切换滑动效果
Java Swing实现仿Chrome浏览器跳跳龙小游戏 Java Swing实现仿Chrome浏览器跳跳龙小游戏 Java Swing实现仿Chrome浏览器跳跳龙小游戏 Java Swing实现仿Chrome浏览器跳跳龙小游戏 Java Swing实现仿Chrome浏览器跳跳龙小...
用java swing 实现的pdf阅读器 很强大 喜欢。。。
JavaSwing 实现俄罗斯方块游戏。
可以直接输入年份数字,切换到年份 点击日期,提示是否有日志记录,如果有日志,会显示在右侧面板 日志记录可以保存,修改,删除,查看 记录日志是通过io流的方式写到本地的磁盘中 详见:...
利用JavaSwing实现简单的计算器,输入计算表达式得出结果,支持左右括号,负数以及小数。简单处理表达式不正确的情况,并且负数需打上括号。
Java Swing实现添加数据到数据库(数据库使用Mysql)并查询数据显示在界面中。
java贪吃蛇javaswing实现贪吃蛇javaswing实现贪吃蛇javaswing实现贪吃蛇javaswing实现贪吃蛇javaswing实现贪吃蛇javaswing实现贪吃蛇javaswing实现贪吃蛇javaswing实现贪吃蛇javaswing实现贪吃蛇javaswing实现贪吃蛇...
实现了音乐列表、播放、暂停、上下歌曲切换等音乐播放器基本功能。利用到JavaSwing、多线程、音乐控制等多个知识点。且代码注释详细。欢迎下载~有问题可以私信我噢 ^_^
JAVA Swing 实现商品列表,数量加减 ,删除整行 Demo 单击 "添加 "按钮列表增加数据行 单击 数量单元格弹出数量加减窗口 单击 "删除"按钮 删掉当前行商品信息
本项目是一套java Swing mysql实现简单的购物系统,主要针对计算机相关专业需要项目实战练习的Java学习者。 包含:项目源码、数据库脚本、运行指导视频。 项目都经过严格调试,确保可以运行! 二、技术实现 后端:...
Java+Swing实现打飞机游戏。Java+Swing实现打飞机游戏。Java+Swing实现打飞机游戏。Java+Swing实现打飞机游戏。Java+Swing实现打飞机游戏。Java+Swing实现打飞机游戏。Java+Swing实现打飞机游戏。Java+Swing实现打...
java swing 实现的带启动界面的简易截图软件,启动界面有进度条,可保存可粘贴到qq微信,简单实用
JAVA SWing 实现C/S模式的数据库编程及WebServices 调用实现
Java开发作业基于JavaSwing实现的动作类游戏源码.zipJava开发作业基于JavaSwing实现的动作类游戏源码.zipJava开发作业基于JavaSwing实现的动作类游戏源码.zipJava开发作业基于JavaSwing实现的动作类游戏源码.zipJava...
java swing漂亮界面 超酷 javaswing教程
利用Java Swing 实现游戏开发,介绍java swing开发中最基本的容器、控件、边框等,其中教你实现一个菜单栏的关于对话框挺实用的!