`
ujoc
  • 浏览: 49047 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

Swing全屏幕模式

阅读更多

    也许用到的机会很少,但JDK还是为我们提供了这个的功能。像许多软件中的打印预览功能,还有某些文本编辑器中为了获得更大的编辑画面,也用到了Swing全屏幕模式,如果你有兴趣写一个像ACDSee这样的软件,使用Swing全屏幕模式可以让用户看到更大的图片画面。

    如何使用Swing全屏幕模式?

    关键是java.awt.*里面的两个与显示设备有关的类:GraphicsEnvironment和GraphicsDevice。

    GraphicsEnvironment为Java应用程序提供了特定平台的 GraphicsDevice对象和 Font 对象集合。这些GraphicsDevice可以是各种本机和远端机器的资源,如屏幕、打印机或者是Image Buffer,甚至是Graphics2D绘图方法的目标对象。

    而GraphicsDevice就是指特定的图形环境了,如屏幕和打印设备等。这样,我们就可以用GraphicsDevice来操纵屏幕了。GraphicsDevice提供的setFullScreenWindow()方法就是设置全屏幕用的。

    由于GraphicsEnvironment的构造器是受保护的(protected),我们不能直接构造一个GraphicsEnvironment 对象来获得GraphicsDevice对象。幸好它提供了getLocalGraphicsEnvironment()方法,用来获得一个 GraphicsEnvironment实例:

    GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();

    有了GraphicsEnvironment可以调用getDefaultScreenDevice方法获得当前的Swing全屏幕模式设备了:

    GraphicsDevice gd = ge.getDefaultScreenDevice();

    自己动手体验一下

    有了上面的简介,写一个实例来体验一下吧:

import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.GraphicsDevice;
import java.awt.GraphicsEnvironment;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JWindow;

public class FullScreenTest {

    public static void main(String[] args) {
        GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
        GraphicsDevice gd = ge.getDefaultScreenDevice();
        FullScreenWindow myWindow = new FullScreenWindow();
        if (gd.isFullScreenSupported()) {
            gd.setFullScreenWindow(myWindow);
        } else {
            System.out.println("Unsupportedfullscreen.");
        }
    }

    static class FullScreenWindow extends JWindow {

        public FullScreenWindow() {
            this.addMouseListener(new MouseAdapter() {
                @Override
            public void mousePressed(MouseEvent evt) {
                    quit();
                }
            });
        }
        public void quit() {
            this.dispose();
        }

        @Override
        public void paint(Graphics g) {
            g.setFont(new Font("Arial", Font.BOLD, 30));
            g.setColor(Color.RED);
            g.drawString("this is Full model", 100, 100);

        }
    }
}
 

分享到:
评论

相关推荐

    javaSwing皮肤大全.rar

    在Java Swing中,LookAndFeel是一种设计模式,用于实现组件的绘制方式,包括颜色、字体、布局和动画效果。 标题“javaSwing皮肤大全.rar”表明这是一个包含多种Swing LookAndFeel皮肤的压缩文件集合。这个压缩包...

    JAVA Swing实例讲解.zip

    Swing还提供了布局管理器,如FlowLayout、BorderLayout、GridLayout、 MigLayout和BoxLayout等,用于自动调整组件的位置和大小,使得界面在不同分辨率和屏幕尺寸下都能保持良好的显示效果。通过这些布局管理器,...

    Java swing学生信息管理系统

    2. **模型-视图-控制器(MVC)模式**:Swing应用程序通常遵循MVC设计模式,将数据模型、用户界面(视图)和业务逻辑(控制器)分离。在这个系统中,学生信息模型将存储所有学生的数据,视图负责展示这些信息,而控制...

    swing简易计算器

    在这款计算器中,可能使用了GridLayout或GridLayout的组合,使数字和运算符按钮整齐地排列在屏幕上。 在代码结构上,这款计算器可能采用了Model-View-Controller(MVC,模型-视图-控制器)设计模式。模型负责计算...

    SwingDesign.rar

    Swing 提供了多种布局管理器,例如 FlowLayout、BorderLayout、GridLayout 和 CardLayout,它们可以帮助开发者自动排列组件,适应不同的屏幕尺寸和分辨率。 事件处理是Swing中的关键部分,通过监听器接口,如...

    java Swing做的植物大战僵尸 全注释 还有文档解释

    在“java Swing做的植物大战僵尸 全注释 还有文档解释”项目中,开发者使用Swing库创建了一个类似《植物大战僵尸》的游戏。Swing提供了一系列组件,如按钮、面板、滚动条等,使得开发者可以方便地构建交互式的用户...

    java swing 初级

    4. **模型-视图-控制器(MVC)模式**: Swing组件遵循MVC设计模式,其中模型(Model)管理数据,视图(View)显示数据,控制器(Controller)处理用户交互。这种分离使得代码更易于维护和扩展。 5. **组件属性与方法...

    java_swing_入门教程.pdf

    此外,Swing采用了模型-视图-控制器(MVC)设计模式,这是一种将数据、显示和交互逻辑分离的方法。在MVC中,模型管理数据,视图负责显示数据,而控制器处理用户输入和数据更新。这种模式提高了代码的组织性和可维护...

    swing界面设计之JTree

    - **屏幕级帮助**:为当前屏幕提供帮助。 - **添加嵌入帮助**:将帮助集成到应用程序界面中。 - **添加搜索功能**:支持在帮助内容中搜索关键字。 - **停用词**:忽略某些常见词汇以优化搜索结果。 - **自定义停用词...

    java-project-master.zip_JavaSwing_ppi_;日历客户端

    Java Swing虽然默认不直接处理高DPI(每英寸点数)屏幕,但可以通过设置Swing组件的缩放比例来适应不同PPI的显示器。开发者可能需要根据系统PPI动态调整组件大小,以确保在各种分辨率下都有良好的视觉效果。 日历...

    学生信息系统课设(java + swing)

    合理使用布局管理器可以确保界面在不同分辨率的屏幕上看起来整洁有序。 7. **异常处理**:在处理用户输入和数据库操作时,可能会遇到各种异常。良好的异常处理机制能确保程序在遇到错误时不会崩溃,而是给出友好的...

    程序多模式显示实现

    全功能模式通常包含所有功能和选项,适合在大屏幕设备上使用;精简模式则去掉了一些非核心功能,使得界面更加简洁,适用于小屏幕或快速操作;移动模式则是针对触摸设备优化的界面,强调手势操作。 2. **设计多模式...

    java swing mysql实现的酒店管理系统项目源码.zip

    9. **截图**: 屏幕截图通常用来展示程序的界面和功能,有助于理解项目的工作流程和用户交互设计。 10. **数据库文件**: 可能包含了预先设定的数据库结构和示例数据,方便快速搭建测试环境。 11. **源码**: 项目的...

    java课程设计:基于Java Swing 编写的水果贪吃蛇小游戏.zip

    Swing中的布局管理器(如FlowLayout、GridLayout、BorderLayout)用于控制组件在窗口中的排列方式,确保界面美观且适应不同屏幕尺寸。 2. **图形绘制**:游戏中的贪吃蛇和水果需要在屏幕上动态显示,这涉及到...

    基于java的编写的显示器显示模式检测程序.zip

    分辨率是指屏幕上的像素数量,常见的有1920x1080(全高清)、2560x1440(2K)以及3840x2160(4K)等。颜色深度则关乎屏幕上每个像素可以显示的颜色数量,一般有8位、16位和32位等。刷新率是指屏幕每秒钟更新图像的...

    MMA7455.rar_MMA74_MMA7455 datasheet_mma7455 a_mma7455 C_swing

    《MMA7455:加速度传感器的全方位解析与应用》 MMA7455是一款由Freescale Semiconductor公司推出的微机械加速度传感器,它在移动通信、物联网和消费电子领域广泛应用。这款传感器以其高精度、低功耗和丰富的功能...

    QQ屏幕截图工具BS(源码+论文+视频齐全).zip

    本项目不仅包含完整的源码,还附带了相关的技术论文和教学视频,为学习者提供了一个全方位的学习资源。 首先,从源码的角度来看,QQ屏幕截图工具BS是用Java语言编写的,这意味着我们可以深入学习Java编程知识,包括...

    Travlex:功能齐全的酒店管理用户界面,其功能类似于使用Java Swing制作的Trivago

    3. **事件处理**:Swing中的事件处理机制是基于监听器(Listener)模式。在Travlex中,可能有HotelSearchListener、BookingListener等,它们实现特定接口,当用户执行搜索或预订操作时,会触发相应的事件处理方法。 ...

    java实现画板程序

    【Java实现画板程序】是基于Java编程语言开发的一个交互式图形界面应用,它提供了基本的绘画功能,让用户能够在屏幕上自由创作。这个程序的核心特点包括颜色选择、形状绘制、填充模式以及文件操作等。 首先,我们要...

    java下ATM机

    Java Swing是Java标准库的一部分,提供了一套组件来构建桌面应用程序,包括按钮、文本框、标签等,可以用来模拟ATM的屏幕布局。JavaFX是更现代的替代品,提供了更多的特效和更好的UI设计能力。在本项目中,可能使用...

Global site tag (gtag.js) - Google Analytics