2015-11-18 1 views
0

Je souhaite modifier l'emplacement de la fenêtre pivotante scala. J'ai trouvé l'emplacement de réglage fonctionne correctement lors de l'initialisation, mais ne peut pas changer d'emplacement dynamiqueImpossible de modifier dynamiquement l'emplacement de la fenêtre pivotante

import java.awt.Point 

import scala.swing._ 
import scala.swing.event.ButtonClicked 

object TestWindow extends SimpleSwingApplication { 
    def top = new MainFrame { 
    contents = new BoxPanel(Orientation.Vertical) { 
     contents += new Button("Change location") { 
     reactions += { 
      case e: ButtonClicked => { 
      println("change location") 
      top.location = new Point(200, 100)//doesn't work 
      println("change location end") 
      } 
     } 
     } 
    } 
    location = new Point(100, 50) //works correctly 
    } 
} 

Comment puis-je faire?

Répondre

0

Il peut être réalisé en utilisant la déclaration suivante:

this.peer.getRootPane.getParent.setLocation(new Point(200, 100)) 

ici this.peer est fait référence à java JButton, getRootPane vous donne l'espace réservé du bouton, puis dans ce cas particulier getParent obtient votre objet MainFrame (peut-être besoin d'utiliser plus d'un getParent si la hierachie est plus grande). Je pense qu'en utilisant top.location vous essayez de créer un nouveau MainFrame qui est susceptible d'être interdit par l'API.