2013-07-25 46 views
7

Đối với bố cục của tôi, tôi muốn có đường viền đôi, ở dưới cùng của JPanel của tôi, một nên hơi tối hơn và khác nên nhẹ hơn một chút.Java JPanel hai đường viền, màu sắc khác nhau?

Hiện nay tôi có 1 biên giới:

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); 

Làm thế nào tôi có thể thêm biên giới khác bên dưới một trong đó tôi đã có? Điều này có thể không?

Trả lời

15

Sử dụng một CompoundBorder

tức ...

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

Xem How to use Borders để biết thêm chi tiết

+0

Rất vui được đã giúp :) – MadProgrammer

+2

Ngoài ra, đừng quên, bạn có thể sử dụng 'CompoundBorder' trong 'CompoundBorder' – MadProgrammer

Các vấn đề liên quan