2013-07-25 24 views
7

Per il mio layout voglio avere i doppi bordi, sul fondo del mio JPanel, uno dovrebbe essere leggermente più scuro e l'altro dovrebbe essere leggermente più leggero.Java JPanel due bordi, colori diversi?

Attualmente ho 1 border:

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

Come potrei aggiungere un altro confine sotto quello che ho già? È possibile?

risposta

15

Utilizzare un CompoundBorder

cioè ...

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

Vedere How to use Borders per ulteriori dettagli

+0

bello avere aiutato :) – MadProgrammer

+2

Inoltre, non dimenticare, è possibile utilizzare 'CompoundBorder' s all'interno di 'CompoundBorder' – MadProgrammer

Problemi correlati