This is an automated email from the ASF dual-hosted git repository. ebakke pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/netbeans.git
commit d7d467c342a7ab4d0759f67c276d4d75ef8fb275 Author: Eirik Bakke <[email protected]> AuthorDate: Wed May 29 15:36:42 2019 -0400 Use Icon.paintIcon instead of Graphics.drawImage (one example). Most of the icons that are seen in the IDE during a standard Java editing session are already painted via a call to Icon.paintIcon. One exception is the separator icon that is used in the breadcrumb component under the code editor, which is painted via Graphics.drawImage. Migrate this one to Icon.paintIcon to make the icon look better on HiDPI displays (taking advantage of the HiDPI scaling hints that were recently implemented in ImageUtilities). This also serves as an example of how to fix other similar cases in the future. --- .../modules/editor/breadcrumbs/BreadCrumbComponent.java | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/ide/editor.breadcrumbs/src/org/netbeans/modules/editor/breadcrumbs/BreadCrumbComponent.java b/ide/editor.breadcrumbs/src/org/netbeans/modules/editor/breadcrumbs/BreadCrumbComponent.java index 3a5ad9d..3d60c65 100644 --- a/ide/editor.breadcrumbs/src/org/netbeans/modules/editor/breadcrumbs/BreadCrumbComponent.java +++ b/ide/editor.breadcrumbs/src/org/netbeans/modules/editor/breadcrumbs/BreadCrumbComponent.java @@ -64,7 +64,8 @@ import org.openide.util.WeakListeners; */ public class BreadCrumbComponent<T extends JLabel&Renderer> extends JComponent implements PropertyChangeListener { - private final Image SEPARATOR = ImageUtilities.loadImage("org/netbeans/modules/editor/breadcrumbs/resources/separator.png"); + private final Icon SEPARATOR = + ImageUtilities.image2Icon(ImageUtilities.loadImage("org/netbeans/modules/editor/breadcrumbs/resources/separator.png")); public BreadCrumbComponent() { setPreferredSize(new Dimension(0, COMPONENT_HEIGHT)); @@ -119,7 +120,7 @@ public class BreadCrumbComponent<T extends JLabel&Renderer> extends JComponent i int height = getHeight(); if (nodes.length == 0) { - g.drawImage(SEPARATOR, START_INSET, (height - SEPARATOR.getHeight(null)) / 2, null); + SEPARATOR.paintIcon(this, g, START_INSET, (height - SEPARATOR.getIconHeight()) / 2); return ; } @@ -135,10 +136,10 @@ public class BreadCrumbComponent<T extends JLabel&Renderer> extends JComponent i g.translate(-x, -labelY); x += sizes[i]; - - g.drawImage(SEPARATOR, x + LEFT_SEPARATOR_INSET, (height - SEPARATOR.getHeight(null)) / 2, null); - x += LEFT_SEPARATOR_INSET + SEPARATOR.getWidth(null) + RIGHT_SEPARATOR_INSET; + SEPARATOR.paintIcon(this, g, x + LEFT_SEPARATOR_INSET, (height - SEPARATOR.getIconHeight()) / 2); + + x += LEFT_SEPARATOR_INSET + SEPARATOR.getIconWidth() + RIGHT_SEPARATOR_INSET; } } @@ -169,7 +170,7 @@ public class BreadCrumbComponent<T extends JLabel&Renderer> extends JComponent i i++; } - setPreferredSize(new Dimension((int) (xTotal + (nodes.length - 1) * (LEFT_SEPARATOR_INSET + SEPARATOR.getWidth(null) + RIGHT_SEPARATOR_INSET) + START_INSET), USABLE_HEIGHT/*(int) (height + 2 * INSET_HEIGHT)*/)); + setPreferredSize(new Dimension((int) (xTotal + (nodes.length - 1) * (LEFT_SEPARATOR_INSET + SEPARATOR.getIconWidth() + RIGHT_SEPARATOR_INSET) + START_INSET), USABLE_HEIGHT/*(int) (height + 2 * INSET_HEIGHT)*/)); } @Override @@ -206,7 +207,7 @@ public class BreadCrumbComponent<T extends JLabel&Renderer> extends JComponent i } startX = elemX; - elemX += SEPARATOR.getWidth(null); + elemX += SEPARATOR.getIconWidth(); if (clickX <= elemX) { //found: --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected] For further information about the NetBeans mailing lists, visit: https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists
