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

📄 ecgplotwindow.java

📁 egc 心电信号检测的源程序
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
/* * plotWindow.java * * See EcgLicense.txt for License terms. *//** * * @author  Mauricio Villarroel (m.villarroel@acm.og) */import javax.swing.JInternalFrame;import javax.swing.JOptionPane;import javax.swing.table.*;import javax.swing.JFrame;import java.awt.Graphics;import java.awt.*;import java.awt.event.*;import java.lang.Math.*;import java.util.Timer;import java.util.TimerTask;import java.util.Vector;public class EcgPlotWindow extends JInternalFrame implements AdjustmentListener {        /**************************************     * Colors for the Plotting Components *     **************************************/    protected Color ecgPlotColor            = Color.BLUE;    protected Color frameLineColor          = Color.BLACK;    protected Color frameInsideLineColor    = Color.LIGHT_GRAY;    protected Color frameFillColor          = Color.WHITE;    protected Color axesNumColor            = Color.GRAY;    protected Color titleColor              = Color.BLACK;    protected Color bgColor                 = Color.WHITE;    /*********************************************     * These constants used in drawText() method     * for placement of the text within a given     * rectangular area.     *********************************************/     final int CENTER = 0;    final int LEFT   = 1;    final int RIGHT  = 2;    /*******************     * Frame Dimensions.     *******************/    final int posFrameX =0;    final int posFrameY =1;    final int frameHeight =290;    final int frameAmplitude = frameHeight/2;    //Coordinates Origin    final int posOriginY = posFrameY + (frameHeight/2);    //X coordinates    final int horzScaleY = posFrameY + frameHeight;    final int horzScaleWidth = 100;    final int horzScaleHeight = 20;    final int fScaleNumSize = 9;        /****************************************************     * Limit below which scale values use decimal format,     * above which they use scientific format.     ****************************************************/    double upLimit = 100.0;    double loLimit = 0.01;        /******************************     * Ploting variables     ******************************/    boolean readyToPlot;    int     plotScrollBarValue;    double  plotZoom = 0.008;    double  plotZoomInc = 2;    /* Flag Variable, show if data has been generated. */    private boolean ecgGenerated = false;         /*******************************     * Variable for the Data table     *******************************/    private String[] peakStr = {"", "P", "Q", "R", "S", "T"};        /******************************************     * Variables to Animate ECG     ******************************************/    //Animating in process?    private boolean ecgAnimateFlg =false;    Timer ecgAnimateTimer;    private long ecgAnimateInterval;    /* Total plotting Data Table Row */    private int ecgAnimateNumRows;    /* Current plotting Data Table Row */    private int ecgAnimateCurRow;    /* Plot Area Panel width */    private int ecgAnimatePanelWidth;    /* Starting X axis value to plot*/    private int ecgAnimateInitialZero;    /* For plotting */    Point ecgAnimateLastPoint = new java.awt.Point(0, 0);    /** Creates new form plotWindow */    public EcgPlotWindow(EcgParam parameters, EcgLogWindow logOb, EcgApplication application) {        initComponents();        paramOb = parameters;        calcOb = new EcgCalc(paramOb, logOb);        ecgLog = logOb;        mainApp = application;        initWindow();    }        private void initWindow(){        this.setSize(850,475);        /*********************        *Init the main Window        *Set maximize        *********************/        /*try{            ecgWindow.setMaximum(true);                } catch(java.beans.PropertyVetoException e){            txtStatus.append("Exception Error : " + e + "\n");        }*/               /*********************        *Init the data Table        *********************/        tableValuesModel = new DefaultTableModel(   new Object [][] {},                                                    new String [] {"Time", "Voltage", "Peak"}){                                                        Class[] types = new Class [] {                                                        java.lang.String.class, java.lang.String.class, java.lang.String.class                                                    };                                                    public Class getColumnClass(int columnIndex) {                                                        return types [columnIndex];                                                    }                                                };        tableValues.setModel(tableValuesModel);        /* Init the ecgFrame */        ecgFrame = new ecgPanel();        ecgFrame.setBackground(new java.awt.Color(255, 255, 255));        ecgPlotArea.setViewportView(ecgFrame);        /* Set the ScrollBar */        plotScrollBar.addAdjustmentListener(this);        /*************************         * Reset all Application          * to a init state.         *************************/                resetECG();    }    /** This method is called from within the constructor to     * initialize the form.     * WARNING: Do NOT modify this code. The content of this method is     * always regenerated by the Form Editor.     */    private void initComponents() {//GEN-BEGIN:initComponents        plotToolBar = new javax.swing.JToolBar();        jSeparator2 = new javax.swing.JSeparator();        jLabel3 = new javax.swing.JLabel();        generateButton = new javax.swing.JButton();        jSeparator4 = new javax.swing.JSeparator();        jLabel2 = new javax.swing.JLabel();        zoomInButton = new javax.swing.JButton();        zoomOutButton = new javax.swing.JButton();        jSeparator3 = new javax.swing.JSeparator();        jLabel1 = new javax.swing.JLabel();        animateStartButton = new javax.swing.JButton();        animateStopButton = new javax.swing.JButton();        jSeparator1 = new javax.swing.JSeparator();        mainPanel = new javax.swing.JPanel();        ecgPlotArea = new javax.swing.JScrollPane();        plotScrollBar = new javax.swing.JScrollBar();        lblMinAmplitude = new javax.swing.JLabel();        lblOrigin = new javax.swing.JLabel();        lblMaxAmplitude = new javax.swing.JLabel();        jTextArea1 = new javax.swing.JTextArea();        TableScrollPane = new javax.swing.JScrollPane();        tableValues = new javax.swing.JTable();        closeButton = new javax.swing.JButton();        exportButton = new javax.swing.JButton();        clearButton = new javax.swing.JButton();        setClosable(true);        setIconifiable(true);        setMaximizable(true);        setResizable(true);        setTitle("Plot ECG");        plotToolBar.setBorder(new javax.swing.border.EtchedBorder(null, java.awt.Color.lightGray));        plotToolBar.setRollover(true);        plotToolBar.setMinimumSize(new java.awt.Dimension(234, 30));        plotToolBar.setPreferredSize(new java.awt.Dimension(234, 30));        plotToolBar.setAutoscrolls(true);        jSeparator2.setMaximumSize(new java.awt.Dimension(1000, 32767));        plotToolBar.add(jSeparator2);        jLabel3.setText("Generate:");        plotToolBar.add(jLabel3);        generateButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("img/execute2.gif")));        generateButton.setToolTipText("Generate System");        generateButton.setMaximumSize(new java.awt.Dimension(22, 22));        generateButton.setMinimumSize(new java.awt.Dimension(22, 22));        generateButton.setPreferredSize(new java.awt.Dimension(22, 22));        generateButton.addActionListener(new java.awt.event.ActionListener() {            public void actionPerformed(java.awt.event.ActionEvent evt) {                generateButtonActionPerformed(evt);            }        });        plotToolBar.add(generateButton);        jSeparator4.setMaximumSize(new java.awt.Dimension(1000, 32767));        plotToolBar.add(jSeparator4);        jLabel2.setText("Zoom:");        plotToolBar.add(jLabel2);        zoomInButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("img/tbzoomin.png")));        zoomInButton.setToolTipText("Zoom In");        zoomInButton.setMargin(new java.awt.Insets(0, 0, 0, 0));        zoomInButton.setMaximumSize(new java.awt.Dimension(22, 22));        zoomInButton.setMinimumSize(new java.awt.Dimension(22, 22));        zoomInButton.setPreferredSize(new java.awt.Dimension(22, 22));        zoomInButton.addActionListener(new java.awt.event.ActionListener() {            public void actionPerformed(java.awt.event.ActionEvent evt) {                zoomInButtonActionPerformed(evt);            }        });        plotToolBar.add(zoomInButton);        zoomOutButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("img/tbzoomout.png")));        zoomOutButton.setToolTipText("Zoom Out");        zoomOutButton.setMaximumSize(new java.awt.Dimension(22, 22));        zoomOutButton.setMinimumSize(new java.awt.Dimension(22, 22));        zoomOutButton.setPreferredSize(new java.awt.Dimension(22, 22));        zoomOutButton.addActionListener(new java.awt.event.ActionListener() {            public void actionPerformed(java.awt.event.ActionEvent evt) {                zoomOutButtonActionPerformed(evt);            }        });        plotToolBar.add(zoomOutButton);        jSeparator3.setMaximumSize(new java.awt.Dimension(1000, 32767));        plotToolBar.add(jSeparator3);        jLabel1.setText("Animate:");        plotToolBar.add(jLabel1);        animateStartButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("img/ball_green.gif")));        animateStartButton.setToolTipText("Start Animation");        animateStartButton.setMaximumSize(new java.awt.Dimension(22, 22));        animateStartButton.setMinimumSize(new java.awt.Dimension(22, 22));        animateStartButton.setPreferredSize(new java.awt.Dimension(22, 22));        animateStartButton.addActionListener(new java.awt.event.ActionListener() {            public void actionPerformed(java.awt.event.ActionEvent evt) {                animateStartButtonActionPerformed(evt);            }        });        plotToolBar.add(animateStartButton);        animateStopButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("img/ball_red.gif")));        animateStopButton.setToolTipText("Stop Animation");        animateStopButton.setMaximumSize(new java.awt.Dimension(22, 22));        animateStopButton.setMinimumSize(new java.awt.Dimension(22, 22));        animateStopButton.setPreferredSize(new java.awt.Dimension(22, 22));        animateStopButton.addActionListener(new java.awt.event.ActionListener() {            public void actionPerformed(java.awt.event.ActionEvent evt) {                animateStopButtonActionPerformed(evt);            }        });        plotToolBar.add(animateStopButton);        plotToolBar.add(jSeparator1);        getContentPane().add(plotToolBar, java.awt.BorderLayout.NORTH);

⌨️ 快捷键说明

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