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

📄 glomotoolbarpanel.java

📁 无线网络仿真工具Glomosim2.03
💻 JAVA
字号:
import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.border.*;public class GlomoToolBarPanel extends JToolBar implements ActionListener {    private JButton speedUpButton, slowDownButton;// For control the speed of displaying.    private JButton zoomInButton, zoomOutButton;     // To change the scale     private JButton rewindButton, stopButton, stepButton, runButton; // Control of display    private Border stopRaisedBorder, stopLoweredBorder, runRaisedBorder, runLoweredBorder;    private GlomoCanvas gCanvas;    private GlomoMenuBar menuBar;    private GlomoRunThread runThread;    private JLabel simTimeLabel;    private final String simTimeStringHead = "Timer(sec:msec:microsec)";    public GlomoToolBarPanel(GlomoCanvas gc)    {        super();        gCanvas = gc;	setFloatable(false);        setBorder(BorderFactory.createRaisedBevelBorder());        setLayout(new BoxLayout(this, BoxLayout.X_AXIS));        // Create speed control buttons        JPanel speedPanel = new JPanel();        speedUpButton = new JButton(new ImageIcon("SpeedUp.gif"));        speedUpButton.setBorder(BorderFactory.createRaisedBevelBorder());        speedUpButton.addActionListener(this);        speedUpButton.setToolTipText("Speed Up");        speedPanel.add(speedUpButton);        slowDownButton = new JButton(new ImageIcon("SlowDown.gif"));        slowDownButton.setBorder(BorderFactory.createRaisedBevelBorder());        slowDownButton.addActionListener(this);        slowDownButton.setToolTipText("Slow Down");        speedPanel.add(slowDownButton);        add(speedPanel);        // Add a separator        addSeparator();        // Create zoom scale buttons        JPanel zoomPanel = new JPanel();                zoomInButton = new JButton(new ImageIcon("ZoomIn.gif"));        zoomInButton.setBorder(BorderFactory.createRaisedBevelBorder());        zoomInButton.addActionListener(this);        zoomInButton.setToolTipText("Zoom In");        zoomPanel.add(zoomInButton);        zoomOutButton = new JButton(new ImageIcon("ZoomOut.gif"));        zoomOutButton.setBorder(BorderFactory.createRaisedBevelBorder());        zoomOutButton.addActionListener(this);        zoomOutButton.setToolTipText("Zoom Out");        zoomOutButton.setEnabled(false);        zoomPanel.add(zoomOutButton);	add(zoomPanel);        // Add a separator        addSeparator();        // Create display control buttons        JPanel controlPanel = new JPanel();        stopRaisedBorder = BorderFactory.createRaisedBevelBorder();        stopLoweredBorder = BorderFactory.createLoweredBevelBorder();        runRaisedBorder = BorderFactory.createRaisedBevelBorder();        runLoweredBorder = BorderFactory.createLoweredBevelBorder();        rewindButton = new JButton(new ImageIcon("Rewind.gif"));        rewindButton.setBorder(BorderFactory.createRaisedBevelBorder());        rewindButton.addActionListener(this);        rewindButton.setToolTipText("Rewind");        //controlPanel.add(rewindButton);        stopButton = new JButton(new ImageIcon("Stop.gif"));        stopButton.setBorder(stopRaisedBorder);        stopButton.addActionListener(this);        stopButton.setToolTipText("Stop");        controlPanel.add(stopButton);        stepButton = new JButton(new ImageIcon("Step.gif"));        stepButton.setBorder(BorderFactory.createRaisedBevelBorder());        stepButton.addActionListener(this);        stepButton.setToolTipText("Step");        controlPanel.add(stepButton);        runButton = new JButton(new ImageIcon("Run.gif"));        runButton.setBorder(runRaisedBorder);        runButton.addActionListener(this);        runButton.setToolTipText("run");        controlPanel.add(runButton);        add(controlPanel);        //add a box glue to make the simulation clock panel right alighment.        add(Box.createHorizontalGlue());        JPanel simTimePanel = new JPanel();        simTimePanel.setPreferredSize(new Dimension(200,30));        simTimePanel.setMaximumSize(new Dimension(200,30));        simTimePanel.setMinimumSize(new Dimension(200,30));        simTimePanel.setLayout(new GridLayout(0,1));        simTimePanel.add(new JLabel(simTimeStringHead));        simTimeLabel = new JLabel();        simTimePanel.add(simTimeLabel);        add(simTimePanel);        setEnabledButtons(false);    }    public void setEnabledButtons(boolean b) {        speedUpButton.setEnabled(b);        slowDownButton.setEnabled(b);         stepButton.setEnabled(b);        stopButton.setBorder(stopRaisedBorder);        stopButton.setEnabled(b);        runButton.setEnabled(false);        if(b){            runButton.setBorder(runLoweredBorder);        }        else{            runButton.setBorder(runRaisedBorder);        }    }    public void setPauseLabel() {        stopButton.setBorder(BorderFactory.createLoweredBevelBorder());    }    public void setRunThread(GlomoRunThread gr) {        runThread = gr;    }        public void setMenuBar(GlomoMenuBar mb) {        menuBar = mb;    }    public void setMagnification(int m){        if( m == 4){            zoomOutButton.setEnabled(false);            zoomInButton.setEnabled(true);        }        else if ( m == 1){            zoomInButton.setEnabled(false);            zoomOutButton.setEnabled(true);        }        else{            zoomOutButton.setEnabled(true);            zoomInButton.setEnabled(true);        }    }    public void actionPerformed(ActionEvent e) {        Object command = e.getSource();        if (command == stopButton) {            runThread.pauseSim();            stopButton.setBorder(stopLoweredBorder);            stopButton.setEnabled(false);            runButton.setBorder(runRaisedBorder);            runButton.setEnabled(true);        }        else if (command == runButton) {            runThread.resumeSim();            stopButton.setBorder(stopRaisedBorder);            stopButton.setEnabled(true);            runButton.setBorder(runLoweredBorder);            runButton.setEnabled(false);        }        else if (command == stepButton) {            runThread.stepSim();            stopButton.setBorder(stopLoweredBorder);            stopButton.setEnabled(false);            runButton.setBorder(runRaisedBorder);            runButton.setEnabled(true);        }        else if (command == rewindButton) {        }        else if (command == speedUpButton) {            runThread.setSimulationSpeed(GlomoRunThread.FASTER);        }        else if (command == slowDownButton) {            runThread.setSimulationSpeed(GlomoRunThread.SLOWER);        }        else if (command == zoomOutButton){ //enlarge the scale of rule            int m = gCanvas.getMagnification();            if(m < 4){                menuBar.setMagnification(m+1);                setMagnification(m+1);            }        }        else if (command == zoomInButton){ //smallen the scale of rule            int m = gCanvas.getMagnification();            if(m > 1){                menuBar.setMagnification(m-1);                setMagnification(m-1);            }        }        else {            System.err.println("GlomoToolBarPanel: Error!");            System.exit(-1);        }    }    // Display the simulation clock     public void setSimTime(long nanoSeconds){        long seconds = nanoSeconds / 1000000000L;        long milliSeconds = (nanoSeconds / 1000000L) % 1000;        long microSeconds = (nanoSeconds / 1000L) % 1000;        simTimeLabel.setText(seconds + ":" + milliSeconds + ":" + microSeconds);    }}

⌨️ 快捷键说明

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