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

📄 telephone.java

📁 SMC takes a state machine stored in a .sm file and generates a State pattern in twelve programming l
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
        return;    }    public void clearDisplay()    {        // Clear the internal data store.        _display = "";        _areaCode = "";        _local = "";        _exchange = "";        // Put up the current time and date on the display.        _numberDisplay.setText("");        return;    }    public void startClockTimer()    {        long currentTime = System.currentTimeMillis();        long timeRemaining =            MILLIS_PER_MINUTE - (currentTime % MILLIS_PER_MINUTE);        // Figure out how long until the top of the minute        // and set the timer for that amount.        startTimer("ClockTimer", timeRemaining);        return;    }    public void updateClock()    {        _numberDisplay.setText(_ClockFormatter.format(new Date()));        return;    }    public void setReceiver(String command, String text)    {        if (_receiverButton != null)        {            _receiverButton.setActionCommand(command);            _receiverButton.setText(text);        }        return;    }    private void _loadSounds()    {        String directory = "jar:file:./telephone.jar!/sounds/";        String urlString = "";        URL soundURL;        AudioClip audioClip;        AudioData audioData;        int i;        // Load in the touch tone clips.        _dtmf = new AudioClip[12];        for (i = 0; i < 12; ++i)        {            try            {                urlString = directory +                            "touch_tone_" +                            Integer.toString(i) +                            ".au";                soundURL = new URL(urlString);                _dtmf[i] = Applet.newAudioClip(soundURL);            }            catch (MalformedURLException urlex)            {                System.err.println("Telephone: \"" +                                   urlString +                                   "\" is a bad URL.");            }        }        // Load in sound URLs.        try        {            _audioMap = new HashMap<String, AudioData>();            urlString = directory + "ring.au";            soundURL = new URL(urlString);            audioData = new AudioData(soundURL, 4000);            _audioMap.put("ringing", audioData);            urlString = directory + "dialtone.au";            soundURL = new URL(urlString);            audioData = new AudioData(soundURL, 1000);            _audioMap.put("dialtone", audioData);            urlString = directory + "busy_signal.au";            soundURL = new URL(urlString);            audioData = new AudioData(soundURL, 1000);            _audioMap.put("busy", audioData);            urlString = directory + "fast_busy_signal.au";            soundURL = new URL(urlString);            audioData = new AudioData(soundURL, 1000);            _audioMap.put("fast_busy", audioData);            urlString = directory + "phone_off_hook.au";            soundURL = new URL(urlString);            audioData = new AudioData(soundURL, 500);            _audioMap.put("phone_off_hook", audioData);            urlString = directory + "911.au";            soundURL = new URL(urlString);            audioData = new AudioData(soundURL, 13000);            _audioMap.put("911", audioData);            urlString = directory + "and.au";            soundURL = new URL(urlString);            audioData = new AudioData(soundURL, 750);            _audioMap.put("and", audioData);            urlString = directory + "50_cents_please.au";            soundURL = new URL(urlString);            audioData = new AudioData(soundURL, 6000);            _audioMap.put("50_cents_please", audioData);            urlString = directory + "could_not_be_completed.au";            soundURL = new URL(urlString);            audioData = new AudioData(soundURL, 4000);            _audioMap.put("could_not_be_completed", audioData);            urlString = directory + "exactly.au";            soundURL = new URL(urlString);            audioData = new AudioData(soundURL, 1000);            _audioMap.put("exactly", audioData);            urlString = directory + "oclock.au";            soundURL = new URL(urlString);            audioData = new AudioData(soundURL, 1000);            _audioMap.put("oclock", audioData);            urlString = directory + "oh.au";            soundURL = new URL(urlString);            audioData = new AudioData(soundURL, 1000);            _audioMap.put("oh", audioData);            urlString = directory + "second.au";            soundURL = new URL(urlString);            audioData = new AudioData(soundURL, 1200);            _audioMap.put("second", audioData);            urlString = directory + "seconds.au";            soundURL = new URL(urlString);            audioData = new AudioData(soundURL, 1400);            _audioMap.put("seconds", audioData);            urlString =                directory + "the_number_you_have_dialed.au";            soundURL = new URL(urlString);            audioData = new AudioData(soundURL, 1800);            _audioMap.put("you_dialed", audioData);            urlString = directory + "the_time_is.au";            soundURL = new URL(urlString);            audioData = new AudioData(soundURL, 1100);            _audioMap.put("the_time_is", audioData);            urlString = directory + "nyctemp.au";            soundURL = new URL(urlString);            audioData = new AudioData(soundURL, 18500);            _audioMap.put("NYC_temp", audioData);            urlString = directory + "AM.au";            soundURL = new URL(urlString);            audioData = new AudioData(soundURL, 1250);            _audioMap.put("AM", audioData);            urlString = directory + "PM.au";            soundURL = new URL(urlString);            audioData = new AudioData(soundURL, 1000);            _audioMap.put("PM", audioData);            urlString = directory + "0.au";            soundURL = new URL(urlString);            audioData = new AudioData(soundURL, 1000);            _audioMap.put("0", audioData);            urlString = directory + "1.au";            soundURL = new URL(urlString);            audioData = new AudioData(soundURL, 900);            _audioMap.put("1", audioData);            urlString = directory + "2.au";            soundURL = new URL(urlString);            audioData = new AudioData(soundURL, 900);            _audioMap.put("2", audioData);            urlString = directory + "3.au";            soundURL = new URL(urlString);            audioData = new AudioData(soundURL, 1000);            _audioMap.put("3", audioData);            urlString = directory + "4.au";            soundURL = new URL(urlString);            audioData = new AudioData(soundURL, 900);            _audioMap.put("4", audioData);            urlString = directory + "5.au";            soundURL = new URL(urlString);            audioData = new AudioData(soundURL, 900);            _audioMap.put("5", audioData);            urlString = directory + "6.au";            soundURL = new URL(urlString);            audioData = new AudioData(soundURL, 850);            _audioMap.put("6", audioData);            urlString = directory + "7.au";            soundURL = new URL(urlString);            audioData = new AudioData(soundURL, 1250);            _audioMap.put("7", audioData);            urlString = directory + "8.au";            soundURL = new URL(urlString);            audioData = new AudioData(soundURL, 1000);            _audioMap.put("8", audioData);            urlString = directory + "9.au";            soundURL = new URL(urlString);            audioData = new AudioData(soundURL, 900);            _audioMap.put("9", audioData);            urlString = directory + "10.au";            soundURL = new URL(urlString);            audioData = new AudioData(soundURL, 750);            _audioMap.put("10", audioData);            urlString = directory + "11.au";            soundURL = new URL(urlString);            audioData = new AudioData(soundURL, 1000);            _audioMap.put("11", audioData);            urlString = directory + "12.au";            soundURL = new URL(urlString);            audioData = new AudioData(soundURL, 1250);            _audioMap.put("12", audioData);            urlString = directory + "13.au";            soundURL = new URL(urlString);            audioData = new AudioData(soundURL, 1250);            _audioMap.put("13", audioData);            urlString = directory + "14.au";            soundURL = new URL(urlString);            audioData = new AudioData(soundURL, 1250);            _audioMap.put("14", audioData);            urlString = directory + "15.au";            soundURL = new URL(urlString);            audioData = new AudioData(soundURL, 1250);            _audioMap.put("15", audioData);            urlString = directory + "16.au";            soundURL = new URL(urlString);            audioData = new AudioData(soundURL, 1250);            _audioMap.put("16", audioData);            urlString = directory + "17.au";            soundURL = new URL(urlString);            audioData = new AudioData(soundURL, 1500);            _audioMap.put("17", audioData);            urlString = directory + "18.au";            soundURL = new URL(urlString);            audioData = new AudioData(soundURL, 1250);            _audioMap.put("18", audioData);            urlString = directory + "19.au";            soundURL = new URL(urlString);            audioData = new AudioData(soundURL, 1250);            _audioMap.put("19", audioData);            urlString = directory + "20.au";            soundURL = new URL(urlString);            audioData = new AudioData(soundURL, 1250);            _audioMap.put("20", audioData);            urlString = directory + "30.au";            soundURL = new URL(urlString);            audioData = new AudioData(soundURL, 1000);            _audioMap.put("30", audioData);            urlString = directory + "40.au";            soundURL = new URL(urlString);            audioData = new AudioData(soundURL, 1000);            _audioMap.put("40", audioData);            urlString = directory + "50.au";            soundURL = new URL(urlString);            audioData = new AudioData(soundURL, 1000);            _audioMap.put("50", audioData);        }        catch (MalformedURLException malex)        {            System.err.println("Unknown URL: " +                               urlString);        }        return;    }    // Create the user interface but don't display it yet.    private void _loadUI(Container pane)    {        String buttonText;        String buttonCommand;        int i;        // Create the read-only phone number display.        _numberDisplay = new JTextField(20);        _numberDisplay.setEditable(false);        _numberDisplay.setFont(new Font(null, Font.PLAIN, 10));        // Create the off-hook/on-hook button.        _receiverButton = new JButton("Pick up receiver ");        _receiverButton.setActionCommand("off hook");        _receiverButton.addActionListener(            new ActionListener()                 {                    public void actionPerformed(ActionEvent e)                    {                        JButton button = (JButton) e.getSource();                        String command = e.getActionCommand();                        if (command.compareTo("off hook") == 0)                        {                            _fsm.OffHook();                        }                        else if (command.compareTo("on hook") == 0)                        {                            _fsm.OnHook();                        }                        else                        {                            System.out.println("Unknown receiver command: \"" +                                               command +                                               "\".");                        }                        return;                    }                }            );        _receiverButton.setEnabled(true);        // Create the dialing buttons.        for (i = 0; i < 12; ++i)        {            buttonCommand = Integer.toString(i);            if (i < 10)            {                buttonText = buttonCommand;            }            else if (i == 10)            {                buttonText = "*";            }            else            {                buttonText = "#";            }            _dialButtons[i] = new JButton(buttonText);            _dialButtons[i].setActionCommand(buttonCommand);            _dialButtons[i].addActionListener(                new ActionListener() {                    public void actionPerformed(ActionEvent e)                     {                        _fsm.Digit(e.getActionCommand());                    }                }            );            _dialButtons[i].setEnabled(true);        }        // Layout the components.        GridBagLayout gridbag = new GridBagLayout();        GridBagConstraints gridConstraints =            new GridBagConstraints();        pane.setLayout(gridbag);        // Put the number display at the top.        gridConstraints.insets = new Insets(2, 2, 2, 2);        gridConstraints.anchor = GridBagConstraints.NORTH;        gridConstraints.gridx = 0;        gridConstraints.gridy = 0;        gridConstraints.gridwidth = 3;        gridConstraints.gridheight = 1;        gridConstraints.ipadx = 5;        gridConstraints.ipady = 5;        gridConstraints.weighty = 1.0;        gridbag.setConstraints(_numberDisplay, gridConstraints);        pane.add(_numberDisplay);        // The pick up/put down receiver button spans all columns        // and two rows. It also sucks up all new verticle space.        gridConstraints.anchor = GridBagConstraints.NORTH;        gridConstraints.gridx = 0;        gridConstraints.gridy = 1;        gridConstraints.gridwidth = 3;        gridConstraints.gridheight = 2;        gridConstraints.ipadx = 5;        gridConstraints.ipady = 5;        gridConstraints.weighty = 1.0;        gridbag.setConstraints(_receiverButton, gridConstraints);        pane.add(_receiverButton);        // Now put the dial buttons in place.        gridConstraints.insets = new Insets(4, 4, 4, 4);        gridConstraints.anchor = GridBagConstraints.CENTER;        gridConstraints.gridx = 0;        gridConstraints.gridy = 3;        gridConstraints.gridwidth = 1;        gridConstraints.gridheight = 1;        gridConstraints.ipadx = 2;        gridConstraints.ipady = 2;        gridConstraints.weightx = 0.0;        gridConstraints.weighty = 0.0;        gridbag.setConstraints(_dialButtons[1], gridConstraints);        pane.add(_dialButtons[1]);        gridConstraints.anchor = GridBagConstraints.CENTER;        gridConstraints.gridx = 1;        gridConstraints.gridy = 3;        gridConstraints.gridwidth = 1;        gridConstraints.gridheight = 1;        gridConstraints.ipadx = 2;        gridConstraints.ipady = 2;        gridConstraints.weightx = 0.0;        gridConstraints.weighty = 0.0;        gridbag.setConstraints(_dialButtons[2], gridConstraints);        pane.add(_dialButtons[2]);        gridConstraints.anchor = GridBagConstraints.CENTER;        gridConstraints.gridx = 2;        gridConstraints.gridy = 3;        gridConstraints.gridwidth = 1;        gridConstraints.gridheight = 1;        gridConstraints.ipadx = 2;        gridConstraints.ipady = 2;        gridConstraints.weightx = 0.0;        gridConstraints.weighty = 0.0;        gridbag.setConstraints(_dialButtons[3], gridConstraints);        pane.add(_dialButtons[3]);        gridConstraints.anchor = GridBagConstraints.CENTER;        gridConstraints.gridx = 0;        gridConstraints.gridy = 4;        gridConstraints.gridwidth = 1;        gridConstraints.gridheight = 1;        gridConstraints.ipadx = 2;        gridConstraints.ipady = 2;        gridConstraints.weightx = 0.0;        gridConstraints.weighty = 0.0;        gridbag.setConstraints(_dialButtons[4], gridConstraints);        pane.add(_dialButtons[4]);        gridConstraints.anchor = GridBagConstraints.CENTER;        gridConstraints.gridx = 1;        gridConstraints.gridy = 4;        gridConstraints.gridwidth = 1;        gridConstraints.gridheight = 1;        gridConstraints.ipadx = 2;        gridConstraints.ipady = 2;        gridConstraints.weightx = 0.0;        gridConstraints.weighty = 0.0;        gridbag.setConstraints(_dialButtons[5], gridConstraints);        pane.add(_dialButtons[5]);        gridConstraints.anchor = GridBagConstraints.CENTER;        gridConstraints.gridx = 2;        gridConstraints.gridy = 4;        gridConstraints.gridwidth = 1;        gridConstraints.gridheight = 1;        gridConstraints.ipadx = 2;        gridConstraints.ipady = 2;        gridConstraints.weightx = 0.0;        gridConstraints.weighty = 0.0;        gridbag.setConstraints(_dialButtons[6], gridConstraints);        pane.add(_dialButtons[6]);        gridConstraints.anchor = GridBagConstraints.CENTER;        gridConstraints.gridx = 0;        gridConstraints.gridy = 5;        gridConstraints.gridwidth = 1;        gridConstraints.gridheight = 1;        gridConstraints.ipadx = 2;        gridConstraints.ipady = 2;        gridConstraints.weightx = 0.0;        gridConstraints.weighty = 0.0;        gridbag.setConstraints(_dialButtons[7], gridConstraints);        pane.add(_dialButtons[7]);        gridConstraints.anchor = GridBagConstraints.CENTER;        gridConstraints.gridx = 1;        gridConstraints.gridy = 5;        gridConstraints.gridwidth = 1;        gridConstraints.gridheight = 1;        gridConstraints.ipadx = 2;        gridConstraints.ipady = 2;        gridConstraints.weightx = 0.0;        gridConstraints.weighty = 0.0;        gridbag.setConstraints(_dialButtons[8], gridConstraints);        pane.add(_dialButtons[8]);        gridConstraints.anchor = GridBagConstraints.CENTER;        gridConstraints.gridx = 2;        gridConstraints.gridy = 5;        gridConstraints.gridwidth = 1;        gridConstraints.gridheight = 1;        gridConstraints.ipadx = 2;        gridConstraints.ipady = 2;        gridConstraints.weightx = 0.0;        gridConstraints.weighty = 0.0;        gridbag.setConstraints(_dialButtons[9], gridConstraints);        pane.add(_dialButtons[9]);        gridConstraints.anchor = GridBagConstraints.CENTER;        gridConstraints.gridx = 0;        gridConstraints.gridy = 6;        gridConstraints.gridwidth = 1;        gridConstraints.gridheight = 1;        gridConstraints.ipadx = 2;

⌨️ 快捷键说明

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