javafx拉伸图像以填充按钮?

2024-01-24

我正在用 Java/JavaFX 编写一个“星际迷航”游戏。我的想法是主游戏屏幕是一个 10x10 的按钮网格面板。所有游戏部件(企业、克林贡、行星等)都将在按钮中显示为图标。这样,您可以单击一个空间对象来选择它、扭曲到它、射击它等等:

当然,这一切都取决于能够将我的小星舰图像分配给适当的按钮。我已经弄清楚如何将背景应用到按钮,但是当我应用图像时,契合度不佳。这是迄今为止我的游戏的屏幕截图:

“企业”形象有点合适……但实际上并不合适。必须有办法拉伸船以适应按钮exactly,但我还没有找到它。我还必须找到一种在 Java(不是 CSS 或 FXML)中执行此操作的方法,因为 Java 代码必须移动图标。

这是我的代码:

public void setUpBoard(){

  // set up 10x10 GridPane of Buttons...

  Image testImage = new Image(getClass().getResourceAsStream("Enterprise.png"));
  ImageView testImageView = new ImageView(testImage);
  testImageView.setFitWidth(55);            // My button is 55 x 37 pixels, according to the FXML
  testImageView.setFitHeight(37);
  //testImageView.fitWidthProperty().bind(gridButton37.widthProperty());   // This didn't work either
  //testImageView.fitHeightProperty().bind(gridButton37.widthProperty());
  gridButton37.setGraphic(testImageView);
}

我已经谷歌搜索了几个小时,但我找不到似乎适用于此的“将图像拉伸到父级”解决方案。我有什么遗漏的吗?


    btnTest.setMinSize(55, 37);
    btnTest.setMaxSize(55, 37);

    Image image = new Image("/view/images/someImage.png", btnTest.getWidth(), btnTest.getHeight(), false, true, true);
    BackgroundImage bImage = new BackgroundImage(image, BackgroundRepeat.NO_REPEAT, BackgroundRepeat.NO_REPEAT, BackgroundPosition.CENTER, new BackgroundSize(btnTest.getWidth(), btnTest.getHeight(), true, true, true, false));

    Background backGround = new Background(bImage);
    btnTest.setBackground(backGround);

See https://docs.oracle.com/javase/8/javafx/api/javafx/scene/layout/Background.html https://docs.oracle.com/javase/8/javafx/api/javafx/scene/layout/Background.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

