X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fjexer%2Fbackend%2FSwingComponent.java;h=92fd1d897afdb1679fd40f6a15394c09d93fdcce;hb=f5b7a696dd45017ae70e6b8e66d919c58bfe6125;hp=48e4a44fa6b5b9f2db1765ec8f700f78137d38b3;hpb=88a99379dca67603ee80819cb31716e52aa72362;p=fanfix.git diff --git a/src/jexer/backend/SwingComponent.java b/src/jexer/backend/SwingComponent.java index 48e4a44..92fd1d8 100644 --- a/src/jexer/backend/SwingComponent.java +++ b/src/jexer/backend/SwingComponent.java @@ -3,7 +3,7 @@ * * The MIT License (MIT) * - * Copyright (C) 2017 Kevin Lamonte + * Copyright (C) 2019 Kevin Lamonte * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -52,27 +52,15 @@ import javax.swing.JFrame; */ class SwingComponent { + // ------------------------------------------------------------------------ + // Variables -------------------------------------------------------------- + // ------------------------------------------------------------------------ + /** * If true, use triple buffering when drawing to a JFrame. */ public static boolean tripleBuffer = true; - /** - * Get the BufferStrategy object needed for triple-buffering. - * - * @return the BufferStrategy - * @throws IllegalArgumentException if this function is called when - * not rendering to a JFrame - */ - public BufferStrategy getBufferStrategy() { - if (frame != null) { - return frame.getBufferStrategy(); - } else { - throw new IllegalArgumentException("BufferStrategy not used " + - "for JComponent access"); - } - } - /** * The frame reference, if we are drawing to a JFrame. */ @@ -84,22 +72,19 @@ class SwingComponent { private JComponent component; /** - * Get the JFrame reference. - * - * @return the frame, or null if this is drawing to a JComponent + * An optional border in pixels to add. */ - public JFrame getFrame() { - return frame; - } + private static final int BORDER = 1; /** - * Get the JComponent reference. - * - * @return the component, or null if this is drawing to a JFrame + * Adjustable Insets for this component. This has the effect of adding a + * black border around the drawing area. */ - public JComponent getComponent() { - return component; - } + Insets adjustInsets = new Insets(BORDER + 5, BORDER, BORDER, BORDER); + + // ------------------------------------------------------------------------ + // Constructors ----------------------------------------------------------- + // ------------------------------------------------------------------------ /** * Construct using a JFrame. @@ -121,6 +106,44 @@ class SwingComponent { setupComponent(); } + // ------------------------------------------------------------------------ + // SwingComponent --------------------------------------------------------- + // ------------------------------------------------------------------------ + + /** + * Get the BufferStrategy object needed for triple-buffering. + * + * @return the BufferStrategy + * @throws IllegalArgumentException if this function is called when + * not rendering to a JFrame + */ + public BufferStrategy getBufferStrategy() { + if (frame != null) { + return frame.getBufferStrategy(); + } else { + throw new IllegalArgumentException("BufferStrategy not used " + + "for JComponent access"); + } + } + + /** + * Get the JFrame reference. + * + * @return the frame, or null if this is drawing to a JComponent + */ + public JFrame getFrame() { + return frame; + } + + /** + * Get the JComponent reference. + * + * @return the component, or null if this is drawing to a JFrame + */ + public JComponent getComponent() { + return component; + } + /** * Setup to render to an existing JComponent. */ @@ -225,11 +248,17 @@ class SwingComponent { * @return the value of the insets property */ public Insets getInsets() { + Insets swingInsets = null; if (frame != null) { - return frame.getInsets(); + swingInsets = frame.getInsets(); } else { - return component.getInsets(); + swingInsets = component.getInsets(); } + Insets result = new Insets(swingInsets.top + adjustInsets.top, + swingInsets.left + adjustInsets.left, + swingInsets.bottom + adjustInsets.bottom, + swingInsets.right + adjustInsets.right); + return result; } /** @@ -336,12 +365,12 @@ class SwingComponent { public void setDimensions(final int width, final int height) { // Figure out the thickness of borders and use that to set the final // size. - Insets insets = getInsets(); - if (frame != null) { + Insets insets = getInsets(); frame.setSize(width + insets.left + insets.right, height + insets.top + insets.bottom); } else { + Insets insets = getInsets(); component.setSize(width + insets.left + insets.right, height + insets.top + insets.bottom); }