graphics - 代号:自定义组件没有得到正确的高度
问题描述
我试图在Codenameone中打印矩形。
fun showCustomForm() {
val hi = Form("", BorderLayout())
hi.add(BorderLayout.CENTER, getGreenLine())
hi.show()
}
fun getGreenLine(): Component {
return object : Component() {
override fun paint(g: Graphics) {
println("Graphics Printing starts")
g.color = 0x00ff00
g.fillRect(x, y, width, height)
}
override fun calcPreferredSize(): Dimension {
return Dimension(1, 20)
}
}
}
如上所示,矩形的宽度为 1,高度为 20
高度似乎是正确的,但宽度穿过屏幕。
显示具有正确尺寸的矩形的正确方法是什么?
解决方案
但是,我从未使用过 Kotlin……在此示例中,尝试替换BorderLayout()
为BorderLayout(BorderLayout.CENTER_BEHAVIOR_CENTER)
以为组件提供其首选大小。
一般来说,布局管理器可以或不能使用首选大小,请参阅:https ://www.codenameone.com/manual/basics.html
例如,FlowLayout
总是给一个组件它的首选大小;BoxLayout.y()
始终为组件提供其首选高度,但使用最大可用宽度;等等
推荐阅读
- go - Golang 的自制公式
- android - Espresso Recorder Test 向我抛出错误: Looped for 3600 iterations over 60 SECONDS
- scala - Spark数据框爆炸列
- arrays - 如何获取数组的列数和行数
- google-app-engine - 将 GAE 应用程序升级到 Java 8
- jquery - 在编辑器ckeditor中工作的HTML代码
- node.js - 不是 module.exports 的函数错误
- javascript - 如何在js中将字符串解析为数组
- angular - 如何在 Angular 6 中导入 ag-grid 主题
- android - API 24 上不显示进度条