java - 为什么他们在这个 Java GridBagLayoutDemo 示例中声明这些静态变量?

标签 java swing gridbaglayout

我正在学习 Java GUI 以及如何学习 GridBagLayout作品:

final static boolean shouldFill = true;
final static boolean shouldWeightX = true;
final static boolean RIGHT_TO_LEFT = false;

public static void addComponentsToPane(Container pane) {
    if (RIGHT_TO_LEFT) {
        pane.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
    }

    JButton button;
    pane.setLayout(new GridBagLayout());
    GridBagConstraints c = new GridBagConstraints();
    if (shouldFill) {
    //natural height, maximum width
        c.fill = GridBagConstraints.HORIZONTAL;
    }

    button = new JButton("Button 1");
    if (shouldWeightX) {
        c.weightx = 0.5;
}

( full source here ) 我很困惑为什么你需要/想要这里的 3 个 boolean 值 - shouldFill 、 shouldWeightX 和 RIGHT_TO_LEFT - 即我们不能简单地删除这 3 个 if 语句吗?

最佳答案

这不是必需的,但有时声明常量有助于了解所有设置值。这使您可以快速尝试值组合,而无需在代码中搜索(因此更抽象)。也许程序员选择只使用 boolean 值来对齐/简化值...... 注意:常量应遵循 RIGHT_TO_LEFT 使用的语法。

关于java - 为什么他们在这个 Java GridBagLayoutDemo 示例中声明这些静态变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13497034/

相关文章:

java - ActionListener 是 java 中的线程吗?

java - JButton 仅在我将鼠标悬停在其上后才出现?

java - 如何有效地嵌套 GridbagLayout 托管 Pane 并使其正确调整大小?

java - DevicePolicyManager.isDeviceOwnerApp 方法无法正常工作

java - 如果插件由 JAR 创建,则不会调用激活器

java - Android 后台变量

java - 从父 JFrame 访问 JDialog 的 JtextArea?

java - Double 上的数学运算结果是否完全可重复?

java - 为什么当我将图像设置到光标时,它不起作用?

java - 如何使用自定义组件修复 GridBagConstraints anchor ?