是否可能只在Java Swing顶部添加边框?

43

我知道如何使用BorderFactory创建边框,但我没有看到任何可以让我指定要添加边框的位置的选项 :S

4个回答

90

你可以使用MatteBorder来在每个边界上指定边框的尺寸。 MatteBorder的构造函数如下:

public MatteBorder(int top,
                   int left,
                   int bottom,
                   int right,
                   Color matteColor)

所以如果你想让你的JPanel只有底部和右侧有边框,你可以写出类似这样的代码:

JPanel panel = new JPanel();
panel.setBorder(BorderFactory.createMatteBorder(0, 0, 1, 1, Color.BLACK));

8
有没有简单的方法让MatteBorder在角落使用斜面样式的圆角?我需要使用MatteBorder控制元素渲染的边缘,但我卡在了方形角落上。 ;-( - emeraldjava
3
加1分是因为你提供了实际的代码。这应该成为被采纳的答案! - Hunter S

47

来自Sun教程

下面的图片展示了一些磨砂边框。创建磨砂边框时,您需要指定它在组件的顶部、左侧、底部和右侧各占据多少像素。

(Java文档)


6

哑光和空边框允许您指定每个边的尺寸,可以为零。

如果您想要自定义外观,则Border接口本身非常容易实现。我猜可能有第三方库可用,其中包含Java库中未包含的样式。


2
text_field.setBorder( new MatteBorder(2, 0, 0, 0, Color.black));

值可以相应地变化。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接