如何显示textarea javafx的行数

时间:2014-03-08 15:11:56

标签: javafx javafx-2

我正在尝试使用文本编辑器中的textarea行创建一个列表。我已经使用VBox项目并添加了TextField ListCell,但是当我在textarea中滚动时,VBox没有它。我该怎么做?。这是代码的一部分:

TextArea areaNueva = new TextArea();
areas.add(numeroTab, areaNueva);
areas.get(numeroTab).setStyle("-fx-font:15pt \"Times New Roman\";" + "-fx-focus-color:             transparent;");
BorderPane bor = new BorderPane();
ObservableList<TextFieldListCell> tf = FXCollections.observableArrayList();
TextFieldListCell cell = new TextFieldListCell();
VBox b = new VBox();
cell.setPrefSize(20,1);
cell.setFont(Font.font("Times New Roman",11.35));
cell.setText("1");
tf.add(0,cell);
b.getChildren().addAll(tf);
b.setSpacing(-2);
b.setPadding(new Insets(3,0,0,0));
bor.setLeft(b);
bor.setCenter(areaNueva);
Tab tabNuevo = new Tab("Sin Titulo");
tabs.add(numeroTab, tabNuevo);
tabs.get(numeroTab).setClosable(true);
tabs.get(numeroTab).setContent(bor);

用这个我添加新的行数:

private ArrayList<ObservableList<TextFieldListCell>> lineas = new   ArrayList<ObservableList<TextFieldListCell>>();
String parte = null;
int i = 1;
while ((parte = br.readLine()) != null) {
      areaAUtilizar.appendText(parte + "\n");
      if(i!=1){
        TextFieldListCell c = new TextFieldListCell();
        c.setText(Integer.toString(i));
        c.setFont(Font.font("Times New Roman",11.35));
        c.setPrefSize(20, 13);
        lineas.get(a).add(i-1,c);
        boxes.get(a).getChildren().setAll(lineas.get(a));
      }
      i++;
 }

1 个答案:

答案 0 :(得分:3)

我通过删除textarea和listview的滚动来解决它,并将其不透明度设置为0,并将两者放在边框中。在我将滚动条和边框放在滚动窗格中之后。并且为了显示滚动窗格的滚动条,当textarea的行比prefheight更大时,我增加了textarea和listview的高度。