Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Scala swing中设置背景_Swing_Scala - Fatal编程技术网

如何在Scala swing中设置背景

如何在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

我正在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 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
    }
  }