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

将JButton图标向左对齐,并使文本居中

萧秋月
2023-03-14

我想设置一个JButton,使其图标与它的左侧对齐,而文本居中。

我已经找到了如何让其中一个左,另一个右,或两者在同一个设置,但我找不到我要找的。

当然,我总是可以重新定义绘制方法,但我正在寻找一种更精简的方法。

共有1个答案

夏景同
2023-03-14

您可以将布局管理器添加到您的按钮,例如,边框布局将有助于:

您可以创建一个带有图标和文本“单击我”的标签:

JLabel iconLabel = new JLabel(new ImageIcon(this.getClass().getResource("king.png")));
JLabel clickMe = new JLabel("Click me", SwingConstants.CENTER); //We give it the center alignment so it stays on the center of the label.

然后您创建您的JButton,为其提供边框布局并将您的组件添加到您想要的位置。

button.setLayout(new BorderLayout());
button.add(iconLabel, BorderLayout.WEST);
button.add(clickMe, BorderLayout.CENTER);

我给了每个标签一个边框,这样你就可以看到每个标签的样子,因为点击我标签不会在按钮的中央,而是在标签标签的中央:

我认为这没什么大不了的,因为没有边界几乎觉察不到

 类似资料:
  • 问题内容: 我希望整个块都以其父对象为中心,但是我希望块的内容保持对齐。 例子最有用 在本页面 : http://yaml-online- parser.appspot.com/?yaml=%23+ASCII+Art%0d%0a—+%7c%0d%0a %5c%2f%2f%7c%7c%5c% 2f%7c%7c%0d%0a %2f%2f +%7c%7c ++%7c%7c __%0d%0a&type =

  • 我正在以列表格式显示文本和图像,但我不能让它们完美地排列在中间,在一条直线上,我错过了什么 下面是我的布局代码

  • 问题内容: 我有可变长度的刻度标签,我想将它们向左对齐(即,较短的标签和y轴之间有一个空格)。有什么合理的方法可以做到这一点吗?使用水平对齐方式“向左”会将其向左对齐,但是它们都从轴开始,因此最终在绘图内。因此,另一个问题可能是- 我可以更改其起点吗? 演示代码: 问题答案: 您只需要添加一个。查看matplotlib刻度相对于轴的位置 (文件) 确定垫子应该是什么:

  • 问题内容: 要求 弹性盒 垂直中间 水平向左 垂直堆叠的子元素 子元素的数量可以是一个或多个 使用旧语法,以便Android 4.2能够理解 听起来很难描述。演示中的粉红色框是我想要的外观。绿框已经很好,只是我不知道如何处理多个子元素。 我认为解决方案可能是以下各项的组合,但我做不到。 Codepen演示 问题答案: 沿主轴对齐弹性项目。 沿始终垂直于主轴的横轴对齐弹性项目。 取决于,主轴可以是水

  • 本文向大家介绍实现单行文本居中和多行文本左对齐并超出显示"..."相关面试题,主要包含被问及实现单行文本居中和多行文本左对齐并超出显示"..."时的应答技巧和注意事项,需要的朋友参考一下 单行文本居中。在 内核中适用。非 内核,可以是用 js 或者用 模拟。 多行文本左对齐。多行文本没有很好的解决方法,只能依赖 js 或者 css 的相对定位。 示例代码:https://codepen.io/Ko

  • 问题内容: 我有一个div 。其内容水平和垂直居中。 当div中的内容太长时,内容将自动换行。但是在这种情况下,对齐方式会中断。请参阅摘要。 如果我添加正确显示。但是,为什么没有中心呢? 问题答案: flex容器的HTML结构具有三个级别: 容器 该项目 内容 每个级别代表一个独立的独立元素。 该属性是在flex容器上设置的,用于控制flex项目。它不能直接控制项目的子项(在这种情况下为文本)。