0

我无法让简单的 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 会有使用示例吗?

4

1 回答 1

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   ***** 

在发布我的之前应该看看它。

于 2013-10-27T00:58:20.647 回答