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

📄 browserframe.java

📁 java调用ie浏览器demo源码,可以用在windows或者linux
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
            public void actionPerformed(java.awt.event.ActionEvent evt) {

                miOpenActionPerformed(evt);

            }

        });

        fileJMenu.add(miOpen);



        miSave.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_S, java.awt.event.InputEvent.CTRL_MASK));

        miSave.setText("Save Page As...");

        miSave.setToolTipText("Saves this document as a file");

        miSave.addActionListener(new java.awt.event.ActionListener() {

            public void actionPerformed(java.awt.event.ActionEvent evt) {

                miSaveActionPerformed(evt);

            }

        });

        fileJMenu.add(miSave);



        miPrint.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_P, java.awt.event.InputEvent.CTRL_MASK));

        miPrint.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/print.png"))); // NOI18N

        miPrint.setText("Print");

        miPrint.setToolTipText("Prints this page");

        miPrint.addActionListener(new java.awt.event.ActionListener() {

            public void actionPerformed(java.awt.event.ActionEvent evt) {

                miPrintActionPerformed(evt);

            }

        });

        fileJMenu.add(miPrint);

        fileJMenu.add(jSeparator1);



        miExit.setText("Exit");

        miExit.addActionListener(new java.awt.event.ActionListener() {

            public void actionPerformed(java.awt.event.ActionEvent evt) {

                miExitActionPerformed(evt);

            }

        });

        fileJMenu.add(miExit);



        mainJMenuBar.add(fileJMenu);



        toolsJMenu.setText("Tools");



        binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, cmiTraceRedraw, org.jdesktop.beansbinding.ELProperty.create("${selected}"), toolsJMenu, org.jdesktop.beansbinding.BeanProperty.create("debugGraphicsOptions"));

        bindingGroup.addBinding(binding);



        cmiTraceRedraw.setText("Trace Redraw");

        cmiTraceRedraw.setToolTipText("Shows update region while redraw procedure");

        cmiTraceRedraw.addActionListener(new java.awt.event.ActionListener() {

            public void actionPerformed(java.awt.event.ActionEvent evt) {

                cmiTraceRedrawActionPerformed(evt);

            }

        });

        toolsJMenu.add(cmiTraceRedraw);



        mainJMenuBar.add(toolsJMenu);



        setJMenuBar(mainJMenuBar);



        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());

        getContentPane().setLayout(layout);

        layout.setHorizontalGroup(

            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

            .addComponent(jPanel1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 573, Short.MAX_VALUE)

        );

        layout.setVerticalGroup(

            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

            .addComponent(jPanel1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 556, Short.MAX_VALUE)

        );



        bindingGroup.bind();



        pack();

    }// </editor-fold>//GEN-END:initComponents



    private void edStatusTextActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_edStatusTextActionPerformed

        // TODO add your handling code here:

    }//GEN-LAST:event_edStatusTextActionPerformed



    private void miSaveActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_miSaveActionPerformed

        brMain.save();

}//GEN-LAST:event_miSaveActionPerformed



    private void miExitActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_miExitActionPerformed

        //brMain.dispose();

        dispose();

    }//GEN-LAST:event_miExitActionPerformed



    private void bnLockerActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_bnLockerActionPerformed

        // TODO add your handling code here:

}//GEN-LAST:event_bnLockerActionPerformed



    private void onBrowserPropertyChange(java.beans.PropertyChangeEvent evt) {//GEN-FIRST:event_onBrowserPropertyChange

        String stPN = evt.getPropertyName();

        if(stPN.equals("navigatedURL")) {

            String st[] = ((String)evt.getNewValue()).split(",");

            edAddress.setText( st[0] );

            stOldParams = "";

            brXMLTree.empty();

        } else if(stPN.equals("progressBar")) {

            String st[] = ((String)evt.getNewValue()).split(",");

            int iMax = Integer.parseInt(st[0]),

                iPos = Integer.parseInt(st[1]);

            if(0==iMax){

                pbDownloadDoc.setVisible(false);

                if(brMain.isDocumentReady()){

                    //bnRefreshActionPerformed(null);

                }

            } else {

                pbDownloadDoc.setMaximum(iMax);

                pbDownloadDoc.setValue(iPos);

                pbDownloadDoc.setVisible(true);

            }

        }  else if(stPN.equals("securityIcon")) {

            bnLocker.setVisible(!((String)evt.getNewValue()).equals("0"));

        }

    }//GEN-LAST:event_onBrowserPropertyChange



    private void onNavigate(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_onNavigate

        brMain.setURL(edAddress.getText());

}//GEN-LAST:event_onNavigate



    private void bnBackActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_bnBackActionPerformed

        brMain.back();

    }//GEN-LAST:event_bnBackActionPerformed



    private void bnForwardActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_bnForwardActionPerformed

        brMain.forward();

    }//GEN-LAST:event_bnForwardActionPerformed



    private void bnReloadActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_bnReloadActionPerformed

        brMain.refresh();

    }//GEN-LAST:event_bnReloadActionPerformed



    private void bnStopActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_bnStopActionPerformed

        brMain.stop();

    }//GEN-LAST:event_bnStopActionPerformed



    private void miPrintActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_miPrintActionPerformed

        brMain.print();

    }//GEN-LAST:event_miPrintActionPerformed



    private void miOpenActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_miOpenActionPerformed

        brMain.open();

    }//GEN-LAST:event_miOpenActionPerformed



    private void cmiTraceRedrawActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cmiTraceRedrawActionPerformed

        brMain.setDebugDrawBorder(cmiTraceRedraw.isSelected());

    }//GEN-LAST:event_cmiTraceRedrawActionPerformed



    private Rectangle rcOldSelect = null;

    static final String stGetElemByPath =

        "function __gn(stPath)\n" +

        "{\n" +

        "   var childOrder = stPath.split(\"/\");\n" +

        "   htmlNode = document;\n" +

        "   for(var i = 0; null!=htmlNode && i<childOrder.length; ++i) {\n" +

        "       var index = 0;\n" +

        "       var limit = parseInt(childOrder[i]);\n" +

        "       for(\n" +

        "           var htmlNode = htmlNode.firstChild;\n" +

        "           null!=htmlNode && index < limit;\n" +

        "           htmlNode = htmlNode.nextSibling )\n" +

        //ditry HTML

        "       if( -1==htmlNode.nodeName.indexOf(\'/\') &&\n" +

        "            -1==htmlNode.nodeName.indexOf('<') &&\n" +

        "            -1==htmlNode.nodeName.indexOf('!') &&\n" +

        "            -1==htmlNode.nodeName.indexOf('?') &&\n" +

        "            -1==htmlNode.nodeName.indexOf('>')) " +

        "       {\n" +

        "           ++index;\n" +

        "       }\n" +

        "   }\n" +

        "   return htmlNode;\n" +

        "}\n";



    private String stOldParams = "";

    private void brXMLTreeValueChanged(javax.swing.event.TreeSelectionEvent evt) {//GEN-FIRST:event_brXMLTreeValueChanged

        if(

                null==evt ||

                null==evt.getNewLeadSelectionPath() ||

                null==evt.getNewLeadSelectionPath().getLastPathComponent() )

        {

            return;

        }

        String pathNew = BrXMLTree.getNodePath(

                (Node)(evt.getNewLeadSelectionPath().getLastPathComponent()) );

        String pathOld = (null==evt.getOldLeadSelectionPath())

                ? ""

                : BrXMLTree.getNodePath( (Node)(evt.getOldLeadSelectionPath().getLastPathComponent()) );



        if(null!=rcOldSelect){

             brMain.repaint(rcOldSelect);

        }

        final String stCommand = "#" + stGetElemByPath +

            "var res = \"\";\n" +

            ( pathOld.isEmpty() ? "" :

            "var elOld = __gn(\"" + pathOld + "\");\n" +

            "if(null != elOld) {\n" +

            "   var cs = elOld.runtimeStyle;\n" +

            "   if( null != cs ) {\n" +

            "      var prs = \"" + stOldParams + "\".split(\",\");\n" +

            "      cs.borderStyle = prs[0];\n" +

            "      cs.borderWidth = prs[1];\n" +

            "      cs.borderColor = prs[2];\n" +

            "   }\n " +

            "}\n") +

            "var elNew = __gn(\"" + pathNew + "\");\n" +

            "if(null != elNew) {\n" +

            "   var cs = elNew.runtimeStyle;\n" +

            "   if( null != cs ) {\n" +

            "      elNew.scrollIntoView();\n" +

            "      res = cs.borderStyle + \",\" +" +

            "            cs.borderWidth + \",\" +" +

            "            cs.borderColor\n" +

            "      cs.borderStyle = \"dashed\";\n" +

            "      cs.borderWidth = \"5px\";\n" +

            "      cs.borderColor = \"#FF0000\";\n" +

            "   }\n " +

            "}\n" +

            "document.documentElement.setAttribute(\"javaEval\", res);\n";

        stOldParams = brMain.execJS(stCommand);

        //stOldColor = stOldColor.substring(0, stOldColor.length()-1);

    }//GEN-LAST:event_brXMLTreeValueChanged



    private void brXMLTreeTreeWillExpand(javax.swing.event.TreeExpansionEvent evt)throws javax.swing.tree.ExpandVetoException {//GEN-FIRST:event_brXMLTreeTreeWillExpand

    }//GEN-LAST:event_brXMLTreeTreeWillExpand



    private void bnRefreshActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_bnRefreshActionPerformed

        brXMLTree.setXMLSource(brMain.getXHTML(true));

    }//GEN-LAST:event_bnRefreshActionPerformed



    /**

     * @param args the command line arguments

     */

    public static void main(String args[]) {

        java.awt.EventQueue.invokeLater(new Runnable() {

            public void run() {

                new BrowserFrame().setVisible(true);

            }

        });

    }



    // Variables declaration - do not modify//GEN-BEGIN:variables

    private javax.swing.JButton bnBack;

    private javax.swing.JButton bnForward;

    private javax.swing.JButton bnGo;

    private javax.swing.JButton bnLocker;

    private javax.swing.JButton bnRefresh;

    private javax.swing.JButton bnReload;

    private javax.swing.JButton bnStop;

    private org.jdic.web.BrComponent brMain;

    private org.jdic.web.BrXMLTree brXMLTree;

    private javax.swing.JCheckBoxMenuItem cmiTraceRedraw;

    private javax.swing.JTextField edAddress;

    private javax.swing.JTextField edStatusText;

    private javax.swing.JMenu fileJMenu;

    private javax.swing.JToolBar ieStatus;

    private javax.swing.JToolBar ieToolBar;

    private javax.swing.JPanel jPanel1;

    private javax.swing.JPanel jPanel2;

    private javax.swing.JPopupMenu jPopupMenu1;

    private javax.swing.JScrollPane jScrollPane1;

    private javax.swing.JSeparator jSeparator1;

    private javax.swing.JSplitPane jSplitPane1;

    private javax.swing.JLabel lbURL;

    private javax.swing.JMenuBar mainJMenuBar;

    private javax.swing.JMenuItem miExit;

    private javax.swing.JMenuItem miOpen;

    private javax.swing.JMenuItem miPrint;

    private javax.swing.JMenuItem miSave;

    private javax.swing.JProgressBar pbDownloadDoc;

    private javax.swing.JMenu toolsJMenu;

    private org.jdesktop.beansbinding.BindingGroup bindingGroup;

    // End of variables declaration//GEN-END:variables



    public void onClosingWindowByScript(boolean isChildWindow){

        if(!isChildWindow && JOptionPane.YES_OPTION==JOptionPane.showConfirmDialog(

            this,

            "The webpage you are viewing is trying to close the window.\n" +

            "Do you want to close this window?",

            "Warning",

            JOptionPane.YES_NO_OPTION,

            JOptionPane.QUESTION_MESSAGE))

        {

            //System.exit(0);

            dispose();

        }

    }

    

    public String sync(BrComponentEvent e) {

        switch(e.getID()){

        case BrComponentEvent.DISPID_WINDOWCLOSING:

            String stValue = e.getValue();

            if(null!=stValue){

                //OLE boolean: -1 - true, 0 - false; params:(bCancel, bIsChildWindow)                                       

                final boolean isChildWindow = (0!=Integer.valueOf(stValue.split(",")[1]));

                javax.swing.SwingUtilities.invokeLater ( new Runnable() {

                        public void run() {                                                

                            onClosingWindowByScript(isChildWindow);                            

                        }

                });   

            }    

            break;

        }

        return null;

    }

}

⌨️ 快捷键说明

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