/** * Constructs a titled panel. * * @param title the title * @param content the JComponent that contains the content * @param outerBorder the outer border */ public JTitlePanel(String title, Icon icon, JComponent content, Border outerBorder) { setLayout(new BorderLayout()); label = new JLabel(title, icon, JLabel.LEADING); label.setForeground(Color.WHITE); GradientPanel titlePanel = new GradientPanel(Color.BLACK); titlePanel.setLayout(new BorderLayout()); titlePanel.add(label, BorderLayout.WEST); int borderOffset = 2; if (icon == null) { borderOffset += 1; } titlePanel.setBorder(BorderFactory.createEmptyBorder(borderOffset, 4, borderOffset, 1)); add(titlePanel, BorderLayout.NORTH); JPanel northPanel = new JPanel(); northPanel.setLayout(new BorderLayout()); northPanel.add(content, BorderLayout.NORTH); northPanel.setBorder(BorderFactory.createEmptyBorder(4, 4, 4, 4)); add(northPanel, BorderLayout.CENTER); if (outerBorder == null) { setBorder(BorderFactory.createLineBorder(Color.GRAY)); } else { setBorder( BorderFactory.createCompoundBorder( outerBorder, BorderFactory.createLineBorder(Color.GRAY))); } }
/** * Creates and answers the header panel, that consists of: an icon, a title label, a tool bar, and * a gradient background. * * @param label the label to paint the icon and text * @param bar the panel's tool bar * @return the panel's built header area */ private JPanel buildHeader(JLabel label, JToolBar bar) { gradientPanel = new GradientPanel(new BorderLayout(), getHeaderBackground()); label.setOpaque(false); Font font = label.getFont().deriveFont(Font.BOLD, 12.0f); label.setFont(font); gradientPanel.add(label, BorderLayout.WEST); gradientPanel.setBorder(BorderFactory.createEmptyBorder(3, 4, 3, 1)); headerPanel = new JPanel(new BorderLayout()); headerPanel.add(gradientPanel, BorderLayout.CENTER); setToolBar(bar); // headerPanel.setBorder(new ShadowBorder()); headerPanel.setOpaque(true); return headerPanel; }