1

我在 BoxPanel 中遇到了对齐的基本问题。当任一 TextAreas 接受输入时,面板中的其他组件(不是面板的宽度)会随着字符移动。

我的错误是什么?谢谢!

空白文本区域

填充文本区域

val exitButton = new Button {
  text = "Exit"
  borderPainted = true
  enabled = true
}

val japaneseTranslation = new TextArea(5, 25)
val englishTranslation = new TextArea(5,25)

val translationPanel = new BoxPanel (Orientation.Vertical) {
  contents += new Label {
    text = "Translation"
    font = new Font("Ariel", java.awt.Font.PLAIN, 20)
    horizontalAlignment = Alignment.Center
  }

  contents += new Label {
    text = "Japanese"
    font = new Font("ariel", java.awt.Font.PLAIN, 10)
  }

  /*contents += new TextField ("Japanese") {                                                                                                                  
    editable = false                                                                                                                                          
  }*/
  contents += japaneseTranslation


  contents += new Label {
    text = "English"
    font = new Font("ariel", java.awt.Font.PLAIN, 10)
  }
  contents += englishTranslation

  contents += exitButton

}
4

1 回答 1

1

将组件包装TextArea成一个ScrollPane帮助:

val exitButton = new Button {
  text = "Exit"
  borderPainted = true
  enabled = true
}

val japaneseTranslation = new TextArea(5, 25)
val englishTranslation = new TextArea(5,25)

val translationPanel = new BoxPanel (Orientation.Vertical) {
  contents += new Label {
    text = "Translation"
    font = new Font("Ariel", java.awt.Font.PLAIN, 20)
    horizontalAlignment = Alignment.Center
  }

  contents += new Label {
    text = "Japanese"
    font = new Font("ariel", java.awt.Font.PLAIN, 10)
  }

  /*contents += new TextField ("Japanese") {                                                                                                                  
    editable = false                                                                                                                                          
  }*/
  contents += new ScrollPane(japaneseTranslation)


  contents += new Label {
    text = "English"
    font = new Font("ariel", java.awt.Font.PLAIN, 10)
  }
  contents += new ScrollPane(englishTranslation)

  contents += exitButton

}

另一种可能性是,正如 Aqua 在他的评论中暗示的那样,设置TextArea组件的 alignmentX:

val japaneseTranslation = new TextArea(5, 25) {
  peer.setAlignmentX(0)
}
val englishTranslation = new TextArea(5,25) {
  peer.setAlignmentX(0)
}

请下次发布SSCCE 。

于 2014-04-16T13:07:53.610 回答