brtabbed.java
来自「java调用ie浏览器demo源码,可以用在windows或者linux」· Java 代码 · 共 587 行 · 第 1/2 页
JAVA
587 行
brComponent.addPropertyChangeListener(new java.beans.PropertyChangeListener() {
public void propertyChange(java.beans.PropertyChangeEvent evt) {
String stPN = evt.getPropertyName();
if(stPN.equals("windowTitle")) {
String stNV = (String)evt.getNewValue();
if(null==stNV)
stNV = "";
String st[] = stNV.split(",");
lb.lbAddress.setText( st[0] );
lb.pbDownloadDoc.setString( st[0] );
} else if(stPN.equals("progressBar")) {
String stNV = (String)evt.getNewValue();
if(null==stNV)
stNV = "";
String st[] = stNV.split(",");
int iMax = Integer.parseInt(st[0]),
iPos = Integer.parseInt(st[1]);
if(0==iMax){
lb.pbDownloadDoc.setVisible(false);
lb.lbAddress.setVisible(true);
if(brComponent.isDocumentReady()){
//bnRefreshActionPerformed(null);
}
} else {
lb.pbDownloadDoc.setMaximum(iMax);
lb.pbDownloadDoc.setValue(iPos);
lb.pbDownloadDoc.setVisible(true);
lb.lbAddress.setVisible(false);
}
}
if(brComponent==brCurrentPage){
propertyChangeSupport.firePropertyChange(
evt.getPropertyName(),
evt.getOldValue(),
evt.getNewValue());
}
}
});
brComponent.addBrComponentListener(this);
int iPos = jTabbedPane.indexOfComponent(brComponent);
jTabbedPane.setTabComponentAt(iPos, lb );
SwingUtilities.invokeLater(new Runnable() {public void run() {
jTabbedPane.setSelectedComponent(brComponent);
}});
}
/**
* Opens a new tab with URL content.
* @param stUrl the String object with URL address
* @return new browser component
*/
public BrComponent openInNewBrowserPanel(String stUrl)
{
//System.out.println("{openInNewBrowserPanel: " + stUrl);
BrComponent brComponent = new BrComponent(stUrl);
javax.swing.GroupLayout brComponentLayout = new javax.swing.GroupLayout(brComponent);
brComponent.setLayout(brComponentLayout);
brComponentLayout.setHorizontalGroup(
brComponentLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 64, Short.MAX_VALUE)
);
brComponentLayout.setVerticalGroup(
brComponentLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 64, Short.MAX_VALUE)
);
jTabbedPane.addTab(brComponent.getURL(), brComponent);
setupTabLabel(brComponent, stUrl);
//System.out.println("}openInNewBrowserPanel: " + stUrl);
return brComponent;
}
/**
* Checks the last browser in tab set.
* @return <code>true</code> for single tab configuration
* else - <code>false</code>
*/
public boolean isLastTab()
{
return jTabbedPane.getTabCount() <= 1;
}
/**
* Getter for Tabbed container
* @return the JTabbedPane object
*/
public JTabbedPane getTabbedPane() {
return jTabbedPane;
}
/**
* Getter for current browser
* @return the BrComponent object from visible plane
*/
public BrComponent getVisibleBrowser() {
try{
return (BrComponent)getTabbedPane().getSelectedComponent();
}catch(ClassCastException e){
//that is OK
}
return null;
}
/**
* Implementation of the <code>ChangeListener</code> interface
* @param e the event about changed page
*/
public void stateChanged(ChangeEvent e) {
setCurrentPage(getVisibleBrowser());
}
//{BrComponentListener
/**
* The listener for notifications callbacks.
*/
transient BrComponentListener ieListener; //TODO: make it stackable.
/**
* Implementation of <code>BrComponentListener</code> interface
* @param e
*/
public String sync(BrComponentEvent e) {
final String[] res = new String[1];
if(null!=ieListener){
res[0] = ieListener.sync(e);
}
if(null==res[0]){
switch (e.getID()) {
case BrComponentEvent.DISPID_NEWWINDOW2:
final BrComponent sbr = (BrComponent)e.getSource();
sbr.setActionFiler(0, true);
try {
SwingUtilities.invokeAndWait(new Runnable() { public void run() {
BrComponent br = openInNewBrowserPanel(null);
if (null != br) {
res[0] = "0," + br.getNativeHandle();
}
sbr.setActionFiler(0, false);
}});
} catch (Exception ex) {
Logger.getLogger(BrTabbed.class.getName()).log(Level.SEVERE, null, ex);
}
break;
}
}
return res[0];
}
public void addBrComponentListener(BrComponentListener l) {
ieListener = l;
}
public void removeBrComponentListener(BrComponentListener l) {
if( ieListener == l ) {
ieListener = null;
}
}
//}BrComponentListener
//{Delagates to current page object...
public void stop() {
brCurrentPage.stop();
}
public void setURL(URL url) throws FileNotFoundException {
brCurrentPage.setURL(url);
}
public void setURL(String _stURL) {
brCurrentPage.setURL(_stURL);
}
public void setHTML(String stHTML) {
brCurrentPage.setHTML(stHTML);
}
public void setHTML(InputStream _isHTMLSrc, String _stURL) {
brCurrentPage.setHTML(_isHTMLSrc, _stURL);
}
public void setEditable(boolean b) {
brCurrentPage.setEditable(b);
}
public void setDebugDrawBorder(boolean debugDrawBorder) {
brCurrentPage.setDebugDrawBorder(debugDrawBorder);
}
public void save(String stHTMLPath) {
brCurrentPage.save(stHTMLPath);
}
public void save() {
brCurrentPage.save();
}
public void refresh() {
brCurrentPage.refresh();
}
public void open(String stHTMLPath) {
brCurrentPage.open(stHTMLPath);
}
public void open() {
brCurrentPage.open();
}
public boolean isToolbarChanged() {
return brCurrentPage.isToolbarChanged();
}
public boolean isGoForwardEnable() {
return brCurrentPage.isGoForwardEnable();
}
public boolean isGoBackEnable() {
return brCurrentPage.isGoBackEnable();
}
public boolean isEditable() {
return brCurrentPage.isEditable();
}
public boolean isDocumentReady() {
return brCurrentPage.isDocumentReady();
}
public boolean isDebugDrawBorder() {
return brCurrentPage.isDebugDrawBorder();
}
public String getHTML() {
return brCurrentPage.getHTML();
}
public void forward() {
brCurrentPage.forward();
}
public void execJSLater(String code) {
brCurrentPage.execJSLater(code);
}
public String execJS(String code) {
return brCurrentPage.execJS(code);
}
public void back() {
brCurrentPage.back();
}
public void print() {
brCurrentPage.print();
}
public String getXHTML(boolean bWithUniqueID) {
return brCurrentPage.getXHTML(bWithUniqueID);
}
public String getXHTML() {
return brCurrentPage.getXHTML();
}
public String getWindowTitle() {
return brCurrentPage.getWindowTitle();
}
public String getURL() {
return brCurrentPage.getURL();
}
public String getStatusText() {
return brCurrentPage.getStatusText();
}
public List getSprites() {
return brCurrentPage.getSprites();
}
public String getSecurityIcon() {
return brCurrentPage.getSecurityIcon();
}
public String getProgressBar() {
return brCurrentPage.getProgressBar();
}
public String getNavigatedURL() {
return brCurrentPage.getNavigatedURL();
}
//}Delagates to current page object...
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?