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

📄 doublepanel.java

📁 这是一个以JAVA编写的程序,本人还没有试过,是一个简单的温度控制系统
💻 JAVA
字号:
package net.sf.dz.util.wizard;import java.awt.Container;import java.awt.Dimension;import java.awt.GridBagConstraints;import java.awt.GridBagLayout; import java.util.Iterator;import java.util.List;import java.util.LinkedList;import java.util.Map;import java.util.TreeMap;import javax.swing.JButton;import javax.swing.JComponent;import javax.swing.JLabel;import javax.swing.JPanel;/** * A helper class that provides a panel with subpanels and arbitrary number * of buttons in the middle. * * @author Copyright &copy; <a href="mailto:vt@freehold.crocodile.org">Vadim Tkachenko</a> 2004 * @version $Id: DoublePanel.java,v 1.3 2004/07/13 03:16:07 vtt Exp $ */public class DoublePanel {    protected final JPanel parent;    protected final JPanel buttonPanel = new JPanel();        public final JPanel leftPanel = new RigidPanel();    public final JPanel rightPanel = new RigidPanel();    protected List buttonList = new LinkedList();    protected Map buttonMap = new TreeMap();        public DoublePanel(JPanel parent, WizardPage listener, List buttonNames) {            this.parent = parent;                GridBagLayout layout = new GridBagLayout();        GridBagConstraints cs = new GridBagConstraints();                parent.setLayout(layout);                cs.gridx = 0;        cs.gridy = 0;        cs.fill = GridBagConstraints.BOTH;        cs.gridwidth = 1;        cs.gridheight = 1;        cs.weightx = 1;        cs.weighty = 1;                layout.setConstraints(leftPanel, cs);        parent.add(leftPanel);        cs.gridx++;        cs.weightx = 0;        cs.fill = GridBagConstraints.VERTICAL;                layout.setConstraints(buttonPanel, cs);        parent.add(buttonPanel);                createButtons(buttonNames, listener);                cs.gridx++;        cs.fill = GridBagConstraints.BOTH;        cs.weightx = 1;                layout.setConstraints(rightPanel, cs);        parent.add(rightPanel);            }    private void createButtons(List buttonNames, WizardPage listener) {            GridBagLayout layout = new GridBagLayout();        GridBagConstraints cs = new GridBagConstraints();                buttonPanel.setLayout(layout);                cs.gridx = 0;        cs.gridy = 0;        cs.gridwidth = 1;        cs.gridheight = 1;        cs.weightx = 0;        cs.weighty = 1;        cs.fill = GridBagConstraints.BOTH;                JPanel fillerTop = new JPanel();                layout.setConstraints(fillerTop, cs);        buttonPanel.add(fillerTop);        cs.gridy++;        cs.weightx = 0;        cs.fill = GridBagConstraints.HORIZONTAL;                for ( Iterator i = buttonNames.iterator(); i.hasNext(); ) {                    String name = i.next().toString();                        if ( "<separator>".equals(name) ) {                            JLabel filler = new JLabel();                                cs.weighty = 1;                layout.setConstraints(filler, cs);                buttonPanel.add(filler);                        } else {                            JButton b = new JButton(name);                                cs.weighty = 0;                layout.setConstraints(b, cs);                buttonPanel.add(b);                                b.addActionListener(listener);                                buttonMap.put(name, b);                buttonList.add(b);            }                        cs.gridy++;        }        cs.gridy++;        cs.fill = GridBagConstraints.BOTH;        cs.weightx = 1;        cs.weighty = 1;                JPanel fillerBottom = new JPanel();                layout.setConstraints(fillerBottom, cs);        buttonPanel.add(fillerBottom);    }        public JButton getButton(String name) {            return (JButton)buttonMap.get(name);    }        public JButton getButton(int offset) {            return (JButton)buttonList.get(offset);    }        public final void add(JPanel parent, JComponent child) {            GridBagLayout layout = new GridBagLayout();        GridBagConstraints cs = new GridBagConstraints();                parent.setLayout(layout);                cs.gridx = 0;        cs.gridy = 0;        cs.gridwidth = 1;        cs.gridheight = 1;        cs.weightx = 1;        cs.weighty = 1;        cs.fill = GridBagConstraints.BOTH;                layout.setConstraints(child, cs);        parent.add(child);    }        protected class RigidPanel extends JPanel {            private boolean inside = false;                public synchronized Dimension getPreferredSize() {                    Container parent = getParent();            Dimension self = super.getPreferredSize();                        if ( inside ) {                            return self;            } else {                            inside = true;                            if ( parent != null ) {                                    Dimension parentDimension = parent.getPreferredSize();                    Dimension buttonDimension = buttonPanel.getPreferredSize();                                        // Let's say that the preferred width is half of the parent                    // preferred with less button panel preferred width                                        self.width = (parentDimension.width - buttonDimension.width) / 2;                }                                inside = false;            }                        return self;        }    }}

⌨️ 快捷键说明

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