龙猫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 目详情-五一模拟赛详情页
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line