Java JFrame大小的问题,求指教!

JohnsonEE 2013-06-27 03:55:24
话不多说了,直接上代码。

public class MainFrame extends JFrame{
public MainFrame() {
setSize(500, 500);
....

}
}

这样把frame设置成了500x500的尺寸
然后在panel类中 g.fillRect(500 - 50, 500 - 50, 50, 50);
表示在frame的最右下角画一个方
问题是:
显示出来的窗口中看不到这个方块,也就是说窗口的大小小于500x500.
然后我把窗口手动的拖大以后,就能看见这个方块出现在500, 500的位置。

请问,如何让这个窗口在显示的时候就保证其尺寸是我设置的那个尺寸呢?
...全文
392 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
逍遥jc 2013-07-15
  • 打赏
  • 举报
回复
边框也占空间的。包括里面的工具栏,标题栏什么的都算在一起了。
junko2012kao 2013-07-13
  • 打赏
  • 举报
回复
坐标是以左上角(0,0)开始的,向下y坐标增大,向右横坐标增大,改成g.fillRect(500 - 100, 500 - 100, 50, 50);或者其他的值也可。
地下室森林 2013-07-12
  • 打赏
  • 举报
回复
你是要所有显示在边框里面的话要考虑装饰部分。我的win7的运行出来没多大差别的
「已注销」 2013-07-12
  • 打赏
  • 举报
回复
一般来说,窗口的大小是总左上角到右下角整个大小,包括四周的边框,所以直接用那个数值是不行的。 需要考虑边框的宽度。具体宽度是多少,根据不同的系统不同。我在xp和win7上试过,边框大小基本一致,但是还是有数值上的小差别。自己定义几个数值试一下就知道边框的宽度了。
huntor 2013-07-12
  • 打赏
  • 举报
回复
有装饰(边框等)占位置
u010904025 2013-07-12
  • 打赏
  • 举报
回复
伙计,等你用了setBounds()这个方法后,你就会知道了。
terrylmay 2013-07-11
  • 打赏
  • 举报
回复
这个还用解?问你一下Frame表示什么知道么?表示窗口..你在画图的时候操作的区域想过没有?那只是你能够进行布局,绘图的地方..你在你程序中加入this.setTitle("程序");看看程序是出现在哪的..就知道为什么显示不出来了..窗口最上面是有边框的.那也是窗口大小的一部分..
JohnsonEE 2013-07-11
  • 打赏
  • 举报
回复
按照1楼的兄弟做了,结果还是不行啊,弹出来的窗口比设定的尺寸还是小一点,画出来的那个方块有一部分在frame框体外。求解啊!
地下室森林 2013-06-27
  • 打赏
  • 举报
回复
Window、Frame和Dialog的默认布局管理器是BorderLayout 你可以前面加句话:
package csdn.programbbs_627;

import java.awt.Frame;
import java.awt.Graphics;
import java.awt.Panel;

class Frame1 extends Frame{
	Panel p = new Panel();
	
	public Frame1(){
		setLayout(null);
		setSize(500, 500);
		add(p);
		setVisible(true);
	}
	@Override
	public void paint(Graphics g) {
		g.fillRect(500 - 50, 500 - 50, 50, 50);
	}
}
public class TextFrame {
	
	public static void main(String[] args) {
		new Frame1();
		
	}
}

62,635

社区成员

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

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