package fx;
import javafx.application.Application;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.CheckBox;
import javafx.scene.control.ScrollPane;
import javafx.scene.control.TextArea;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.HBox;
import javafx.stage.Stage;
public class Exercise16_12 extends Application {
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) {
TextArea textArea = new TextArea(getText() + getText()); //文本区域
textArea.setPrefRowCount(7); //设置行数
textArea.setPrefColumnCount(30); //设置列数
CheckBox editable = new CheckBox("Editable"); //复选框
CheckBox wrap = new CheckBox("Wrap");
HBox hBox = new HBox(10, editable, wrap);
hBox.setAlignment(Pos.CENTER);
editable.setOnAction(event -> { //复选框注册动作事件
//如果被选,设置可编辑为true
if (editable.isSelected()) textArea.setEditable(true);
else textArea.setEditable(false);
});
wrap.setOnAction(event -> {
if (wrap.isSelected()) textArea.setWrapText(true);
else textArea.setWrapText(false);
});
BorderPane pane = new BorderPane(new ScrollPane(textArea));
pane.setBottom(hBox);
Scene scene = new Scene(pane);
primaryStage.setScene(scene);
primaryStage.setTitle("Exercise16_12");
primaryStage.show();
}
/** 返回测试文本 */
private String getText() {
return "编写一个程序,可以动态地改变堆栈面板上显示的标签中文本的字体。这个" +
"消息可以同时以粗体和斜体显示。可以从组合框中选择字体名和字体大小,如图 16-" +
"42a 所示。" +
"使用 Font .getFamiliesO 可以得到可用的宇体名。字体大小的组合框初始化为从 1到 100" +
"之间的数字";
}
}