0

scala.swing.FrameScalaのクラスに新しいフレームアイコンを設定するにはどうすればよいですか?背後にある意図は何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

あなたはOSXを使用していると思います。残念ながら、アイコンの装飾はOS Xのルックアンドフィールでは機能しません。また、特定のウィンドウ装飾が付属していないように見えるニンバスのルックアンドフィールでも機能しません( OS X)。

したがって、独自のウィンドウタイトルバーをペイントするルックアンドフィールが必要になります。

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ウィンドウのタイトルバーの唯一のチャンスは、特定のファイルに使用されるデフォルトのアイコンで装飾したい場合です。

Window.documentFileここを探してください:http: //developer.apple.com/library/mac/#technotes/tn2007/tn2196.html#//apple_ref/doc/uid/DTS10004439

于 2012-07-03T12:41:03.260 に答える