当前位置: 首页 > 知识库问答 >
问题:

图像按钮javafx

叶英哲
2023-03-14

快速提问,如何在fxml中让图像覆盖整个按钮。

因此,按钮的所有可见部分都是边框。由于某种原因,当我试图调整图像大小以适应按钮时,它会自动调整大小。我在使用场景生成器。我正在使用FXML。

按钮大小为prefHeight=“38.0”prefWidth=“50.9990000002526”。

记住我不想看到按钮的背景。我希望它被一张图片覆盖。

谢谢,你们帮了大忙。

共有1个答案

符棋
2023-03-14

您正在寻找的是使用填充

https://docs.oracle.com/javase/8/javafx/api/javafx/scene/layout/Region.html#setPadding-javafx。几何学插图-

public final void setPadding(Insets value);

设置属性填充的值。

属性描述:区域内容周围的顶部、右侧、底部和左侧填充。该空间将包含在区域最小和首选尺寸的计算中。默认情况下,填充为插入。空的应避免将该值设置为null。

它没有提到默认设置,但您可以通过键入按钮轻松获得。getPadding()

我决定自己测试一下,得到了

 Insets [top=4.0, right=8.0, bottom=4.0, left=8.0]

这就是为什么你有问题,它没有填补。调整大小会影响按钮,图形是按钮的一部分。

接下来,我们必须定义我们的插图以获得所需的效果。

要定义填充,我们需要查看插图

https://docs.oracle.com/javase/8/javafx/api/javafx/geometry/Insets.html

有一个静态字段,所以让我们使用它。

Button btn = new Button();
btn.setGraphic(new ImageView("image"));
btn.setPadding(Insets.EMPTY);

将产生预期的效果,并产生

Insets [top=0.0, right=0.0, bottom=0.0, left=0.0]

然而仍然有一个边界,可能只有在聚焦时才存在。。。

如果你想摆脱边界,请阅读下面的内容。

我决定测试负值是否有效,实际上-1也有效。

本质上,如果你给插图一个-1的值,它会切断按钮周围的边框,所以按钮本质上是一个图像

public class JavaFXApplication extends Application {

@Override
public void start(Stage primaryStage) {
    Button btn = new Button();
    btn.setGraphic(new ImageView(image));
    btn.setPadding(new Insets(-1,-1,-1,-1));
    btn.setOnAction(new EventHandler<ActionEvent>() {

        @Override
        public void handle(ActionEvent event) {
            System.out.println(btn.getPadding());
        }
    });

    StackPane root = new StackPane();
    root.getChildren().add(btn);

    Scene scene = new Scene(root, 300, 250);

    primaryStage.setTitle("Button Image!");
    primaryStage.setScene(scene);
    primaryStage.show();
}

/**
 * @param args the command line arguments
 */
public static void main(String[] args) {
    launch(args);
}

}

 类似资料:
  • 主要内容:本节引言:,1.StateListDrawable简介:,2.实现按钮的按下效果:,3.使用颜色值绘制圆角按钮,4.实现Material Design水波效果的Button,本节小结:本节引言: 今天给大家介绍的Android基本控件中的两个按钮控件,Button普通按钮和ImageButton图像按钮; 其实ImageButton和Button的用法基本类似,至于与图片相关的则和后面ImageView相同,所以本节 只对Button进行讲解,另外Button是TextView的子类,

  • 我正在使用圆形按钮,我想在里面有一个图像。问题是图像在中心,而不是在左边,即使调用 loadButton.setAlignment(Pos.BASELINE_LEFT); 我得到的是上面的按钮,我需要的是下面的按钮。你知道在圆角下显示png的方法吗? 非常感谢!

  • 问题内容: 我期望以下两个脚本具有相同的输出。 但是执行 脚本1 时,按钮上没有显示图像。但是, 脚本2 效果很好。 脚本1 剧本2 问题答案: 对图像对象的唯一引用是局部变量。当退出时,被当作垃圾回收的局部变量,因此图像被破坏。在第二个示例中,由于映像是在全局级别创建的,因此它永远不会超出范围,因此也不会进行垃圾回收。 要解决此问题,请保存对图像的引用。例如,代替use 。

  • 我刚刚在文件夹下添加了一个新的可绘制文件夹。在drawable文件夹中,我复制了ic\U启动器。png文件来自可绘制hdpi文件夹。当我按下按钮时,我想通过新的图像更改标准的图像按钮。我写了一些代码,但当我启动应用程序时,它崩溃了。 编辑:我改成了这个,这个也不行。 编辑2:这很有效。感谢大家。

  • 问题内容: 我真的很喜欢这些新按钮在Gmail中的工作方式。如何在网站上使用这些或类似按钮?是否有任何外观和感觉相似的开源项目? 如果我想使用JQuery / XHTML / CSS来滚动自己的按钮包,我可以使用哪些元素?我最初的想法是: css的标准,以改善外观(设计文章主要讨论css / imges涉及。) jQuery javascript弹出一个自定义对话框,该对话框植根于“ onclic

  • 我能找到的每个更改按钮图像的示例都显示了当单击该按钮时如何更改它。但是我如何点击一个切换按钮,并让它改变一个常规按钮的图像呢? 关于更多细节,我有两个按钮和一个onCheckedChanged事件: 当按下切换按钮并发生onCheckedChanged事件时,我需要将btn1的背景设置为新图像。