0

如何在 Scala 的scala.swing.Frame类上设置新的框架图标?Frame.iconImage: Image和背后的意图是什么Frame.iconify()?我想不通,他们在做什么。

这是我的最后一次尝试

import scala.swing.Frame

class MyFrame extends Frame {
  iconImage = toolkit.getImage("src/main/resources/icon.png")
  visible = true
}

我还尝试了其他几种方法,但没有任何效果。

4

2 回答 2

1

你在那里的东西应该可以工作,但如果 getImage 找不到文件,它会默默地失败。由于您有一个相对路径,这可能是因为您的代码没有在您想要的目录中执行。

在 Ubuntu 上,这应该突出差异。我得到一个带有笑脸图标的窗口和一个带有标准 java 图标的窗口。

new Frame() {
  iconImage = toolkit.getImage("/usr/share/icons/gnome/16x16/emotes/stock_smiley-10.png")
  size = new Dimension(200, 200)
  visible = true
}
new Frame() {
  iconImage = toolkit.getImage("xxx")
  size = new Dimension(200, 200)
  visible = true
}
于 2012-07-03T12:29:49.850 回答
0

我猜你在 OS X 上。遗憾的是,图标装饰不适用于 OS X 的外观和感觉,也不适用于似乎没有特定窗口装饰的 Nimbus 外观(使用标题栏来自操作系统)。

因此,您将需要一个可以绘制自己的窗口标题栏的外观:

import scala.swing._
import javax.swing._
UIManager.setLookAndFeel(new plaf.metal.MetalLookAndFeel)
JFrame.setDefaultLookAndFeelDecorated(true)

val f = new Frame {
   iconImage = toolkit.getImage(new java.net.URL(
      "http://www.scala-lang.org/sites/default/files/favicon.gif"))
   size = new Dimension(200, 200)
   visible = true
}

OS X 窗口标题栏的唯一机会是,如果您想用用于特定文件的默认图标进行装饰。

在这里寻找:http Window.documentFile: //developer.apple.com/library/mac/#technotes/tn2007/tn2196.html#//apple_ref/doc/uid/DTS10004439

于 2012-07-03T12:41:03.260 回答