Button 在带有偏移的按钮上居中文本

Button 在带有偏移的按钮上居中文本,button,text,javafx-2,Button,Text,Javafx 2,我有各种各样的切换按钮,它们都加载了图像。按钮大小由图像大小决定,按钮本身由JavaCode创建。一些按钮的左侧或右侧都有图标(图标只是加载图像的一部分) 如何将文本向左或向右移动某个值,以便可以使用图标的偏移量再次将文本居中?我不介意将图标的宽度作为参数传递,但我找不到任何东西可以移动文本一定量 按钮是从绿色图像创建的,右侧图标是其一部分;总宽度为300,图标为100;文本应居中到剩余的200。由于语言设置原因,文本本身不能成为图片的一部分。您可以按如下方式设置按钮的样式: // top r

我有各种各样的切换按钮,它们都加载了图像。按钮大小由图像大小决定,按钮本身由JavaCode创建。一些按钮的左侧或右侧都有图标(图标只是加载图像的一部分)

如何将文本向左或向右移动某个值,以便可以使用图标的偏移量再次将文本居中?我不介意将图标的宽度作为参数传递,但我找不到任何东西可以移动文本一定量


按钮是从绿色图像创建的,右侧图标是其一部分;总宽度为300,图标为100;文本应居中到剩余的200。由于语言设置原因,文本本身不能成为图片的一部分。

您可以按如下方式设置按钮的样式:

// top right bottom left
btn.setStyle("-fx-padding: 5px 5px 5px 5px;");
编辑:
您可以使用HBox:

HBox hbox = new HBox();
// the text of the "button"
Label lbl_txt = new Label("Text");
// the icon of the "button", i am using Labels for icon(with css)
Label lbl_ico = new Label("ico");
hbox.getChildren().addAll(lbl_txt, lbl_ico);
hbox.setOnMouseClicked(new EventHandler<MouseEvent>() {
    @Override
    public void handle(MouseEvent t) {
        // alternative to Button click
    }
});
HBox HBox=新的HBox();
//“按钮”的文本
标签lbl_txt=新标签(“文本”);
//“按钮”的图标,我使用图标标签(带有css)
标签lbl_ico=新标签(“ico”);
hbox.getChildren().addAll(lbl_txt,lbl_ico);
setOnMouseClicked(新的EventHandler(){
@凌驾
公共无效句柄(MouseEvent t){
//按钮点击的替代方案
}
});

其他一切都是用css设计的。;-)

这不起作用,它偏移了整个按钮,而不仅仅是它的文本(不仅偏移了位置,还偏移了可点击区域)好的,我还不清楚你的问题。你能提供任何类型的示例或屏幕截图吗?好吧,这可能是最后一种解决方法,但我更反对,因为-被迫使用3个组件而不是一个组件来放置文本-我还必须实现点击事件的正常按钮行为(如切换按钮的按下状态)我现在正在为一个复杂的应用程序使用javafx,我要告诉大家,没有比这更简单的方法了。按下状态、悬停等,您可以从按钮css复制。。