Java - 如何防止 BorderLayout EAST 紧贴屏幕的一侧?

标签 java swing

如果我在东侧或西侧添加像 JButton 这样的组件,我如何防止它紧贴屏幕的一侧?我想要在 JButton 和屏幕边缘之间留出一些空间。

最佳答案

像这样在您的 JButton 上调用 setBorder:

setBorder( new EmptyBorder( 3, 3, 3, 3 ) )

在 JavaDoc 中,EmptyBorder 是“占用空间但不绘制的透明边框”。在我的示例中,它应分别占用顶部、左侧、底部和右侧 3 个像素。

仅用于展示如何使用 EmptyBorder 的完整代码:

import java.awt.BorderLayout;
import java.awt.Container;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.border.EmptyBorder;

public class ALineBorder {

    public static void main(String args[]) {
        JFrame frame = new JFrame("Line Borders");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        JButton button1 = new JButton("Button1");
        button1.setBorder( new EmptyBorder( 8, 8, 8, 8 ) );
        JButton button2 = new JButton("Button2");
        JButton button3 = new JButton("Button3");
        button3.setBorder( new EmptyBorder( 16, 16, 16, 16 ) );
        Container contentPane = frame.getContentPane();
        contentPane.add(button1, BorderLayout.WEST);
        contentPane.add(button2, BorderLayout.CENTER);
        contentPane.add(button3, BorderLayout.EAST);
        frame.pack();
        frame.setSize(300, frame.getHeight());
        frame.setVisible(true);
    }

}

关于Java - 如何防止 BorderLayout EAST 紧贴屏幕的一侧?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2212647/

相关文章:

java - 查找树高时的stackoverflow

java - 正则表达式适用于 java.util.regex.Pattern,但不适用于 com.oroinc.text.regex.Perl5Matcher

java - JOptionPane 给出错误

java - 不清除重绘

java - 过滤 jtree - 保留符合条件的所有节点和节点的子节点

java - Swing JTable 更新

java - TAB 之后我如何知道焦点在哪里以及如何在 RFT 中使用该组件?

java - 如何转换哈希表列表中的结果集?

java - 无法使用 geotools 从 PostGis 查询类型为 double [] 的表

java - 在 Java GUI 中绘制图像