在jframe中更改图标的大小和形状

时间:2012-10-15 09:36:48

标签: java swing icons jframe awt

我在java中使用以下代码创建了一个jframe。这是创建给定URL中传递的图像的自定义图标。但它的尺寸非常小我可以将它的形状从矩形改为圆形帮助

 class newframe extends JFrame 
  {

 Container cp;
   newframe()
   {
      cp=this.getContentPane();
      cp.setLayout(null);
    }

    public static void main(String args[])
    {
      newframe frm= new newframe(); 

      frm.setbounds(0,0,1000,800);
      frm.setVisible(true);
      ImageIcon im1= new ImageIcon("path upto image");
      frm.setIconImage(im1.getImage());
     }
    }

2 个答案:

答案 0 :(得分:1)

您无法更改Icon的{​​{1}}大小,因为T JFrame的属性来自op-Level Container,AFAIK,因为

  • 图标可以

    a)Native OS所有可用区域

    b)fill比可用区域

    c)smaller图标可见,因为它大于可用区域

  • only part of的尺寸是平台敏感的(IconWinXP == 16 x 16取决于当前主题Win716 x 16

  • 有两个Custom Look and Feels32 x 32的属性实施自己的注入来自Top-Level Container,其中一个是Native OS,第二个并不重要提到,因为触摸了阴影区域,并且需要删除工具栏并返回修改后的(脏黑客)

  • 基于Substance L&F的{​​{1}}的
  • 无法更改JFrame JSR296 in Netbeans,因为此Swing框架可以覆盖并保护一些重要方法,覆盖Icon(请不要这样做,需要大量的黑客攻击,结果只有Top-Level Containers(没有竞争的透明窗口)没有RootPane,无法返回)

答案 1 :(得分:0)

仅限WINDOWS 7!

当您将宽度设置为32x32像素时,超级栏中JFrame窗口的图标会更大。它是这个尺寸,因为当它不是32x32时,它只显示16x16像素。