【发布时间】:2017-11-26 07:17:55
【问题描述】:
我正在用 Java 编写一个程序,您必须在其中使用按钮选择一个类别。
我正在尝试在 JButton 中放置一个图标和文本,但我无法完全正确对齐。我想要按钮左侧和图标之间的左侧更宽的空间。
我读到你可以创建一个不可见的线边框来解决这个问题,但是我的 JButton 已经有一个边框。
choose_Animals = new JButton ("ANIMALS");
choose_Animals.setIcon(categoriesIcon[0]);
choose_Animals.setHorizontalAlignment(SwingConstants.LEFT);
choose_Animals.setIconTextGap(20);
choose_Animals.setOpaque(false);
choose_Animals.setContentAreaFilled(false);
choose_Animals.setForeground(Color.BLACK);
choose_Animals.setBorder(border);
choose_Animals.setFocusable(false);
choose_Animals.setFont(p);
choose_Animals.setBounds(90, 220,470, 85);
choose_Animals.addActionListener(this);
this.add(choose_Animals);
【问题讨论】:
-
不要这样做:
choose_Animals.setBounds(90, 220,470, 85);。不要使用 set bounds 或 null 布局,因为它们是新手代码的标志,因为这意味着您还不了解这将导致您的悲痛。学习使用,然后使用布局管理器。 -
正如你所说,我还是个新手,还没有学会使用布局管理器。
-
使用 bounds 就是让你的 gui 变得僵硬,让它在除你自己的系统之外的任何系统上都无法使用,并且很难更新或增强。如果你移动东西,那么你必须处理任何移动的所有副作用。研究上面的链接并使用布局。你不会后悔这样做的。还要记住嵌套 JPanel,每个 JPanel 都使用自己的布局。
-
感谢您提供有关布局的信息,我仍在自行学习它们,这需要一些时间。您知道我要求的内容是否可以通过 null 布局实现?如果没有,您建议我从哪种布局开始?