社区
Java SE
帖子详情
JFrame窗口最大化?
邦z
2004-06-30 03:54:51
怎样让一个Jframe窗口一开始,就最大化显示出来呢?
...全文
655
14
打赏
收藏
JFrame窗口最大化?
怎样让一个Jframe窗口一开始,就最大化显示出来呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
14 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
MyXin
2004-07-01
打赏
举报
回复
JFrame ---------------->setExtendedState(JFrame.MAXIMIZED_BOTH);
JInternalFrame -------->setMaximum(true);
longbaduo
2004-07-01
打赏
举报
回复
谢了哈
sxhv998
2004-06-30
打赏
举报
回复
今天刚创建的
各位分享先
sxhv998
2004-06-30
打赏
举报
回复
package com.Dorian.Util;
import java.awt.DisplayMode;
import java.awt.EventQueue;
import java.awt.Graphics2D;
import java.awt.GraphicsConfiguration;
import java.awt.GraphicsDevice;
import java.awt.GraphicsEnvironment;
import java.awt.Toolkit;
import java.awt.Window;
import java.awt.image.BufferStrategy;
import java.awt.image.BufferedImage;
import java.lang.reflect.InvocationTargetException;
import javax.swing.JFrame;
/**
* <p>屏幕管理器</p>
* <P>---------------------------------------------------------
* <p>屏幕管理初始化,显示全屏图形方式(不适用与Windows Server 2003)
* <P>---------------------------------------------------------
* <P>Copyright (c) 2004 Dorian. All rights reserved</p>
* <P>(#)ScreenManager.java</p>
* <P>创建日期 2004-6-30</p>
* <P>更新日期 2004-6-30</p>
* @author 史徐华</p>
* @version 1.0.0</p>
*/
public class ScreenManager {
/**
* 构造函数
* 创建屏幕管理器实例
*/
public ScreenManager() {
GraphicsEnvironment environment =
GraphicsEnvironment.getLocalGraphicsEnvironment();
device = environment.getDefaultScreenDevice();
}
/**
* 对系统缺省设备返回一列兼容显示方式
* @return DisplayMode[]
*/
public DisplayMode[] getCompatibleDisplayModes() {
return device.getDisplayModes();
}
/**
* 获取所有兼容显示方式列表中的第一个方式
* @param modes[] 一列显示方式
* @return DisplayMode 如果没有,则返回NULL
*/
public DisplayMode getFirstCompatibleMode(DisplayMode modes[]) {
DisplayMode goodModes[] = device.getDisplayModes();
for (int i = 0; i < modes.length; i++) {
for (int j = 0; j < goodModes.length; j++) {
if (equalDisplayModes(modes[i], goodModes[j])) {
return modes[i];
}
}
}
return null;
}
/**
* 返回系统当前的显示方式
* @return DisplayMode
*/
public DisplayMode getCurrentDisplayMode() {
return device.getDisplayMode();
}
/**
* 确定两个显示方式是否匹配。
* 两个显示方式匹配指具有相同分辨率、位深度、和刷新率。
* 如果一个显示方式的位深度为DisplayMode.BIT_DEPTH_MULTI,则忽略刷新率。
* 如果一个显示方式的刷新率为DisplayMode.REFRESH_RATE_UNKNOWN,则忽略位深度。
* @param mode1 模式一
* @param mode2 模式二
* @return boolean
*/
public boolean equalDisplayModes(DisplayMode mode1, DisplayMode mode2) {
if (mode1.getWidth() != mode2.getWidth()
|| mode1.getHeight() != mode2.getHeight()) {
return false;
}
if (mode1.getBitDepth() != DisplayMode.BIT_DEPTH_MULTI
&& mode2.getBitDepth() != DisplayMode.BIT_DEPTH_MULTI
&& mode1.getBitDepth() != mode2.getBitDepth()) {
return false;
}
if (mode1.getRefreshRate() != DisplayMode.REFRESH_RATE_UNKNOWN
&& mode2.getRefreshRate() != DisplayMode.REFRESH_RATE_UNKNOWN
&& mode1.getRefreshRate() != mode2.getRefreshRate()) {
return false;
}
return true;
}
/**
* 进入全屏方式和改变显示方式。如果指定显示方式为NULL或与这个设备不兼容,
* 或这个系统无法改变显示方式,则使用当前显示方式。
* <p>显示所用BufferStrategy有2个缓存区。
* @param displayMode 显示模式
*/
public void setFullScreen(DisplayMode displayMode) {
final JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setUndecorated(true);
frame.setIgnoreRepaint(true);
frame.setResizable(false);
device.setFullScreenWindow(frame);
if (displayMode != null && device.isDisplayChangeSupported()) {
try {
device.setDisplayMode(displayMode);
} catch (IllegalArgumentException ex) {}
// 固定窗体的大小,防止在Mac OS X中发生错误
frame.setSize(displayMode.getWidth(), displayMode.getHeight());
}
// 消除可能的死锁 in 1.4.1
try {
EventQueue.invokeAndWait(new Runnable() {
public void run() {
frame.createBufferStrategy(2);
}
});
} catch (InterruptedException ex) {
// 忽略
} catch (InvocationTargetException ex) {
// 忽略
}
}
/**
* 取得显示的图形描述表ScreenManager使用双缓存,因此应用程序要
* 调用update()方法,显示绘制的任何图形。
* @return Graphics2D
*/
public Graphics2D getGraphics() {
Window window = device.getFullScreenWindow();
if (window != null) {
BufferStrategy strategy = window.getBufferStrategy();
return (Graphics2D) strategy.getDrawGraphics();
} else {
return null;
}
}
/**
* 更新显示
*/
public void update() {
Window window = device.getFullScreenWindow();
if (window != null) {
BufferStrategy strategy = window.getBufferStrategy();
if (!strategy.contentsLost()) {
strategy.show();
}
}
// 这个方法保证显示与窗口系统同步。
// 如果不调用这个方法在Linux系统中可能遇到延迟的鼠标和键盘输入事件。
Toolkit.getDefaultToolkit().sync();
}
/**
* 返回全屏方式中当前使用的窗口,如果设备不在全屏方式中,则返回NULL
* @return JFrame
*/
public JFrame getFullScreenWindow() {
return (JFrame) device.getFullScreenWindow();
}
/**
* 返回全屏方式中当前使用的窗口宽度,如果设备不在全屏方式中,则返回0
* @return int 宽
*/
public int getWidth() {
Window window = device.getFullScreenWindow();
if (window != null) {
return window.getWidth();
} else {
return 0;
}
}
/**
* 返回全屏方式中当前使用的窗口高度,如果设备不在全屏方式中,则返回0
* @return int 高
*/
public int getHeight() {
Window window = device.getFullScreenWindow();
if (window != null) {
return window.getHeight();
} else {
return 0;
}
}
/**
* 恢复屏幕的显示方式
*/
public void restoreScreen() {
Window window = device.getFullScreenWindow();
if (window != null) {
window.dispose();
}
device.setFullScreenWindow(null);
}
/**
* 生成与当前显示器兼容的图像
* @param width 宽
* @param height 高
* @param transparancy 透明度
* @return BufferedImage 缓冲图片
*/
public BufferedImage createCompatibleImage(int width,int height,
int transparancy) {
Window window = device.getFullScreenWindow();
if (window != null) {
GraphicsConfiguration gc = window.getGraphicsConfiguration();
return gc.createCompatibleImage(width, height, transparancy);
}
return null;
}
private GraphicsDevice device;
}
sxhv998
2004-06-30
打赏
举报
回复
如果要最大化的话setExtendedState(JFrame.MAXIMIZED_BOTH);就可以
如果要全屏的话
给你代码!
clnara921
2004-06-30
打赏
举报
回复
Jframe.setSize(1024,768);
不知对不
邦z
2004-06-30
打赏
举报
回复
不好意思,俺用的是jdk1.3.1
JFrame里面是还没有这个方法的
在jdk1.3.1下,怎么实现阿
luiss
2004-06-30
打赏
举报
回复
楼上说的没错,就是这个方法啊
f.setExtendedState(JFrame.MAXIMIZED_BOTH);
MyXin
2004-06-30
打赏
举报
回复
f.setExtendedState(JFrame.MAXIMIZED_BOTH);
It's good.
What have same function in JInternalFrame?
邦z
2004-06-30
打赏
举报
回复
Frame1?这是你自己定义的?
xujun581
2004-06-30
打赏
举报
回复
Frame1 f = new Frame1();
f.show();
f.setExtendedState(JFrame.MAXIMIZED_BOTH);
邦z
2004-06-30
打赏
举报
回复
这种方法我也知道,这不算是真正意义上的最大化,我是想知道点击最大化按钮的那种效果
boyard
2004-06-30
打赏
举报
回复
可以在初始化时调用如下方法:
Toolkit kit = Toolkit.getDefaultToolkit();
Dimension screenSize = kit.getScreenSize();
int screenHeight = screenSize.height;
int screenWidth = screenSize.width;
setSize(screenWidth , screenHeight );
shuneng
2004-06-30
打赏
举报
回复
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
setSize(screenSize);
如何去掉
JFrame
上的
最大化
最小化和关闭按钮.doc
去掉
JFrame
上的
最大化
最小化和关闭按钮.doc
java
JFrame
最大化
问题
java
JFrame
最大化
问题
更改标题栏背景并重写
JFrame
窗口
对
JFrame
窗口
进行了重写 最大最小化按钮可以改变(我用的是qq上的最大最小化按钮图标) 对
JFrame
进行更改 得到了自己想要的
窗口
本
窗口
是用来做局域聊天
窗口
特别设计的 详细 内容 代码都有详细注释谢谢下载
Java中
JFrame
窗口
组件案例及源代码.rar
此资源为Java中
JFrame
窗口
组件相关案例及源代码,可用于辅助教师进行相关内容的备课,也可方便学生对相关内容进行学习及巩固。
qq项目第一天(java
JFrame
标题栏 最小化
最大化
拖动窗体)
qq项目第一天(java
JFrame
标题栏 最小化
最大化
拖动窗体)
Java SE
62,623
社区成员
307,257
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章