⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jxradiogroup.java

📁 java实现浏览器等本地桌面的功能
💻 JAVA
字号:
/* * $Id: JXRadioGroup.java,v 1.5 2005/10/10 18:01:54 rbair Exp $ * * Copyright 2004 Sun Microsystems, Inc., 4150 Network Circle, * Santa Clara, California 95054, U.S.A. All rights reserved. * * 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA */package org.jdesktop.swingx;import java.awt.Component;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.ItemEvent;import java.awt.event.ItemListener;import java.util.ArrayList;import java.util.List;import javax.swing.AbstractButton;import javax.swing.Box;import javax.swing.BoxLayout;import javax.swing.ButtonGroup;import javax.swing.ButtonModel;import javax.swing.JPanel;import javax.swing.JRadioButton;/** * @author Amy Fowler * @version 1.0 */public class JXRadioGroup extends JPanel {	private static final long serialVersionUID = 3257285842266567986L;	private ButtonGroup buttonGroup;    private List<Object> values = new ArrayList<Object>();    private ActionSelectionListener actionHandler;    private List<ActionListener> actionListeners;    private int gapWidth;    public JXRadioGroup() {        this(0);    }    public JXRadioGroup(int gapWidth) {        setLayout(new BoxLayout(this, BoxLayout.X_AXIS));        buttonGroup = new ButtonGroup();        this.gapWidth = gapWidth;            }    public JXRadioGroup(Object radioValues[]) {        this();        for(int i = 0; i < radioValues.length; i++) {            add(radioValues[i]);        }    }    public void setValues(Object[] radioValues) {        clearAll();        for(int i = 0; i < radioValues.length; i++) {            add(radioValues[i]);        }    }        private void clearAll() {        values.clear();        removeAll();        buttonGroup = new ButtonGroup();    }    public void add(Object radioValue) {        values.add(radioValue);        addButton(new JRadioButton(radioValue.toString()));    }    public void add(AbstractButton button) {        values.add(button.getText());        // PENDING: mapping needs cleanup...        addButton(button);    }    private void addButton(AbstractButton button) {        buttonGroup.add(button);        super.add(button);        if (actionHandler == null) {            actionHandler = new ActionSelectionListener();//            actionHandler = new ActionListener() {//                public void actionPerformed(ActionEvent e) {//                    fireActionEvent(e);//                }//            };        }        button.addActionListener(actionHandler);        button.addItemListener(actionHandler);    }    private class ActionSelectionListener implements ActionListener,    ItemListener {        public void actionPerformed(ActionEvent e) {            fireActionEvent(e);                }                public void itemStateChanged(ItemEvent e) {            fireActionEvent(null);                }}       private void checkGap() {        if ((getGapWidth() > 0) && (getComponentCount() > 0)) {            add(Box.createHorizontalStrut(getGapWidth()));        }    }    private int getGapWidth() {        return gapWidth;    }    public AbstractButton getSelectedButton() {        ButtonModel selectedModel = buttonGroup.getSelection();        AbstractButton children[] = getButtonComponents();        for(int i = 0; i < children.length; i++) {            AbstractButton button = (AbstractButton)children[i];            if (button.getModel() == selectedModel) {                return button;            }        }        return null;    }    private AbstractButton[] getButtonComponents() {        Component[] children = getComponents();        List buttons = new ArrayList();        for (int i = 0; i < children.length; i++) {            if (children[i] instanceof AbstractButton) {                buttons.add(children[i]);            }        }        return (AbstractButton[]) buttons.toArray(new AbstractButton[buttons.size()]);    }    private int getSelectedIndex() {        ButtonModel selectedModel = buttonGroup.getSelection();        Component children[] = getButtonComponents();        for (int i = 0; i < children.length; i++) {            AbstractButton button = (AbstractButton) children[i];            if (button.getModel() == selectedModel) {                return i;            }        }        return -1;    }    public Object getSelectedValue() {        int index = getSelectedIndex();        return (index < 0 || index >= values.size()) ? null : values.get(index);    }    public void setSelectedValue(Object value) {        int index = values.indexOf(value);        AbstractButton button = getButtonComponents()[index];        button.setSelected(true);    }    public void addActionListener(ActionListener l) {        if (actionListeners == null) {            actionListeners = new ArrayList<ActionListener>();        }        actionListeners.add(l);    }    public void removeActionListener(ActionListener l) {        if (actionListeners != null) {            actionListeners.remove(l);        }    }    public ActionListener[] getActionListeners() {        if (actionListeners != null) {            return (ActionListener[])actionListeners.toArray(new ActionListener[0]);        }        return new ActionListener[0];    }    protected void fireActionEvent(ActionEvent e) {        if (actionListeners != null) {            for (int i = 0; i < actionListeners.size(); i++) {                ActionListener l = (ActionListener) actionListeners.get(i);                l.actionPerformed(e);            }        }    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -