龙猫12138 2017-05-14 09:29 采纳率: 0%
浏览 1218
已采纳

java里面的insets,为什么一会有值,一会有没有值了?下有代码

import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Insets;
import java.awt.event.ComponentAdapter;
import java.awt.event.ComponentEvent;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class Clock extends JPanel
{
/**
*
*/
private static final long serialVersionUID = 1L ;
JFrame frame ;
Insets inset ;
public Clock (int size)
{
panelSet(size) ;
frameSet(size) ;
}
public void panelSet (int size)
{
this.setSize(new Dimension(size,size)) ;
this.addComponentListener(new ComponentAdapter()
{
public void componentResized (ComponentEvent e)
{
System.out.println("面板的高度为"+Clock.this.getWidth()) ;
System.out.println("面板的高度为"+Clock.this.getHeight()) ;
}
});
}
public void frameSet (int size)
{
frame = new JFrame () ;
inset = frame.getInsets() ;
frame.setSize(new Dimension(size+inset.left+inset.right,size+inset.top+inset.bottom)) ;
System.out.println(inset.top+" "+inset.bottom+" "+inset.left+" "+inset.right) ;
frame.setVisible(true) ;
frame.addComponentListener(new ComponentAdapter()
{
public void componentResized (ComponentEvent e)
{
System.out.println("窗口的宽度为"+frame.getWidth()) ;
System.out.println("窗口的高度为"+frame.getHeight()) ;
inset = frame.getInsets() ;
System.out.println(inset.top+" "+inset.bottom+" "+inset.left+" "+inset.right) ;
}
});
frame.add(this) ;
}
public static void main (String [] args)
{
new Clock(400) ;
}
}
设置窗口(jframe)的宽度的时候,我想把窗口的insets加上去,这样就能面板(jpanel)就不用被窗口的insets占据了空间。比如说窗口的大小应该为(416,439)面板大小才能为(400,400)。但是很奇怪的时候,设置窗口大小加上insets的值的时候上下左右的值都为0,而后来又添加了监听器,改变大小的时候,上右下左的又是都是有大小的,这是为什么呢?

  • 写回答

1条回答 默认 最新

  • 战在春秋 2017-05-14 10:13
    关注
            frame = new JFrame(); //创建了一个JFrame实例,但初始不可见,也没有大小等属性。
            inset = frame.getInsets();  //此时, inset返回值为0,0,0,0    
            frame.setSize(new Dimension(size + inset.left + inset.right, size + inset.top + inset.bottom)); //调用setSize函数设置frame大小。
            frame.setVisible(true) ; //显示frame
    

    之后,inset自然就有相应的值了。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 虚拟机打包apk出现错误
  • ¥30 最小化遗憾贪心算法上界
  • ¥15 用visual studi code完成html页面
  • ¥15 聚类分析或者python进行数据分析
  • ¥15 逻辑谓词和消解原理的运用
  • ¥15 三菱伺服电机按启动按钮有使能但不动作
  • ¥15 js,页面2返回页面1时定位进入的设备
  • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