Java JPanel两个边框,颜色不同?

8

我希望我的布局在JPanel的底部有双重边框,其中一个应该略微暗一些,另一个应该略微亮一些。

目前我只有1个边框:

JPanel pnlTop = new JPanel(new BorderLayout()) {
    protected void paintComponent(Graphics grphcs) {
        super.paintComponent(grphcs);
        Graphics2D g2d = (Graphics2D) grphcs;
        g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
        GradientPaint gp = new GradientPaint(0, 0,
                new java.awt.Color(237, 237, 237), 0, getHeight(),
                new java.awt.Color(222, 222, 222));
        g2d.setPaint(gp);
        g2d.fillRect(0, 0, getWidth(), getHeight()); 
    }
};
pnlTop.setBorder(BorderFactory.createMatteBorder(0, 0, 1, 0, new java.awt.Color(173, 173, 166)));
pnlTop.setPreferredSize(new Dimension(2000, 90));
add(pnlTop, BorderLayout.PAGE_START);

我已经有一个边框了,如何在其下方添加另一个边框?这可行吗?

1个回答

18

使用 CompoundBorder

例如...

pnlTop.setBorder(new CompoundBorder(
    BorderFactory.createMatteBorder(0, 0, 1, 0, Color.BLUE), 
    BorderFactory.createMatteBorder(0, 0, 1, 0, Color.RED));

查看如何使用边框以获取更多详细信息。


很高兴能够帮助到您 :) - MadProgrammer
2
另外,切勿忘记,您可以在CompoundBorder内使用CompoundBorder - MadProgrammer

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