如何在Scala swing中设置背景
我正在Scala中的步骤中查看示例6.9,他的背景设置方法不充分,因为当调整帧大小时,背景不会改变。示例代码(针对版本2.10的更改而更新)为:如何在Scala swing中设置背景,swing,scala,Swing,Scala,我正在Scala中的步骤中查看示例6.9,他的背景设置方法不充分,因为当调整帧大小时,背景不会改变。示例代码(针对版本2.10的更改而更新)为: import scala.swing._ import scala.swing.event._ object circle extends SimpleSwingApplication { def top = new MainFrame { var mouseX = 0 var mouseY = 0 var mousecl
import scala.swing._
import scala.swing.event._
object circle extends SimpleSwingApplication {
def top = new MainFrame {
var mouseX = 0
var mouseY = 0
var mouseclicked = false
title = "Draw Circle"
val rect = new java.awt.Rectangle(350,250)
preferredSize = new Dimension(350,250)
val canvas = new Panel {
border = Swing.EmptyBorder(15, 15, 15, 15)
opaque = false
override def paintComponent(g: java.awt.Graphics2D) {
// g.setBackground(java.awt.Color.magenta)
g.setColor(java.awt.Color.magenta)
g.fill(rect)
g.setColor(java.awt.Color.blue)
if ( mouseclicked ) {
g.fillOval(mouseX-10, mouseY-10, 20, 20)
mouseclicked = false
}
}
listenTo(mouse.clicks)
reactions += {
case MouseClicked(_, p, _, 1, _) => {
mouseX = p.x
mouseY = p.y
mouseclicked = true
repaint
}
}
}
contents = canvas
}
}
我尝试用g.setBackground(…)替换g.setColor(…)和g.fill(rect),如上面所述,它可以编译,但不起作用
有人能建议正确的方法吗
提前感谢。简单的方法是让Swing进行背景绘制
val canvas = new Panel {
opaque = true
background = Color.magenta
override def paintComponent(g: java.awt.Graphics2D) {
super.paintComponent(g);
g.setColor(Color.blue)
if (mouseclicked) {
g.fillOval(mouseX - 10, mouseY - 10, 20, 20)
mouseclicked = false
}
}
简单的方法是让Swing进行背景绘制
val canvas = new Panel {
opaque = true
background = Color.magenta
override def paintComponent(g: java.awt.Graphics2D) {
super.paintComponent(g);
g.setColor(Color.blue)
if (mouseclicked) {
g.fillOval(mouseX - 10, mouseY - 10, 20, 20)
mouseclicked = false
}
}
简单的方法是让Swing进行背景绘制
val canvas = new Panel {
opaque = true
background = Color.magenta
override def paintComponent(g: java.awt.Graphics2D) {
super.paintComponent(g);
g.setColor(Color.blue)
if (mouseclicked) {
g.fillOval(mouseX - 10, mouseY - 10, 20, 20)
mouseclicked = false
}
}
简单的方法是让Swing进行背景绘制
val canvas = new Panel {
opaque = true
background = Color.magenta
override def paintComponent(g: java.awt.Graphics2D) {
super.paintComponent(g);
g.setColor(Color.blue)
if (mouseclicked) {
g.fillOval(mouseX - 10, mouseY - 10, 20, 20)
mouseclicked = false
}
}