2013-07-25 2 views
7

Для моей компоновки я хочу иметь двойные границы, на нижней части моего JPanel, нужно быть немного темнее, а другой должен быть немного светлее.Java 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); 

Как я мог добавить еще одну границу под той, что у меня уже есть? Это возможно?

ответ

15

Используйте CompoundBorder

т.е. ...

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

См How to use Borders для более подробной информации

+0

Приятно помогли :) – MadProgrammer

+2

Кроме того, не забывайте, что вы можете использовать 'CompoundBorder' s внутри 'CompoundBorder' – MadProgrammer

Смежные вопросы