insetschooserpanel.java
来自「JfreeChart 常用图表例子」· Java 代码 · 共 205 行
JAVA
205 行
/* ======================================================================== * JCommon : a free general purpose class library for the Java(tm) platform * ======================================================================== * * (C) Copyright 2000-2004, by Object Refinery Limited and Contributors. * * Project Info: http://www.jfree.org/jcommon/index.html * * This library is free software; you can redistribute it and/or modify it under the terms * of the GNU Lesser General Public License as published by the Free Software Foundation; * either version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * See the GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License along with this * library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, * Boston, MA 02111-1307, USA. * * [Java is a trademark or registered trademark of Sun Microsystems, Inc. * in the United States and other countries.] * * ----------------------- * InsetsChooserPanel.java * ----------------------- * (C) Copyright 2000-2004, by Andrzej Porebski and Contributors. * * Original Author: Andrzej Porebski; * Contributor(s): David Gilbert (for Object Refinery Limited); * Arnaud Lelievre; * * $Id: InsetsChooserPanel.java,v 1.2 2005/05/16 07:47:39 mungady Exp $ * * Changes (from 7-Nov-2001) * ------------------------- * 07-Nov-2001 : Added to com.jrefinery.ui package (DG); * 14-Oct-2002 : Fixed errors reported by Checkstyle (DG); * 03-Feb-2003 : Added Math.abs() to ensure no negative insets can be set (DG); * 08-Sep-2003 : Added internationalization via use of properties resourceBundle (RFE 690236) (AL); * */package org.jfree.ui;import java.awt.BorderLayout;import java.awt.GridBagConstraints;import java.awt.GridBagLayout;import java.awt.Insets;import java.util.ResourceBundle;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JTextField;import javax.swing.border.TitledBorder;/** * A component for editing an instance of the Insets class. * * @author Andrzej Porebski */public class InsetsChooserPanel extends JPanel { /** A text field for the 'top' setting. */ private JTextField topValueEditor; /** A text field for the 'left' setting. */ private JTextField leftValueEditor; /** A text field for the 'bottom' setting. */ private JTextField bottomValueEditor; /** A text field for the 'right' setting. */ private JTextField rightValueEditor; /** The resourceBundle for the localization. */ protected static ResourceBundle localizationResources = ResourceBundle.getBundle("org.jfree.ui.LocalizationBundle"); /** * Creates a chooser panel that allows manipulation of Insets values. * The values are initialized to the empty insets (0,0,0,0). */ public InsetsChooserPanel() { this(new Insets(0, 0, 0, 0)); } /** * Creates a chooser panel that allows manipulation of Insets values. * The values are initialized to the current values of provided insets. * * @param current the insets. */ public InsetsChooserPanel(Insets current) { current = (current == null) ? new Insets(0, 0, 0, 0) : current; this.topValueEditor = new JTextField(new IntegerDocument(), "" + current.top, 0); this.leftValueEditor = new JTextField(new IntegerDocument(), "" + current.left, 0); this.bottomValueEditor = new JTextField(new IntegerDocument(), "" + current.bottom, 0); this.rightValueEditor = new JTextField(new IntegerDocument(), "" + current.right, 0); final JPanel panel = new JPanel(new GridBagLayout()); panel.setBorder(new TitledBorder(localizationResources.getString("Insets"))); // First row panel.add(new JLabel(localizationResources.getString("Top")), new GridBagConstraints(1, 0, 3, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0)); // Second row panel.add(new JLabel(" "), new GridBagConstraints(1, 1, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 12, 0, 12), 8, 0)); panel.add(this.topValueEditor, new GridBagConstraints(2, 1, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL, new Insets(0, 0, 0, 0), 0, 0)); panel.add(new JLabel(" "), new GridBagConstraints(3, 1, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 12, 0, 11), 8, 0)); // Third row panel.add(new JLabel(localizationResources.getString("Left")), new GridBagConstraints(0, 2, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 4, 0, 4), 0, 0)); panel.add(this.leftValueEditor, new GridBagConstraints(1, 2, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0)); panel.add(new JLabel(" "), new GridBagConstraints(2, 2, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(0, 12, 0, 12), 8, 0)); panel.add(this.rightValueEditor, new GridBagConstraints(3, 2, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL, new Insets(0, 0, 0, 0), 0, 0)); panel.add(new JLabel(localizationResources.getString("Right")), new GridBagConstraints(4, 2, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(0, 4, 0, 4), 0, 0)); // Fourth row panel.add(this.bottomValueEditor, new GridBagConstraints(2, 3, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL, new Insets(0, 0, 0, 0), 0, 0)); // Fifth row panel.add(new JLabel(localizationResources.getString("Bottom")), new GridBagConstraints(1, 4, 3, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0)); setLayout(new BorderLayout()); add(panel, BorderLayout.CENTER); } /** * Returns the current Insets. * * @return the insets. */ public Insets getInsets() { return new Insets(Math.abs(stringToInt(this.topValueEditor.getText())), Math.abs(stringToInt(this.leftValueEditor.getText())), Math.abs(stringToInt(this.bottomValueEditor.getText())), Math.abs(stringToInt(this.rightValueEditor.getText()))); } /** * Converts a string representing an integer into its numerical value. * If this string does not represent a valid integer value, value of 0 * is returned. * * @param value the string. * * @return the value. */ protected int stringToInt(String value) { value = value.trim(); if (value.length() == 0) { return 0; } else { try { return Integer.parseInt(value); } catch (NumberFormatException e) { return 0; } } } /** * Calls super removeNotify and removes all subcomponents from this panel. */ public void removeNotify() { super.removeNotify(); removeAll(); }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?