java全屏独占模式
全屏独占模式
经常使用DirectX API的程序员可能对全屏独占模式已经很熟悉了 。它允许程序员通过悬挂操作系统来直接在屏幕上进行绘制。在传统的Java GUI 程序中, AWT 通过事件分派线程和在适当的时候调用组件的paint()方法来传送来自操作系统的paint事件。在全屏独占模式应用中你可以通过程序进行绘制。 另外, 传统的GUI应用程序用户对于位深和屏幕尺寸的控制是有限的, 在全屏独占应用程序中, 可以通过显示模式(displayMode)来控制位深、屏幕长宽、刷新率。
全屏独占模式是通过java.awt.GraphicsDevice 对象控制的 。在单个或多监视器系统中你可以通过调用java.awt.GraphicsEnvironment的getScreenDevices()方法来获得可用的screen deviece列表 ; 在单屏单监视器系统中, 可以通过调用getDefaultScreenDevice来获得.
public boolean isFullScreenSupported() 判断是否支持全屏模式
public void setFullScreenWindow(Window w) 将w设置成全屏模式,如果全屏模式不支持,w会置到(0,0)位置,重新设置大小以适应屏幕。当传递的参数为NULL时将退出全屏模式。
使用全屏独占模式中需要注意的问题和一些技巧:
在进入全屏独占模式前首先检查是否支持全屏,如果不被支持的话性能将有可能降低。
使用try...finally 将使程序更加健壮. 它将避免你的程序无法退出全屏独占模式:
GraphicsDevice myDevice;
Window myWindow;
try {
myDevice.setFullScreenWindow(myWindow);
...
} finally {
myDevice.setFullScreenWindow(null);
}
通过setUndecorated()方法去除修饰
setResizable(false),在全屏独占模式中改变大小将会引发不可预测甚至危险的结果。
示例:
public class ScreenManager {
private GraphicsDevice device;
/**
* 创建屏幕管理器对象
*/
public ScreenManager(){
device=GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice();
}
/**
* 设置全屏独占模式 ,该方法可以将window设置为全屏模式
*/
public void setFullScreen(DisplayMode displayMode, JFrame window){
window.setUndecorated(true);//取消window装饰
window.setResizable(false);
device.setFullScree
相关文档:
Java几个常用的布局管理器类:
包
类
特点
java.awt
CardLayout
将组件象卡片一样放置在容器中,在某一时刻只有一个组件可见
java.awt
FlowLayout
将组件按从左到右而后从上到下的顺序依次排列,一行不能放完则折到下一行继续放置
java.awt
GridLayout
形似一个无框线的表格,每个单元格中放一个组件
java.awt
......
1、工厂模式:客户类和工厂类分开。消费者任何时候需要某种产品,只需向工厂请求即可。消费者无须修改就可以接纳新产品。缺点是当产品修改时,工厂类也要做相应的修改。如:如何创建及如何向客户端提供。
2、建造模式:将产品的内部表象和产品的生成过程分割开来,从而使一个建造过程生成具有不同的 ......
JAVA反射机制
JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。
Java反射机制主要提供了以下功能: 在运行时判断任意一个对象所属 ......
一、
Java
基础
第
01
题:
作用域
public,private,protected,
以及不写时的区别
第
02
题:
Anonymous Inner Class (
匿名内部类
)
是否可以
extends(
继承
)
其它类,是否可以
implements(
实现
......