Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 更改jframe中图标的大小和形状_Java_Swing_Icons_Jframe_Awt - Fatal编程技术网

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

Java 更改jframe中图标的大小和形状,java,swing,icons,jframe,awt,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[]

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

您无法更改
JFrame
图标的大小,因为t
op-Level容器的属性来自
本机OS
,AFAIK和

  • 图标罐

    a)
    填充
    所有可用区域

    b)
    比可用区域小

    c)
    只有部分
    图标可见,因为它大于可用区域

  • 图标的大小取决于平台(
    WinXP==16 x 16
    Win7
    取决于当前主题
    16 x 16
    32 x 32

  • 对于
    顶级容器
    的属性,有两种实现自己注入的方法来自
    本机操作系统
    ,其中一种是
    物质L&F
    ,第二种方法不重要,因为触摸了阴影区域,需要移除工具栏并返回修改后的内容(肮脏的黑客)

  • 对于
    JFrame
    ,基于Netbeans中的
    JSR296
    无法更改
    顶级容器的
    图标,因为此Swing框架要覆盖和保护一些重要方法,必须覆盖
    RootPane
    (请不要这样做,所需的大量黑客攻击和结果只会是
    边框
    (没有内容的透明窗口)没有
    内容窗格
    ,没有回头路)


仅限WINDOWS 7!


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

这是第二个问题,这里也给了您同样的建议。请学习java命名约定并坚持它们。在学习时,请确保要了解所有关于LayoutManager的信息(null不是Swing中的选项:-)顺便说一句:我的反对票是不采纳前面问题中给出的建议-如果你坚持做错事,任何人都没有理由这么做,是吗?