0

我用以下代码在 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());
     }
    }
4

2 回答 2

1

你不能改变Iconfor的大小JFrame,因为 T 的属性op-Level Container来自Native OS,AFAIK 并且因为

  • 图标可以

    a)fill所有可用区域

    b)smaller比可用面积

    c)only part of图标可见,因为大于可用区域

  • 的大小Icon是平台敏感的(WinXP == 16 x 16取决于Win7当前主题16 x 1632 x 32

  • 有两种自定义外观实现了对Top-Level Container来自的属性的自己的注入Native OS,其中之一是Substance L&F,第二个并不重要,因为触及阴影区域,并且需要删除工具栏并返回修改后的内容(肮脏的黑客)

  • for JFramebased onJSR296 in Netbeans是不可能改变Iconfor 的Top-Level Containers,因为这个 Swing 框架要覆盖和保护一些重要的方法,必须覆盖RootPane(请不要这样做,需要大量的 hack,结果将只是Borders(没有内容的透明窗口)ContentPane, 无路可返)

于 2012-10-15T10:19:36.090 回答
0

仅适用于 WINDOWS 7!

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

于 2013-04-03T09:52:14.723 回答