arcgissamples\scenario\toc\CheckBoxPanel.java
/* Copyright 2010 ESRI * * All rights reserved under the copyright laws of the United States * and applicable international laws, treaties, and conventions. * * You may freely redistribute and use this sample code, with or * without modification, provided you include the original copyright * notice and use restrictions. * * See the use restrictions. * */ package arcgissamples.scenario.toc; /** Displays check box to toggle the visibility of layer. * A Check box is created and added to JPanel. checkbox height and fontheight is * checked to make sure the text does not get cuttoff */ import java.awt.Dimension; import javax.swing.JCheckBox; import javax.swing.JPanel; import javax.swing.UIManager; public class CheckBoxPanel extends JPanel { private static final long serialVersionUID = 1L; JCheckBox check = null; public CheckBoxPanel() { //Create a checkbox object setLayout(null); check = new JCheckBox(); //Add check box. add(check); //sets background color to that of tree control. check.setBackground(UIManager.getColor("Tree.textBackground")); this.setBackground(UIManager.getColor("Tree.textBackground")); } /**Sets the preffered size of the panel. * @see javax.swing.JComponent#getPreferredSize() * @return java.awt.Dimension */ public Dimension getPreferredSize() { Dimension checkDimension = check.getPreferredSize(); return checkDimension; } /**Toggles check box. * Used to set layer visibility * @param value */ public void setSelected(boolean value) { check.setSelected(value); } /**Sets the label text for the checkbox * @param stringValue */ public void setText(String stringValue) { check.setText(stringValue); } /** Lays out checkbox based on the prefferred width and height * @see javax.swing.JComponent#doLayout() */ public void doLayout() { java.awt.Font font = check.getFont(); java.awt.FontMetrics fontMetrics = check.getFontMetrics(font); check.setBounds(0, 0, check.getPreferredSize().width, fontMetrics.getHeight()); } }