javafx拉伸图像以填充按钮? 的相关文章

  • createImage(int width, int height) 的问题

    我有以下代码 作为游戏的一部分每 10 毫秒运行一次 private void gameRender if dbImage null createImage returns null if GraphicsEnvironment isHea
  • HTML5 仅拖放图像

    我想做的是 如果所有拖动的文件都是图像 则将其删除 但如果有其他文件扩展名 则不要删除它们 而仅删除图像 这是我的尝试 HTML div div JavaScript var dropzone document getElementById
  • 使用 HttpUrlConnection Android 将 base64 编码的图像发送到服务器

    我正在尝试使用 HttpUrlConnection 将 base64 编码的图像发送到服务器 我遇到的问题是大多数图像均已成功发送 但有些图像会生成 FileNotFound 异常 我的图像编码代码可以在下面找到 public static
  • Javafx 组合框不会在实时更改时更新下拉列表大小?

    我正在使用 Javafx v8 0 25 b18 我出现的问题是动态组合框的下拉列表的大小不会改变 所以如果我最初在下拉列表中有两个项目 那么下拉列表大小将适合两个项目 但如果我现在用以下内容填充动态组合框三个项目 然后我在里面得到一个小滚
  • 错误:缺少 JavaFX 运行时组件,并且需要使用 Gradle 示例来运行此应用程序

    我知道这个问题已被问过多次 但我似乎找不到解决方案 摘自官方指南示例 https openjfx io openjfx docs gradle https openjfx io openjfx docs gradle我继续添加了我的构建 g
  • 如何提高包含大量小图像的 UCollectionView 的性能?

    在我的 iOS 应用程序中我有UICollectionView显示大约 1200 个小 35x35 点 图像 图像存储在应用程序包中 我正确地重用了UICollectionViewCell但仍然存在性能问题 具体取决于我处理图像加载的方式
  • 如何在日期选择器中设置不在当前月份的单元格的样式

    我目前正在为我的 JavaFX 应用程序制作注册表 问题是 当日期选择器中的单元格不在页面的月份上时 我想让该单元格变灰 让我们看看我当前的日期选择器 我的日期选择器 正如您所看到的 我希望下个月的日期 27 日 28 日 30 日以及 1
  • 使用 mongoose 通过 React 应用程序将图像上传到 mongodb 数据库

    我正在为找到的对象创建一个反应应用程序 我想允许用户上传这些对象的照片 我尝试使用 axios 通过 post 请求将图像发送到猫鼬服务器 但它不起作用 这就是我如何将图像存储在带有预览的 React 组件中 handleImage eve
  • 使用 PHP 中的 GD 库在图像上绘图

    我创建了一个代码来生成随机图案图像 它创建一个具有给定宽度和高度的图像 并用 40x40 像素的小矩形填充它 这是我的代码
  • ListChangeListener wasPermutated 块

    ListChangeListener 的 JavaDoc 提供了用于处理更改的模板 但是 我不知道如何处理排列 对于每个索引 我都可以找到该项目的新索引在哪里 但我不知道如何处理它 这是一个独立于编程语言的难题 ObservableList
  • 如何使用 winforms 在 C# 中从网络下载显示下载进度的图像?

    我使用 WebRequest 从 URL 异步下载图像 如下所示 public void Download string url byte buffer new byte 0x1000 WebRequest request HttpWebR
  • 如何在PYQT中创建按钮点击

    我在 PyQT 中创建按钮单击时遇到了一些问题 当我创建如下按钮的点击时 这张图片无法保存 cv SetImageROI image pt1 0 pt1 1 pt2 0 pt1 0 int pt2 1 pt1 1 1 if self But
  • Laravel 上传前如何压缩图像?

    我正在制作一个图片库网站 用户可以在其中上传任何图像 它们将显示在前端 我需要在不影响图像质量的情况下压缩图像 以减小图像大小 以便页面加载速度不会影响那么大 我使用以下代码来上传图像 rules array file gt require
  • 如何通过 HTML 按钮播放声音

    我目前通过网站播放音乐的方法是通过 HTML 音频标签 不过我希望能够通过 HTML 按钮来播放它 该按钮应该能够在播放和停止之间切换音乐 我在 JSFiddle 创建了一个示例 但不知道如何实现它 有人可以告诉我如何使用我的 JSFidd
  • SVG 转 JPG / PNG

    有没有工作模块可以convert a SVG image into像素格式如JPEG or PNG 看看蜡染工具包 具体来说是光栅化器 http xmlgraphics apache org batik tools rasterizer h
  • 在 android 中,第一次单击时按钮侦听器未注册

    因为我是 Android 新手 所以我遇到了按钮监听器的问题 我正在使用 OnClickListener 来处理胸像 但它第一次点击后不执行一旦我单击多个 它就会表现良好 但如何使其在第一次单击时成为可能 这是我的代码 public cla
  • Java中读取图像文件的方式有什么区别?

    在java中读取图像文件有多种方法 例如BufferedImage and ImageIcon仅举几例 我想知道这些情况有什么区别 它们是否依赖于上下文 在特定情况下只能使用其中一个 阅读所选图像的最佳方式是什么JFileChooser由用
  • 如何在运行时更改按钮的颜色? [复制]

    这个问题在这里已经有答案了 button1 Button root text A1 width 8 grid row 0 column 0 button2 Button root text A2 width 8 grid row 0 col
  • javafx组合框下拉菜单从屏幕边缘跳出

    我有最新版本的 java 8 40 和 javaFX 我有一个包含 10 个项目的复选框 我编译并运行该程序 如果我将程序窗口移至监视器屏幕的底部 下拉列表将从监视器屏幕中消失 无法将项目点击出屏幕 相反 如果我尝试使用场景生成器 2 0
  • GNUPLOT:尝试提高质量

    如何提高 gnuplot 的质量 看起来这是一个非常低分辨率的图像 这是我正在使用的文件的内容 linkage plot set terminal pdf set out linkage pdf set title Distribution

