Example #1
0
  /**
   * 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;
  }
 /** Updates the header. */
 private void updateHeader() {
   gradientPanel.setBackground(getHeaderBackground());
   gradientPanel.setOpaque(isSelected());
   titleLabel.setForeground(getTextForeground(isSelected()));
   headerPanel.repaint();
 }