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

📄 beampanel.java

📁 Myjxta的源代码 基于JXTA的P2P即时通信系统
💻 JAVA
字号:
/**  Copyright (c) 2001 Sun Microsystems, Inc.  All rights*  reserved.**  Redistribution and use in source and binary forms, with or without*  modification, are permitted provided that the following conditions*  are met:**  1. Redistributions of source code must retain the above copyright*  notice, this list of conditions and the following disclaimer.**  2. Redistributions in binary form must reproduce the above copyright*  notice, this list of conditions and the following disclaimer in*  the documentation and/or other materials provided with the*  distribution.**  3. The end-user documentation included with the redistribution,*  if any, must include the following acknowledgment:*  "This product includes software developed by the*  Sun Microsystems, Inc. for Project JXTA."*  Alternately, this acknowledgment may appear in the software itself,*  if and wherever such third-party acknowledgments normally appear.**  4. The names "Sun", "Sun Microsystems, Inc.", "JXTA" and "Project JXTA"*  must not be used to endorse or promote products derived from this*  software without prior written permission. For written*  permission, please contact Project JXTA at http://www.jxta.org.**  5. Products derived from this software may not be called "JXTA",*  nor may "JXTA" appear in their name, without prior written*  permission of Sun.**  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED*  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES*  OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE*  DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR*  ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,*  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT*  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF*  USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND*  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,*  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT*  OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF*  SUCH DAMAGE.*  ====================================================================**  This software consists of voluntary contributions made by many*  individuals on behalf of Project JXTA.  For more*  information on Project JXTA, please see*  <http://www.jxta.org/>.**  This license is based on the BSD license adopted by the Apache Foundation.**  $Id: BeamPanel.java,v 1.2 2006/07/13 05:26:37 nano Exp $*/package net.jxta.myjxta.misc.beam;import net.jxta.myjxta.ui.AbstractButtonKeyListener;import net.jxta.myjxta.util.Env;import javax.swing.*;import java.awt.event.ActionEvent;import java.awt.event.KeyEvent;import java.io.File;import java.util.Timer;/** * @author james todd [gonzo at jxta dot org] * @version $Id: BeamPanel.java,v 1.2 2006/07/13 05:26:37 nano Exp $ */public class BeamPanel        extends JPanel {    private static final String START = "start";    private static final String STOP = "stop";    private File beam = null;    private JToggleButton poll = null;    private JLabel value = null;    private Timer timer = null;    public BeamPanel(File b) {        super();        this.beam = b;        System.out.println("HOME: " + Env.getHome());        init();    }    public File getBeam() {        return this.beam;    }    public void destroy() {        stop();    }    private void init() {        add(this.poll = createPoll());        add(this.value = createBeam());    }    private JToggleButton createPoll() {        JToggleButton tb = new JToggleButton(new AbstractAction() {            public void actionPerformed(ActionEvent ae) {                poll();            }        });        tb.setText("poll");        tb.addKeyListener(new AbstractButtonKeyListener(tb) {            public void keyReleased(KeyEvent ke) {                ButtonModel m = getButton().getModel();                m.setPressed(! m.isPressed());                m.setSelected(true);                getButton().getAction().actionPerformed(null);            }        });        return tb;    }    private JLabel createBeam() {        return new JLabel();    }    private void poll() {        if (this.poll.getModel().isSelected()) {            start();        } else {            stop();        }    }    private void start() {        if (this.timer == null) {//            this.timer = new Timer();//            //            this.timer.schedule(new TimerTask() {//                            // xxx: need to parse url from beam//                private HttpGet fetcher = new HttpGet(getBeam());//                //                public void run() {//                    try {//                        setValue(fetcher.dispatch().getBody());//                    } catch (IOException ioe) {//                        ioe.printStackTrace();//                    }//                }//            }, 0, INTERVAL);        }        this.poll.setText(STOP);    }    private void stop() {        if (this.timer != null) {            this.timer.cancel();            this.timer = null;            this.poll.setText(START);        }    }    private void setValue(String v) {        this.value.setText(v);    }}

⌨️ 快捷键说明

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