📄 browserframe.java
字号:
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());
}//GEN-LAST:event_bnRefreshActionPerformed
private void brMainPropertyChange(java.beans.PropertyChangeEvent evt) {//GEN-FIRST:event_brMainPropertyChange
String stPN = evt.getPropertyName();
if(stPN.equals("securityIcon")
|| stPN.equals("navigatedURL")
|| stPN.equals("progressBar")
){
String stNV = (String)evt.getNewValue();
if(null==stNV)
stNV = "";
String st[] = stNV.split(",");
if(stPN.equals("navigatedURL")) {
edAddress.setText( st[0] );
stOldParams = "";
brXMLTree.empty();
} else if(stPN.equals("progressBar")) {
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(!stNV.equals("0"));
}
}
}//GEN-LAST:event_brMainPropertyChange
private void miNewTabActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_miNewTabActionPerformed
brMain.openInNewBrowserPanel(null);
}//GEN-LAST:event_miNewTabActionPerformed
private void rbPaintJavaActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rbPaintJavaActionPerformed
Object o = evt.getSource();
int paintConst = BrComponent.PAINT_JAVA;
if(rbPaintNative.equals(o)){
paintConst = BrComponent.PAINT_NATIVE;
} else if(rbPaintJavaNative.equals(o)){
paintConst = BrComponent.PAINT_JAVA_NATIVE;
}
BrComponent.setDefaultPaintAlgorithm(paintConst);
}//GEN-LAST:event_rbPaintJavaActionPerformed
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
SwingUtilities.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.BrTabbed 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.JToolBar.Separator jSeparator2;
private javax.swing.JSeparator jSeparator3;
private javax.swing.JSplitPane jSplitPane1;
private javax.swing.JLabel lbURL;
private javax.swing.JMenuBar mainJMenuBar;
private javax.swing.JMenuItem miExit;
private javax.swing.JMenuItem miNewTab;
private javax.swing.JMenuItem miOpen;
private javax.swing.JMenuItem miPrint;
private javax.swing.JMenuItem miSave;
private javax.swing.JProgressBar pbDownloadDoc;
private javax.swing.JRadioButtonMenuItem rbPaintJava;
private javax.swing.JRadioButtonMenuItem rbPaintJavaNative;
private javax.swing.JRadioButtonMenuItem rbPaintNative;
private javax.swing.JMenu toolsJMenu;
private javax.swing.JMenu viewJMenu;
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))
{
brMain.closeCurrentPage();
}
}
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]));
SwingUtilities.invokeLater ( new Runnable() { public void run() {
onClosingWindowByScript(isChildWindow);
}});
}
break;
}
return null;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -