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

📄 conversionpanel.java

📁 初期JAVA学习非常有用的资料。帮助深入了解API。特别是Applet。
💻 JAVA
字号:
/* * 1.1 version. */import java.awt.*;import java.awt.event.*;import java.util.*;import java.applet.Applet;public class ConversionPanel extends Panel                       implements ActionListener,                                 AdjustmentListener,                                 ItemListener {    TextField textField;    Choice unitChooser;    Scrollbar slider;    int max = 10000;    int block = 100;    Converter controller;    Unit[] units;    ConversionPanel(Converter myController, String myTitle, Unit[] myUnits) {        //Initialize this ConversionPanel to use a GridBagLayout.        GridBagConstraints c = new GridBagConstraints();        GridBagLayout gridbag = new GridBagLayout();        setLayout(gridbag);        //Save arguments in instance variables.        controller = myController;        units = myUnits;        //Set up default layout constraints.        c.fill = GridBagConstraints.HORIZONTAL;        //Add the label.  It displays this panel's title, centered.        Label label = new Label(myTitle, Label.CENTER);         c.gridwidth = GridBagConstraints.REMAINDER; //It ends a row.        gridbag.setConstraints(label, c);        add(label);        //Add the text field.  It initially displays "0" and needs        //to be at least 10 columns wide.        textField = new TextField("0", 10);         c.weightx = 1.0;  //Use maximum horizontal space...        c.gridwidth = 1; //The default value.        gridbag.setConstraints(textField, c);        add(textField);        textField.addActionListener(this);        //Add the pop-up list (Choice).        unitChooser = new Choice();         for (int i = 0; i < units.length; i++) { //Populate it.            unitChooser.add(units[i].description);        }        c.weightx = 0.0; //The default value.        c.gridwidth = GridBagConstraints.REMAINDER; //End a row.        gridbag.setConstraints(unitChooser, c);        add(unitChooser);        unitChooser.addItemListener(this);        //Add the slider.  It's horizontal, and it has the maximum        //value specified by the instance variable max.  Its initial         //and minimum values are the default (0).  A click increments        //the value by block units.        slider = new Scrollbar(Scrollbar.HORIZONTAL);        slider.setMaximum(max + 10);        slider.setBlockIncrement(block);        c.gridwidth = 1; //The default value.        gridbag.setConstraints(slider, c);        add(slider);        slider.addAdjustmentListener(this);    }    /**      * Returns the multiplier (units/meter) for the currently     * selected unit of measurement.     */    double getMultiplier() {        int i = unitChooser.getSelectedIndex();        return units[i].multiplier;    }    /** Draws a box around this panel. */    public void paint(Graphics g) {        Dimension d = getSize();        g.drawRect(0,0, d.width - 1, d.height - 1);    }            /**     * Puts a little breathing space between     * the panel and its contents, which lets us draw a box     * in the paint() method.     * We add more pixels to the right, to work around a     * Choice bug.     */    public Insets getInsets() {        return new Insets(5,5,5,8);    }    /**     * Gets the current value in the text field.     * It's guaranteed to be the same as the value     * in the scroller (subject to rounding, of course).     */    double getValue() {        double f;        try {            f = (double)Double.valueOf(textField.getText()).doubleValue();         } catch (java.lang.NumberFormatException e) {            f = 0.0;        }        return f;    }    public void actionPerformed(ActionEvent e) {        setSliderValue(getValue());        controller.convert(this);    }    public void itemStateChanged(ItemEvent e) {        controller.convert(this);    }    /** Respond to the slider. */    public void adjustmentValueChanged(AdjustmentEvent e) {        textField.setText(String.valueOf(e.getValue()));        controller.convert(this);    }    /** Set the values in the slider and text field. */    void setValue(double f) {        setSliderValue(f);        textField.setText(String.valueOf((float)f));    }    /** Set the slider value. */    void setSliderValue(double f) {        int sliderValue = (int)f;        if (sliderValue > max)               sliderValue = max;        if (sliderValue < 0)            sliderValue = 0;        slider.setValue(sliderValue);    }}

⌨️ 快捷键说明

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