【问题标题】:JPanel Padding in JavaJava中的JPanel填充
【发布时间】:2011-07-16 18:01:13
【问题描述】:

我的 Java swing 应用程序有一个格式问题。它应该相当简单,但我很难找到任何帮助(每个主题似乎都是关于 删除 JPanel 中的任何默认填充)。

我的各种 JPanel 中的文本拥抱侧面和顶部,触摸彩色边框:如何添加填充?

【问题讨论】:

    标签: java swing formatting jpanel


    【解决方案1】:

    在您的 JPanel 周围设置一个 EmptyBorder
    示例:

    JPanel p =new JPanel();
    p.setBorder(new EmptyBorder(10, 10, 10, 10));
    

    【讨论】:

    • 或者您可以在现有边框周围添加一些额外的填充:p.setBorder(BorderFactory.createCompoundBorder(new EmptyBorder(10, 10, 10, 10), new EtchedBorder()));
    • 调整窗口大小时会发生什么?那么这个解决方案不好是吗?
    • @Synox Legend 确实!请注意,您可以将 EmptyBorder 作为内部填充的最后一个参数
    【解决方案2】:

    当您需要在 JPanel 内进行填充时,通常您使用正在使用的布局管理器添加填充。在某些情况下,您可以只扩展JPanel 的边框。

    【讨论】:

    • 向布局管理器添加内边距(在我的例子中,GridLayout)在相邻面板之间添加内边距,而不是在单个面板内。但是有边框就可以了,谢谢你的帮助。
    【解决方案3】:

    为了演示,我假设您的 JPanel 包含 JTextField。

    这些组件提供了JTextComponent#setMargin() 方法,这似乎是您正在寻找的。​​p>

    如果您要在文本周围寻找任意大小的空白边框,请使用EmptyBorder

    【讨论】:

      【解决方案4】:
      JPanel p=new JPanel();  
      GridBagLayout layout=new GridBagLayout(); 
      p.setLayout(layout); 
      GridBagConstraints gbc = new GridBagConstraints();
      gbc.fill=GridBagConstraints.HORIZONTAL; 
      gbc.gridx=0;   
      gbc.gridy=0;   
      p2.add("",gbc);
      

      【讨论】:

        猜你喜欢
        • 2011-05-18
        • 2017-08-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-12-19
        • 1970-01-01
        • 1970-01-01
        • 2023-03-25
        相关资源
        最近更新 更多