编写一个 GUI 程序如图16- 36a 所示。可以使用按钮将消息进行左右移动,并且使用单选按钮来修改消息显示的颜色。

import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.RadioButton;
import javafx.scene.control.ToggleGroup;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.HBox;
import javafx.scene.layout.Pane;
import javafx.scene.paint.Color;
import javafx.scene.text.Text;
import javafx.stage.Stage;


public class buttonGUI extends Application {
    protected Text text =new Text(50,50,"Homework3");
    protected BorderPane getPane(){
        //下面代码是按钮控制移动字体代码
        HBox paneForButtons = new HBox(20);
        Button btleft =new Button("<=");
        Button btright = new Button("=>");

        paneForButtons.getChildren().addAll(btleft,btright);
        paneForButtons.setAlignment(Pos.CENTER);
        paneForButtons.setStyle("-fx-border-color: green");

        BorderPane pane =new BorderPane();
        pane.setBottom(paneForButtons);

        Pane paneForText =new Pane();
        paneForText.getChildren().add(text);
        pane.setCenter(paneForText);

        btleft.setOnAction(e-> text.setX(text.getX()-10));
        btright.setOnAction(e->text.setX(text.getX()+10));

        //下面代码是用按钮控制字体颜色
        HBox paneForRadioButtons=new HBox(20);
        paneForRadioButtons.setPadding(new Insets(5,5,5,5));
        RadioButton rbRed =new RadioButton("Red");
        RadioButton rbYellow = new RadioButton("Yellow");
        RadioButton rbBlack =new RadioButton("Black");
        RadioButton rbOrange =new RadioButton("Orange");
        RadioButton rbGreen =new RadioButton("Green");
        paneForRadioButtons.getChildren().addAll(rbRed,rbYellow,rbBlack,rbOrange,rbGreen);
        paneForRadioButtons.setAlignment(Pos.CENTER);

        pane.setTop(paneForRadioButtons);
        ToggleGroup group =new ToggleGroup();
        rbRed.setToggleGroup(group);
        rbYellow.setToggleGroup(group);
        rbBlack.setToggleGroup(group);
        rbOrange.setToggleGroup(group);
        rbGreen.setToggleGroup(group);

        rbRed.setOnAction(e->{
            if(rbRed.isSelected()){
                text.setFill(Color.RED);
            }
        });

        rbYellow.setOnAction(e->{
            if(rbYellow.isSelected()){
                text.setFill(Color.YELLOW);
            }
        });

        rbBlack.setOnAction(e->{
            if(rbBlack.isSelected()){
                text.setFill(Color.BLACK);
            }
        });

        rbOrange.setOnAction(e->{
            if(rbOrange.isSelected()){
                text.setFill(Color.ORANGE);
            }
        });

        rbGreen.setOnAction(e->{
            if(rbGreen.isSelected()){
                text.setFill(Color.GREEN);
            }
        });


        return pane;
    }

    @Override
    public void start(Stage primaryStage){
        Scene scene = new Scene(getPane(),450,200);
        primaryStage.setTitle("Homework");
        primaryStage.setScene(scene);
        primaryStage.show();
    }
}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值