【问题标题】:Removing the added border from JTextField and bringing it back to normal从 JTextField 中删除添加的边框并将其恢复正常
【发布时间】:2014-09-02 15:12:04
【问题描述】:

请看下面的代码

Border border = BorderFactory.createLineBorder(Color.RED, 1);
introducerFeesTxt.setBorder(border);

我使用此代码为JTextField 创建了线条边框。但是现在我需要删除它并替换它的正常视图。以下是我尝试过的。

introducerFeesTxt.setBorder(BorderFactory.createLineBorder(Color.BLACK, 1));

上面的代码再次创建了一个与其他普通 JTextField 不同的边框。下面是截图。

您可以清楚地看到“普通”JTextField 和带有添加边框的 JTextField 之间的区别。如何将其重置为“正常”?

【问题讨论】:

    标签: java swing user-interface border jtextfield


    【解决方案1】:

    您可以在更改之前将原始边框保留在变量中,然后使用此边框将其设置回原始状态:

    Border originalBorder;
    ...
    JTextField textField = new JTextField(20);
    originalBorder = textField.getBorder();
    // here you can safely change text field's border
    

    当然,这个originalBorder 变量的范围应该足够宽,以便在需要时使用它(例如:类成员)。

    注意:请注意,此方法独立于您的应用程序使用的PLAF

    【讨论】:

      【解决方案2】:

      您应该使用 L&F(外观和感觉)中的原始边框。

      Border border = BorderFactory.createLineBorder(Color.RED, 1);
      introducerFeesTxt.setBorder(border);
      // some operation
      
      introducerFeesTxt.setBorder(UIManager.getBorder("TextField.border"));
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-10-02
        • 1970-01-01
        • 2016-07-04
        • 2021-06-17
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多