Mercurial > illumos > onarm
view usr/src/cmd/cmd-inet/usr.sadm/dhcpmgr/com/sun/dhcpmgr/ui/ImageButton.java @ 4:1a15d5aaf794
synchronized with onnv_86 (6202) in onnv-gate
author | Koji Uno <koji.uno@sun.com> |
---|---|
date | Mon, 31 Aug 2009 14:38:03 +0900 |
parents | c9caec207d52 |
children |
line wrap: on
line source
/* * CDDL HEADER START * * The contents of this file are subject to the terms of the * Common Development and Distribution License, Version 1.0 only * (the "License"). You may not use this file except in compliance * with the License. * * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE * or http://www.opensolaris.org/os/licensing. * See the License for the specific language governing permissions * and limitations under the License. * * When distributing Covered Code, include this CDDL HEADER in each * file and include the License file at usr/src/OPENSOLARIS.LICENSE. * If applicable, add the following below this CDDL HEADER, with the * fields enclosed by brackets "[]" replaced with your own identifying * information: Portions Copyright [yyyy] [name of copyright owner] * * CDDL HEADER END */ /* * ident "%Z%%M% %I% %E% SMI" * * Copyright 2002 by Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ package com.sun.dhcpmgr.ui; import javax.swing.JButton; import javax.swing.ImageIcon; import java.io.InputStream; import java.io.BufferedInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; /** * A button with an image loaded from a gif file. To use this class, extend it * and in your constructor call setImage(). */ public abstract class ImageButton extends JButton { /** * Sets the button's icon to the image loaded from the file; falls back the * specified text if for some reason the icon can't be loaded. Base class * is used to find the gif image in the same directory as the class that's * using it, a convention we use. * @param baseClass the name of the class we're doing this on behalf of * @param file the name of the file the gif image is stored in * @param mnText is the mnemonic/text to be used for the button */ public void setImage(Class baseClass, String file, Mnemonic mnText) { try { InputStream resource = baseClass.getResourceAsStream(file); if (resource != null) { BufferedInputStream in = new BufferedInputStream(resource); ByteArrayOutputStream out = new ByteArrayOutputStream(1024); byte [] buffer = new byte[1024]; int n; while ((n = in.read(buffer)) > 0) { out.write(buffer, 0, n); } in.close(); out.flush(); buffer = out.toByteArray(); setIcon(new ImageIcon(buffer)); } } catch (IOException ioe) { } // Added for accessibility setText(mnText.getString()); setToolTipText(mnText.getString()); setMnemonic(mnText.getMnemonic()); } }