如何调整JLabel的背景大小或仅应用顶部和底部边框?
我有一些看起来像这样:如何调整JLabel的背景大小或仅应用顶部和底部边框?
正如你所看到的,“Blambo”是一个JLabel用不透明的,红色的背景。该标签位于一个灰色小条的顶部,该灰色小条始终围绕单个像素黑色边框。我希望我的红色警告与它坐在更好的条上相匹配,即我要么缩短两个像素并将其向下移动一个像素,要么只需将相同的单个像素边框应用于顶部和底部。在这两个中,第一个可能更可取,因为这段代码与其他标签共享。
有问题的代码:
bgColor = Color.red; textColor = Color.white;
setBackground(bgColor);
setOpaque(true);
// This line merely adds some padding on the left
setBorder(Global.border_left_margin);
setForeground(textColor);
setFont(font);
super.paint(g);
接壤正是如此定义:
public static Border border_left_margin = new EmptyBorder(0,6,0,0);
回答:
你可以像这样的标签创建一个新的边界:
编辑:看到您的评论在另一个答案后,我创建了一个组合边框你想要的东西,让你。
import java.awt.Color; import javax.swing.BorderFactory;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.border.Border;
/**
* @author Savvas Dalkitsis
*/
public class Test1 {
public static void main(String[] args) {
JFrame f = new JFrame("Test");
JLabel c = new JLabel("Hello");
Border b = BorderFactory.createCompoundBorder(
BorderFactory.createMatteBorder(2, 0, 2, 0, Color.black),
BorderFactory.createEmptyBorder(0, 100, 0, 0));
c.setBorder(b);
f.getContentPane().add(c);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.pack();
f.setVisible(true);
}
}
回答:
没有看到你的代码,很难知道你已经知道或都试过了。
明确设置组件的像这样的边界:
myLabel.setBorder(BorderFactory.createMatteBorder(1, 0, 1, 0, Color.BLACK));
现在的JLabel是相当复杂的野兽,用了大量的代码周边的许多测量其(可选)的图标,并规划其布局一般情况。你可能会更好地继承JComponent来编写你自己的,非常简单的标签。
以上是 如何调整JLabel的背景大小或仅应用顶部和底部边框? 的全部内容, 来源链接: utcz.com/qa/257307.html