首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

不确定为什么Java FX中的按钮不能彼此相邻对齐

Java FX中的按钮不能彼此相邻对齐是因为Java FX中的布局管理器默认使用的是垂直布局(Vertical Layout),该布局会将组件按照垂直方向依次排列,无法实现按钮的水平对齐。

要实现按钮的水平对齐,可以使用水平布局(Horizontal Layout)或网格布局(Grid Layout)来替代默认的垂直布局。

  1. 水平布局(Horizontal Layout):使用HBox布局管理器可以实现水平对齐。HBox将组件按照水平方向依次排列,可以通过设置按钮的间距和对齐方式来实现相邻对齐。示例代码如下:
代码语言:txt
复制
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.HBox;
import javafx.stage.Stage;

public class Main extends Application {
    @Override
    public void start(Stage primaryStage) {
        Button button1 = new Button("Button 1");
        Button button2 = new Button("Button 2");
        Button button3 = new Button("Button 3");

        HBox hbox = new HBox();
        hbox.getChildren().addAll(button1, button2, button3);

        Scene scene = new Scene(hbox, 300, 200);
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}
  1. 网格布局(Grid Layout):使用GridPane布局管理器可以实现按钮的网格对齐。GridPane将组件放置在一个网格中,可以通过设置组件所在的行和列来实现对齐。示例代码如下:
代码语言:txt
复制
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.GridPane;
import javafx.stage.Stage;

public class Main extends Application {
    @Override
    public void start(Stage primaryStage) {
        Button button1 = new Button("Button 1");
        Button button2 = new Button("Button 2");
        Button button3 = new Button("Button 3");

        GridPane gridPane = new GridPane();
        gridPane.add(button1, 0, 0);
        gridPane.add(button2, 1, 0);
        gridPane.add(button3, 2, 0);

        Scene scene = new Scene(gridPane, 300, 200);
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}

以上是两种常用的布局方式,可以实现Java FX中按钮的相邻对齐。在实际开发中,可以根据具体需求选择合适的布局管理器来实现界面布局。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

为什么你写拦截器不能注入Java bean?

这时候就需要提供一个验证token有效性接口,在拦截器验证token,由于拦截器是Spring提供,因此很容易想到使用@Component注解将拦截器注成一个 bean。...明明代码写没问题,为什么不能正常注入TokenUtil呢?...仔细观察我们自定义配置类WebConfiguration,在添加拦截器时候用是new LoginInterceptor(),如果想要拦截器生效,必须将拦截器配置到WebMvc配置类,就是我们自定义...token业务类,然后在初始化拦截器时候将业务类通过构造器带入拦截器,这样就不用把拦截器注成Spring Bean对象了。...这是一种错误做法。我们需要保证是在WebMvc配置类添加拦截器是Spring 一个bean对象,也就是说我们需要将拦截器注成一个bean,同时将这个bean添加WebMvc配置类

94130

Javastatic用法,static、public为什么不能修饰局部变量?

人为规定,记住就好。 其实这些变量都之所以叫局部变量,其作用域也只限于声明它方法体内。在方法被调用时,这些局部变量获得内存空间,到方法执行结束时,他们所占据内存空间就被释放。 用完就释放。...4.数据存储不一样 成员变量储存在堆内存对象,也叫对象特有数据。 静态变量储存在方法区静态区,所有也叫对象共享数据。...关于static用法: static变量 static表示“全局”或者“静态”意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,但是Java语言中没有全局变量概念。...静态方法不能访问非静态成员方法和非静态成员变量,但是在非静态成员方法是可以访问静态成员方法/变量。当然静态可以访问静态,非静态可以访问非静态。...可以直接通过类名来访问,访问语法为: 类名.静态方法名(参数列表…) 类名.静态变量名 static代码块 static代码块在jvm加载类时候会自动执行,但是static代码块不能在方法内

2.8K10
  • nextline函数_在JAVAScannernext()和nextLine()为什么不能一起使用?

    Java 输入一直是一个坑,本来一直用 Scanner,但一直搞不懂换行符啥,就用 BufferReader ,但前不久大疆笔试需要持续输入,早忘了 Scanner 怎么写,而那个场景用 Scanner...很好实现 …… 就继续在这里记录一下 Scanner 坑吧 一、next & nextLine 区别next不能得到带有空格字符串 一定要读到有效字符后才可以结束,结束条件是碰到空格、tab 键、...、tab 键、enter 键都不能当作结束符。...回车符 “\r” 它被丢弃在缓冲区,现在缓冲区,只有一个 \r ,于是 下一次 nextLine 扫描时候就又扫描到了 \r,返回它之前内容,也是啥都没有 “” ,然后再把 \r 去掉, 对于...这个扫描器在扫描过程判断停止依据就是“结束符”,空格,回车,tab 都算做是结束符 而坑点在于 next 系列,也就是下面这些函数:next nextInt nextDouble nextFloat

