package nodebox.ui; import javax.imageio.ImageIO; import javax.swing.*; import java.awt.*; import java.io.IOException; public class ActionHeader extends JPanel { public static final Image backgroundImage; public static final Image dividerImage; static { try { backgroundImage = ImageIO.read(ActionHeader.class.getResourceAsStream("/action-gradient.png")); dividerImage = ImageIO.read(ActionHeader.class.getResourceAsStream("/action-divider.png")); } catch (IOException e) { throw new RuntimeException(e); } } @Override protected void paintComponent(Graphics g) { Graphics2D g2 = (Graphics2D) g; g2.setFont(Theme.SMALL_BOLD_FONT); g2.drawImage(backgroundImage, 0, 0, getWidth(), 25, null); } public void addDivider() { add(new Divider()); } @Override public Dimension getMinimumSize() { return new Dimension(1, 25); } @Override public Dimension getPreferredSize() { return new Dimension(1, 25); } public static class Divider extends JComponent { private Divider() { Dimension d = new Dimension(1, 24); setPreferredSize(d); setMinimumSize(d); setMaximumSize(d); setSize(d); } @Override protected void paintComponent(Graphics g) { g.drawImage(dividerImage, 0, 0, null); } } }