请问如何设置JFrame框架的最小尺寸?

chenyajun5 2004-04-28 07:22:28
有一个JFrame,它在运行时是可以缩放的,我想在它运行时设置它的最小尺寸,好像它没有像JPanel的setMinimumSize方法,请问该如何做,刚学Swing,各位见笑。。多指教。。


...全文
211 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
chenyajun5 2004-04-29
  • 打赏
  • 举报
回复
偶也想知道答案 。。。
zijibense 2004-04-29
  • 打赏
  • 举报
回复
新手学习
topirol 2004-04-29
  • 打赏
  • 举报
回复
帮你顶,学习。随便问一下高手,WindowAdapter中的windowStateChanged,为什么没有监控
jframe的大小变化?windowStateChanged到底在什么情况下才会触发?


import javax.swing.*;
import java.awt.event.*;

class MinFrame {
private final static int minWidth=200;
private final static int minHeigth=200;

public static void main(String[] args) {
final JFrame frame=new JFrame();
frame.setSize(300,300);
frame.show();

frame.addWindowListener(new WindowAdapter(){

public void windowStateChanged(WindowEvent e) {
System.out.println("change");
if (frame.getWidth()<minWidth){
frame.setSize(minWidth,frame.getHeight());
}

if (frame.getHeight()<minHeigth){
frame.setSize(frame.getWidth(),minHeigth);
}

}

public void windowClosing(WindowEvent e) {

System.exit(0);

}


}



);
}


}
topirol 2004-04-29
  • 打赏
  • 举报
回复
得到mq612的提示:实现了,代码如下:
package com.topirol.test.swing;

import javax.swing.*;
import javax.swing.event.*;
import java.awt.event.*;

class MinFrame {


public static void main(String[] args) {
final JFrame frame=new JFrame();
frame.setSize(300,300);
frame.show();
frame.addComponentListener(new ResizeLister(frame));

frame.addWindowListener(new WindowAdapter(){


public void windowClosing(WindowEvent e) {

System.exit(0);

}


}

);
}


}

class ResizeLister implements ComponentListener{
private final static int minWidth=200;
private final static int minHeigth=200;
private JFrame frame;

ResizeLister(JFrame frame){
this.frame=frame;
}


public void componentResized(ComponentEvent e){

//System.out.println("change");
if (frame.getWidth()<minWidth){
frame.setSize(minWidth,frame.getHeight());
}

if (frame.getHeight()<minHeigth){
frame.setSize(frame.getWidth(),minHeigth);
}



}


public void componentMoved(ComponentEvent e){}

public void componentShown(ComponentEvent e){}

public void componentHidden(ComponentEvent e){}
}
nodreamer 2004-04-29
  • 打赏
  • 举报
回复
不会
学习一下
mq612 2004-04-29
  • 打赏
  • 举报
回复
JFrame本身没有最小设置,对JPanel所用的setMinimumSize方法要配合布局才能发挥作用,你可以给JFrame加一个监听,当JFrame的长或宽小于某个数字后就强行把它设置到最小尺寸,WindowListener只能监听窗口的激活、关闭、请求关闭、失去激活状态、恢复、最小、打开,而不能监听大窗体大小的改变。ComponentListener可以监听到组件被隐藏、被移动、大小的改变、组件被显示,可满足你的需要。

<------ 树欲静而风不止 ------>
panpan221 2004-04-28
  • 打赏
  • 举报