随机推荐

  • 在c#中创建文件夹的快捷方式

    长话短说 我需要使用 C 创建文件夹的快捷方式 我一直在阅读使用IWshRuntimeLibrary 当我尝试使用任何东西时IWshRuntimeLibrary我遇到了各种歧义错误System IO File 我假设这是因为有一个IWshR
  • 给定一个数字系列,找到校验位算法......?

    假设我有一系列索引号 其中包含检查数字 http en wikipedia org wiki Check digit 如果我有足够公平的样本 例如 250 个样本索引号 我是否有办法提取用于生成校验位的算法 我认为至少应该有一种编程方法来找
  • 塔式认证?

    有没有一种真正的方法可以在 Pylons 中添加身份验证 我见过很多不同的方法 但其中大多数要么过时 要么太复杂 是否有教程解释如何以良好而可靠的方式添加身份验证 Pylon的官方立场似乎是 我们不做身份验证 你可以插入任何你想要的身份验证
  • 平台不允许 Flutter Insecure http

    Flutter 团队最近进行了此更改 现在不允许不安全的 http 连接 https flutter dev docs release writing changes network policy ios android https flu
  • 使用“std”的标准约定

    精确重复 您更喜欢 C 中的显式命名空间还是 using https stackoverflow com questions 214927 do you prefer explicit namespaces or using in c 对于
  • PHP file_get_contents 在本地主机上不起作用

    我正在从 localhost http 172 16 65 1 上的 OSX 上的 MAMP 服务器上处理我的网站 我想从 Google 加载一些 JSON 一些简单的测试表明我在这里遇到了问题 echo file get contents
  • 使用 JAVA 8 Streams 从地图中仅创建 1 个列表,其中地图值是列表

    我有一个地图 其中 值 是项目列表 Map
  • 如何在MVVMCross WPF应用程序中实现关闭按钮?

    我在用MVVM交叉 in my WPF申请 我想提供一个Close or ExitGUI 中的 按钮可关闭整个应用程序 有没有一种简单的方法可以使用MVVM交叉功能 我用我的方法尝试了以下方法MainViewModel public cla
  • 在 Rust 中散列读者的正确方法?

    我试图使用双重哈希 https crates io crates twox hash为文件生成哈希 因为它似乎是最快的哈希实现 并且安全性不是此实现的问题 为了让它与读者一起工作 我实现了一个包装结构 它实现了Write特质并直接调用XxH
  • 在类中存在的标头内使用“导航”和“路线” - React-navigation v5

    我被困住了 因为我想切换到 React navigation 的 V5 版本 在 v4 中 我曾经传递参数并将它们与以下命令一起使用 Set this props navigation navigate MyDestination myPa
  • 在引导程序中禁用@media print?

    是否可以完全禁用任何预配置 media printcss样式来自bootstrap无需重新编译 默认应用的打印样式可以在这里看到 https github com twbs bootstrap blob master dist css bo
  • 工具提示控件如何通过新属性增强表单上的所有控件?

    在回答另一个问题时 我开始想知道如何向表单中的所有控件添加新属性 就像工具提示控件那样 例如 我可以使用它将 IsDirty 标志添加到所有文本框 只需将组件添加到表单中 它就会为每个文本框处理这个问题 将工具提示控件添加到表单时 所有控件
  • 浏览器关闭时如何唤醒服务人员

    我正在玩服务人员的东西 我已经做了它以及清单 json 我想在以下场景后触发服务工作人员启动 添加了推送集成并从服务器端发送推送通知 在客户端收到它 但前提是我在我的申请页面中 以下是我想要尝试启动 Service Worker 的步骤 我
  • 如何使用 qmake 处理两个同名的源文件?

    我的 Qt 项目有两个同名但位于不同文件夹中的源文件 专业文件是 SOURCES A Test cpp SOURCES B Test cpp 它可以通过 Qt Visual Studio 插件生成 Visual Studio 解决方案文件
  • github api 比较提交,响应状态存在分歧

    在配置jenkins时 我想检测feature分支是否存在合并冲突 所以我使用github api v3在2上进行测试故意的冲突的分支 将branch1合并到master后 我比较了branch2 b2 如下所示 curl i https
  • WS-Security php 中 PasswordDigest 的工作算法

    我一直根据航空公司供应商提供的公式创建哈希密码 我在这个网站上搜索过 我从下面的链接中得到了 C 的解决方案 但我想要 PHP 的解决方案 WS Security 中 PasswordDigest 的工作算法 https stackover
  • 了解 Objective-C 中强指针和弱指针的实际应用

    我刚刚阅读了已接受的优秀答案this https stackoverflow com questions 9262535 explanation of strong and weak storage in ios5这个问题澄清了 Objec
  • JavaScript 输入数字

    如何使用 window prompt 从用户处获取 2 个数字并将它们相加而不连接 我的想法是 var temp window prompt Number1 var temp2 window prompt Number2 var answe
  • 初始化列表和运算符的 RHS

    我不明白为什么初始化列表不能在运算符的 RHS 上使用 考虑 class foo struct bar template
  • javafx拉伸图像以填充按钮?

    我正在用 Java JavaFX 编写一个 星际迷航 游戏 我的想法是主游戏屏幕是一个 10x10 的按钮网格面板 所有游戏部件 企业 克林贡 行星等 都将在按钮中显示为图标 这样 您可以单击一个空间对象来选择它 扭曲到它 射击它等等 当然