    2.7K10

    你还在用B端大模型?OUT 了!!!用混元打造专属智能化桌面应用

    同时,JavaFX 作为 Java 生态系统功能强大 UI 框架之一,凭借其丰富组件和灵活布局能力,逐渐成为构建桌面应用首选工具。...开发环境配置 安装和配置 JavaFX 在这里提一下,Java 8 内置了JavaFX,但是从Java 9开始 JavaFX 不再包含在 JDK ,而是作为一个独立模块提供。...: 1px; -fx-border-radius: 5px; -fx-padding: 5px; } /* 设置发送按钮样式 */ #userInput > .button {...点击 + 按钮,选择 Java,然后选择下载 JavaFX SDK 目录。 配置模块依赖 进入 File -> Project Structure -> Modules。...添加新 Artifact: 点击 + 按钮,选择 JAR -> From modules with dependencies。 在弹出对话框,选择你主类(包含 main 方法类)。

    37931

    为什么Java成员变量不能被重写?成员变量在Java能够被重写么?不会重写成员变量,而是隐藏成员变量访问隐藏域方法

    这篇文章讨论了Java面向对象概念中一个基本概念--Field Hiding(成员变量隐藏) 成员变量在Java能够被重写么?...Paste_Image.png 按照我们已有的多态概念,第二个应该是输出sub才对,但却输出了super。这是为什么呢?...不会重写成员变量,而是隐藏成员变量 Java文档对隐藏域定义: Within a class, a field that has the same name as a field in the superclass...意思就是: 在一个类,子类成员变量如果和父类成员变量同名,那么即使他们类型不一样,只要名字一样。父类成员变量都会被隐藏。在子类,父类成员变量不能被简单用引用来访问。...其实,简单来说,就是子类不会去重写覆盖父类成员变量,所以成员变量访问不能像方法一样使用多态去访问。

    3.5K40

    ​LeetCode刷题实战79:单词搜索