回复
新手学习
/*主框架类*/ import java.awt.*; import java.awt.event.*; import javax.swing.*; public class MyJFrame extends JFrame { private static final long serialVersionUID = 1L; public MyJFrame()//构造方法 { init();//自定义方法1 setVisible(true);//可见 } private void init()//自定义方法 { Toolkit tlk = Toolkit.getDefaultToolkit(); Image tittle = tlk.getImage("pho/最小化.png");//添加最小化图标 setIconImage(tittle); setUndecorated(true);//不启用标题栏 MyJPanel jpanel=new MyJPanel(); setContentPane(jpanel);//作用类似于add() setSize(1200,700);//设置窗口大小 setResizable(false);//不可改变大小 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//关闭 setLocationRelativeTo(null);//窗口出现在桌面中间 /*******把鼠标隐藏*****/ Toolkit tool = Toolkit.getDefaultToolkit(); Image mouse=tool.getImage("pho/mouse.png");//给鼠标加一张透明的图片 Cursor cursor = tool.createCustomCursor(mouse,new Point(),null); setCursor(cursor); addKeyListener((KeyListener) new MyKeyAdapter());//设置键盘监听,用来退出游戏 } private class MyKeyAdapter extends KeyAdapter//键盘监听适配器 { public void keyPressed(KeyEvent e) { super.keyPressed(e); int event = e.getKeyCode();//接受键盘事件 if(event == KeyEvent.VK_ESCAPE)//按ESC退出 { int result = JOptionPane.showConfirmDialog(null, "是否退出游戏", "提示", JOptionPane.OK_CANCEL_OPTION); if(result == JOptionPane.OK_OPTION)//点击确定退出 { System.exit(0); } } } } }
Java开发技术大全 电子版 第1篇Java基础知识入门. 第1章Java的开发运行环境2 1.1Java的运行环境与虚拟机2 1.2Java的开发环境4 1.2.1JDK的安装4 1.2.2如何设置系统环境变量6 1.2.3编译命令的使用8 1.2.4解释执行命令的使用10 1.2.5UltraEdit的使用11 1.3一个简单的Java应用程序14 1.4一个简单的Java小程序16 1.5本章小结18 第2章Java语言基础19 2.1Java语言的特点19 2.2Java程序的构成21 2.3数据类 型23 2.3.1基本数据类型23 2.3.2常量25 2.3.3变量26 2.3.4整型数据27 .2.3.5浮点型数据29 2.3.6字符型数据30 2.3.7布尔型数据32 2.3.8变量赋初值33 2.3.9变量的作用域34 2.3.10数据类型转换34 2.4运算符与表达式37 2.4.1算术运算符和算术表达式38 2.4.2关系运算符和关系表达式43 2.4.3逻辑运算符和逻辑表达式44 2.4.4条件运算符和条件表达式48 2.4.5位运算符和位运算表达式50 2.4.6赋值运算符和赋值表达式53 2.4.7表达式的求值顺序55 2.5流程控制语句58 2.5.1三种基本控制结构58 2.5.2表达式语句和空语句59 2.5.3块语句60 2.5.4if~else分支语句61 2.5.5多路分支switch~case语句69 2.5.6当型循环while语句71 2.5.7直到型循环do~while语句72 2.5.8当型循环for语句74 2.5.9循环的嵌套78 2.5.10跳转语句break80 2.5.11跳转语句continue82 2.6程序文本的风格84 2.6.1注释84 2.6.2程序的格式编排87 2.7基础语法实战演习88 2.7.1判断闰年88 2.7.2求最大公约数和最小公倍数89 2.7.3Fibonacci数列90 2.7.4逆向输出数字91 2.7.5求水仙花数92 2.7.6输出图形93 2.7.7输出九九口诀表94 2.8本章小结95 第2篇Java面向对象编程 第3章对象和类98 3.1面向对象的基本概念98 3.1.1对象98 3.1.2类99 3.1.3消息101 3.1.4面向对象的4个基本特征101 3.2类与对象104 3.2.1类的基本结构104 3.2.2类的声明104 3.2.3创建类体105 3.2.4对象的生命周期106 3.2.5对象的创建106 3.2.6对象的使用108 3.2.7对象的释放和垃圾收集机制108 3.3成员变量的定义与使用109 3.3.1成员变量的定义109 3.3.2成员变量的访问权限110 3.3.3实例成员变量和静态成员变量114 3.4方法的定义和实现116 3.4.1方法的声明117 3.4.2创建方法体与return语句117 3.4.3局部变量和成员变量的区别119 3.4.4方法的访问权限121 3.5方法的调用121 3.5.1方法调用的形式121 3.5.2方法调用的参数123 3.5.3隐含参数this127 3.6构造方法128 3.6.1无参数构造方法的定义和使用129 3.6.2带参数构造方法的定义和使用131 3.6.3this关键字和构造方法的调用132 3.7静态方法133 3.7.1静态方法的声明和定义134 3.7.2静态方法和实例方法的区别134 3.7.3静态代码块136 3.7.4再论静态成员变量137 3.8main()方法和命令行参数139 3.9结束方法141 3.10本地方法141 3.11本章小结144 第4章继承与多态145 4.1继承的基本原理145 4.2子类对父类的继承146 4.3属性隐藏和方法的覆盖148 4.3.1属性的隐藏148 4.3.2方法的覆盖151 4.4构造方法的继承154 4.5super的使用156 4.5.1用super引用父类的成员156 4.5.2使用super调用父类的构造方法157 4.6继承的内部处理158 4.7多态的基本概念159 4.8重载159 4.8.1普通方法的重载160 4.8.2构造方法的重载161 4.8.3重载的解析163 4.8.4重载与覆盖的区别165 4.9运行时多态165 4.9.1实例方法的运行时多态165 4.9.2成员变量运行时的表现167 4.9.3静态方法运行时

62,614

社区成员

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

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