Swing EditorPane Scala尺寸不起作用
我已经用scala.Swing创建了下面的EditorPaneSwing 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
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变通方法的含义:)。但是我的程序看起来像这样,如果你愿意,你可以在这里上传你的完整代码:我来看看。似乎是布局方面的问题。如果这个()是您想要的,下面是我更改的()。你也许应该多看看不同的布局面板,把它们组合起来,得到你想要的。是的,就是这样。非常感谢!:)