    题意 给定一个二维网格和一个单词,找出该单词是否存在于网格。 单词必须按照字母顺序,通过相邻单元格内字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻单元格。...class Solution: def exist(self, board: List[List[str]], word: str) -> bool: fx = [[0, 1],...[i][0] ny = y + fx[i][1] # 出界或者是走过时候,跳过 if nx < 0 or...相比于回溯法来说,我觉得更重要是我们能够通过分析想清楚,为什么广度优先搜索不行,底层核心本质原因是什么。这个思考过程往往比最后结论来得重要。...LeetCode刷题实战63:不同路径 II LeetCode刷题实战64:最小路径和 LeetCode刷题实战66:加一 LeetCode刷题实战67:二进制求和 LeetCode刷题实战68:文本左右对齐

    53210

    JavaFX 11发行说明

    添加API以自定义Spinner控件步骤重复计时 在JavaFX 11修改值步骤之前,必须在Spinner控件箭头按钮上按下鼠标的默认持续时间。...使用JDK 10运行时,Swing interop需要合格导出 要使用带有OpenJDK 10版本JavaFX 11运行FX / Swing互操作应用程序,必须在java命令行添加以下四个限定导出...使用jlink创建最小jdk映像时,Swing interop失败 使用包含JavaFX 11 jmods包javafx.swing模块jlink创建最小Java映像将无法运行FX / Swing...()会抛出ISE 应用程序生命周期 JDK-8089454 [HTMLEditor]选择删除CENTER对齐 控制 JDK-8154039 选择TabPane :: getTabs()未包含选项卡时内存泄漏...JDK-8202357 ModuleHelper.java版权标头中额外字符 其他 JDK-8204653 修复FX API文档错误 其他 JDK-8204956 修复JDK-8200285后清理空白

    6.6K60

    UI界面视觉平衡终极指南

    我们再来看视觉对齐另外一种情况——文字与按钮对齐。看看下面按钮文本,它们看起来都居中是吗? ? 诀窍是,我右边按钮文本向左移动了一点,因为右边边是三角形。...下图更多案例,Cancel和OK更适合使用大写高度对齐方法。因为Cancel没有向下延伸,而OK全是大写。x高度对齐法在下图中仅适合用在Sync按钮,其文本包含了向上伸展和向下延伸。...- 要点: 具有尖锐边缘形状应该更大或更长,以便与相邻矩形保持平衡。 用大写高度对齐法通常是对齐文字与背景按钮有效方法。 要让三角形图标与按钮对齐平衡,可以用其外接圆与背景按钮对齐。...可以发现右边按钮有更平滑圆角,而且视觉效果也更好。 APP 图标也是如此,用标准圆角是不能达到完美效果。在深入讨论这个话题之前,我们先来看看两个不同圆形。 ?...这也解释了为什么即使在几何字体,字母“o”总是比几何圆宽,而字母“H”竖线总是比横线粗。 >>>> 推荐阅读 由于本文对该主题理解有限,您可以选择继续探索。

    2.5K40

    SCRNA-seq聚类分析(二)

    回顾 单细胞RNA-seq分析介绍 单细胞RNA-seq设计和方法 从原始数据到计数矩阵 差异分析前准备工作 scRNA-seq——读入数据详解 scRNA-seq——质量控制 为什么需要Normalization...如果不确定在不同条件(例如,肿瘤和对照样本)之间期望什么簇或期望某些不同细胞类型,则首先单独条件执行可能会有帮助,然后再将它们一起研究,以查看在两种条件下是否存在针对细胞类型条件特定簇。...整合目标是确保一个条件/数据集细胞类型与其他条件/数据集相同细胞类型对齐(例如,对照组巨噬细胞与实验刺激组巨噬细胞对齐)。...具体而言,这种整合方法期望整个群体至少一个子细胞子集之间具有“对应”或共享生物学状态。下图概述了集成分析步骤: ?...“ [Stuart and Bulter et al. (2018)] 过滤标识以删除不正确标识: 通过标识对在其本地邻域中重叠来评估标识对之间相似性(错误锚点会有较低得分)-相邻细胞是否有彼此相邻

    1.1K20

    全栈之前端 | 10.CSS3基础知识之表单表格学习

    在分隔模式下,相邻单元格都拥有独立边框。在合并模式下,相邻单元格共享边框。...语法参数: /* Keyword values */ border-collapse: collapse; /* 合并(collapsed)模式下,表格相邻单元格共享边框,其边框border-style...描述:此属性属性只适用于边框分离模式(即border-collapse: separate),指定相邻单元格边框之间距离, 其相当于 HTML cellspacing 属性,但是第二个可选值可以用来设置不同于水平间距垂直间距...vertical : 描述相邻两行单元格之间垂直距离一个 值。...描述: 此属性用来指定行内元素(inline)、行内块(inline-block)或表格单元格(table-cell)元素垂直对齐方式,但请注意其不能用于块级元素垂直对齐

    20310

    【OpenCV】双线性插值法

    特点: 当对相邻四个像素点采用双线性插值时,所得表面在邻域处是吻合,但斜率不吻合。并且双线性灰度插值平滑作用可能使得图像细节产生退化,这种现象在进行图像放大时尤其明显。...第一步:X方向线性插值,在Q12,Q22插入蓝色点R2,Q11,Q21插入蓝色点R1; 第二步 :Y方向线性插值 ,通过第一步计算出R1与R2在y方向上插值计算出P点。...参考OpenCV源码以及网上博客整理如下两点: •源图像和目标图像几何中心对齐。...=1,也就是我们在插值时候所利用像素集中在图像右下方,而不是均匀分布整个图像。现在考虑中心点对齐,srcX=(4+0.5)*3/9-0.5=1,刚好满足我们要求....第二,这个数不能太大,太大会导致计算过程超过长整形所能表达范围。第三:速度考虑。

    1.4K20

    JavaFX之Scene Builder使用(开发一款GUI小工具原来这么简单)

    ,如果您是学Java开发,业余想做GUI小工具,可以选择使用JavaFX。...FXML是一种以XML格式表示JavaFX界面对象文件,FXML文件每一个元素可以映射到JavaFX一个类,每个FXML元素属性或者其子元素都可以映射为该对应JavaFXML类属性....说白了就是控制这个界面的文件,可以理解为界面的代码表示~~ 为什么需要Controller类文件?...click方法修改你点击按钮可以实现功能~ 五、拓展 之前我们创建那个Controller类通常需要实现Initializable接口,并重写里面的initialize方法。...拿上面的按钮例子来解释一下标签属性是干嘛吧~ fx:id指就是这个控件id值,为是在Controller类控制这个控件 onAction指的是点击这个按钮就能实现什么功能 text指就是这个按钮文本

    9.5K31

    如何使用纯 CSS 制作四子连珠游戏

    问题是,仅仅使用 HTML 不能将其置于不确定状态。即使可以,当再次点击复选框时,它也会转换成选中状态。强迫第二个玩家在移动圆盘时进行双击是不现实。...:nth-of-type 选择器 “统计”在父类某类型子类,不包括类或伪类。所以问题就在于无法通过 :checked 状态去统计。 CSS counters 也可以统计,所以为什么不试试呢?...因此,列圆孔是相邻,这使得使用相邻选择器识别列四个是最容易: <input...诀窍不仅在 CSS ,而且在 HTML ,下一列必须是上一列创建嵌套结构单选按钮同胞元素。...黄方胜利信息盖住了平局结果 虽然许多单选按钮是通过绝对定位隐藏在彼此后面的,但是所有处于不确定状态按钮仍然可以通过控件 tabindex 来访问。这使得玩家可以将他们圆盘放入任意圆孔

    2K20

    如何使用Flexbox和CSS Grid,实现高效布局

    幸运是,在现代网页设计时代,使用 Flexbox 和 CSS Grid 来对齐元素,变得相对容易起来。 使用 Flexbox 可以使元素对齐变得容易,因此 Flexbox 已经被广泛使用了。...导航位于 header ,通过 justify-content: space-between; 可以实现导航和按钮之间自动间隔。...在导航,使用 align-items: baseline; 能够实现所有导航项目与文本基线对齐,这样也使得导航栏看起来更加统一。...具有 .wrapper 类 div,也需要设置 display: flex; 但是 flex 方向与上述不同。这是因为侧边栏和主内容区域彼此相邻而不是堆叠。...上面的 CSS Grid 布局示例,需要在导航栏设置 justify-self:start;,在按钮设置 justify-self: end;,但是如果使用 Flexbox,导航间距会变得很容易设置

    3.5K10

    javaFX(二)-使用gradle+jdk14创建javafx程序

    在上一篇文章,我们一起学习了jlink和jdk14模块化. 在本篇文章,我们一起来学习gradle来新建一个javafxHello World 程序....本文中这段最重要 这段准备讲一下, 为什么要学习javafx, 小刀学这个, 是出于自己兴趣,当时是公司用k8s,但是想看日志啥,还要先打开网页,登录阿里云,然后选对应集群,然后找到对应命名空间...Label label; @FXML private ResourceBundle resources; public void initialize() { // 为按钮绑定事件...label.isVisible()); }); } } 启动效果 java module化应用, 不在建议使用idea直接点main函数启动,最好是用gradle右侧面板...开源代码 其实我一直不想在文章写很多代码,平常小刀在朋友圈发那个工具,已经开源, 而且也有小伙伴下载下来成功运行了, 所以,,,不要纠结上面的代码,,可以直接下载这个就行 https://github.com

    4.3K20

    JavaFX入门(二):JavaFX和FXML

    在我JavaFXML系列博客第一篇《JavaFX入门(一):我第一个JavaFX程序 》我们用纯Java代码写了一个很简单JavaFXML程序,这一节我们使用FXML编写程序界面,然后用...Java书写后台逻辑完成上一节程序,实现相同功能。...--xmlns用于声明默认命名空间,这里声明随着你安装Java JDK版本号不同可以不同,但是最好不要比你安装JDK版本高--> <BorderPane fx:controller="cn.tzy.fx.MainPaneController...handleButtonAction()方法在FXML文件说明,为ButtononAction属性值,我们在handleButtonAction()方法中进行点击按钮处理逻辑。...使用一个Controller类和@FXML注解将操作逻辑绑定到FXML文件界面元素。 在FXML文件中使用fx:id属性声明界面元素id,在Controller类以相同名称定义该元素。

    8.5K30

    JavaFX 简介

    当然,虽然编写客户端图形程序是Java弱项,但是Java并没有放弃这方面的努力。今天介绍JavaFX就是Java在编写图形界面程序最新技术。...用户输入 这个程序可以用来处理用户登录情况,代码如下,重要部分都添加了注释。代码最后一部分使用setOnAction函数为按钮添加了点击事件,当点击按钮时候会显示文本。...,它是一个标准Java类。...在FXML中用fx:id属性指定ID,可以在控制器声明为一个类字段,通过这个字段就可以和界面组件进行交互。同样道理,onAction声明事件处理程序,在控制器中就是一个方法。...#btnShowPassword { -fx-background-color: deeppink; } 上面用了ID选择器,所以对应地,在FXML也需要ID属性。

    5.7K81

    LeetCode 两次踩坑后,我终于学会了 BFS

    你需要按照如下规则给每个单元格安排高度: 每个格子高度都必须是非负。 如果一个格子是是 水域 ,那么它高度必须为 0 。 任意相邻格子高度差 至多 为 1 。...当两个格子在正东、南、西、北方向上相互紧挨着,就称它们为相邻格子。(也就是说它们有一条公共边) 找到一种安排高度方案,使得矩阵最高高度值 最大 。...fx][fy] = value + 1 q.put((fx, fy, res[fx][fy])) return res 没办法,...第二天,我看了下别人写通过了代码,发现就优化了一点,那就是设置了一个额外变量,用于记录已经设置了高度格子个数,这样的话,如果已经设置了高度格子数目等于了数组第一维度和第二维度乘积,这时,即便队列还有元素...最优配餐 不过我查阅资料发现这个得 70 分不是算法设计问题,而是跟程序选用语言有关系,同样程序,用 C++ 实现就可以通过,但是用 Python 实现就不能完全通过,而且网上也没有查到用 Python

    28720
    领券