Swing EditorPane Scala尺寸不起作用

Swing EditorPane Scala尺寸不起作用,swing,scala,Swing,Scala,我已经用scala.Swing创建了下面的EditorPane import scala.swing.{Font, Color, EditorPane} val textArea = new EditorPane() { font = new Font("monospaced", java.awt.Font.PLAIN , 20 ) background = Color.darkGray foreground = Color.magenta size

我已经用scala.Swing创建了下面的EditorPane

import scala.swing.{Font, Color, EditorPane}

val textArea = new EditorPane() {
  font       = new Font("monospaced", java.awt.Font.PLAIN , 20 )
  background = Color.darkGray 
  foreground = Color.magenta 
  size       = new java.awt.Dimension(30,50)
}
运行上述代码会生成错误:

value size_= is not a member of scala.swing.EditorPane
在scala.swing EditorPane API()中,它将大小称为
java.awt.Dimension
,因此我看不出为什么我的代码是错误的。我还尝试了
size.setSize(30,50)
,它可以编译,但EditorPane只有一行,这意味着大小设置不正确

这里有什么问题


ps:我有最新的Scala版本。

EditorPane
像所有组件一样继承自
UIElement

UIElement
提供了相关的setter方法,如:

minimumSize_=(x: Dimension)
maximumSize_=(x: Dimension)
preferredSize_=(x: Dimension)
还有一个
size
方法,但没有设置器。这就解释了你的错误

我个人的解释是:

最后,Layoutmanager将处理所有组件的大小,您不应手动干预。您可以用最小、最大和首选尺码表达您的愿望

可以直接设置大小的唯一类是窗口和框架

new MainFrame() { size = new Dimension(30,50) }

我不太了解scala(我知道swing),但是为什么不调用
java.awt.Dimension
构造函数而不是它的
setSize()
方法呢<代码>新建java.awt.Dimension(30,50)。也许这就是你的错误不。。。他仍然没有弄好。他仍然是对的。维度类没有静态方法
setSize
。只能对已存在的
维度
调用
setSize(d:Dimension):void
。它也不返回
维度
。总之,它应该是
size=newdimension(30,50)
我不理解hack变通方法的含义:)。但是我的程序看起来像这样,如果你愿意,你可以在这里上传你的完整代码:我来看看。似乎是布局方面的问题。如果这个()是您想要的,下面是我更改的()。你也许应该多看看不同的布局面板,把它们组合起来,得到你想要的。是的,就是这样。非常感谢!:)