使用setAlignmentX在Scala MainFrame中对齐按钮

时间:2013-10-26 22:54:37

标签: scala-swing

我无法在简单的Scala MainFrame GUI上获取按钮以在中心对齐。 已尝试过多次使用buttonname.peer.setAlignmentX和Y的组合,但没有效果。

代码如下:

object CGui extends SimpleSwingApplication 
   {
     def top = new MainFrame 
      {
        title = "Client Dashboard"
        var tbox    = new TextArea(4,20) { text = "Welcome to the dashboard"}
        val stats_button = new Button    { text = " View Statistics    " }
        val sp_button = new Button       { text = " Add Server Process " }
        val cp_button = new Button       { text = " Add Local Process  " } 
        val conn_button = new Button     { text = " Connect" } 
        val quit_button = new Button     { text = " Quit" }
  // GUI Components *************************************************End   *****
  // GUI SetUp ******************************************************Start *****
        contents = new BoxPanel(Orientation.Vertical) 
         {
           contents += new Label("            ")
           contents += tbox
           contents += new Label("            ")
           contents += stats_button
           contents += new Label("            ")
           contents += sp_button
           contents += new Label("            ")
           contents += cp_button
           contents += new Label("            ")
           contents += new FlowPanel {
           contents += new Label("            ")
           contents += conn_button
           contents += quit_button }
           border = Swing.EmptyBorder(20, 20, 20, 20)
         }
        listenTo(sp_button, cp_button, stats_button, conn_button, quit_button)
  // GUI SetUp ******************************************************End   ***** 

有人能指出我对setAlignmentX,Y用法的任何描述。 ScalaDoc会有使用示例吗?

1 个答案:

答案 0 :(得分:0)

在调查Scala Swing组件对齐后,我能够使用BorderPanel {} 按下面的代码定位按钮:

// GUI SetUp ******************************************************Start *****
        contents = new BoxPanel(Orientation.Vertical) 
         {
           contents += new Label("            ")
           contents += tbox
           contents += new Label("            ")
           contents += new BorderPanel {
            add(stats_button, BorderPanel.Position.Center)}
           contents += new Label("            ")
           contents += new BorderPanel {
            add(sp_button, BorderPanel.Position.Center)}
           contents += new Label("            ")
           contents += new BorderPanel {
            add(cp_button, BorderPanel.Position.Center)}
           contents += new Label("            ")
           contents += new FlowPanel 
           {
            contents += new BorderPanel {
            add(conn_button, BorderPanel.Position.West)
            add(quit_button, BorderPanel.Position.Center) }
           }

           border = Swing.EmptyBorder(20, 20, 20, 20)
         }
        listenTo(sp_button, cp_button, stats_button, conn_button, quit_button)
  // GUI SetUp ******************************************************End   ***** 

在发布我之前应该看一下。