master
王兵 5 months ago
parent bbbb093b26
commit 7c027d6fde

@ -82,7 +82,6 @@ public class JxBrowserDemo {
frame.add(tabbedPane, BorderLayout.CENTER);
frame.setSize(1024, 700);
frame.setLocationRelativeTo(null);
// frame.setIconImage(Resources.getIcon("jxbrowser16x16.png").getImage());
frame.setVisible(true);
}

@ -21,7 +21,7 @@ import java.beans.PropertyChangeListener;
public final class TabFactory {
public static Tab createFirstTab() {
return createTab("https://www.teamdev.com/jxbrowser");
return createTab("http://192.168.88.103");
}
public static Tab createTab() {

@ -0,0 +1,146 @@
package com.example.jxbrowser;
import com.teamdev.jxbrowser.chromium.Browser;
import com.teamdev.jxbrowser.chromium.ba;
import com.teamdev.jxbrowser.chromium.swing.BrowserView;
import com.teamdev.jxbrowser.chromium.swing.DefaultDialogHandler;
import com.teamdev.jxbrowser.chromium.swing.DefaultDownloadHandler;
import com.teamdev.jxbrowser.chromium.swing.DefaultPopupHandler;
import javax.swing.*;
import java.awt.*;
import java.awt.event.FocusListener;
import java.awt.event.KeyListener;
import java.awt.event.MouseListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
import java.math.BigInteger;
import java.util.concurrent.TimeUnit;
public class WebClient extends JFrame {
static {
// 破解jxbrowser的代码块 导入下面的包是关键
// import com.teamdev.jxbrowser.chromium.ba;
try {
Field e = ba.class.getDeclaredField("e");
e.setAccessible(true);
Field f = ba.class.getDeclaredField("f");
f.setAccessible(true);
Field modifersField = Field.class.getDeclaredField("modifiers");
modifersField.setAccessible(true);
modifersField.setInt(e, e.getModifiers() & ~Modifier.FINAL);
modifersField.setInt(f, f.getModifiers() & ~Modifier.FINAL);
e.set(null, new BigInteger("1"));
f.set(null, new BigInteger("1"));
modifersField.setAccessible(false);
} catch (Exception e1) {
e1.printStackTrace();
}
}
private Browser browser;
public static void main(String[] args) throws InterruptedException {
WebClient webClient = new WebClient();
webClient.loadUrl("http://www.baidu.com");
TimeUnit.SECONDS.sleep(3);
String html = webClient.getBrowser().getHTML();
System.out.println(html);
}
public Browser getBrowser() {
return browser;
}
public WebClient() {
super();
initClient(new String[]{});
}
private void initClient(String[] args) {
setTitle("WebClient");
browser = new Browser();
BrowserView browserView = new BrowserView(browser);
browser.setDownloadHandler(new DefaultDownloadHandler(browserView));
browser.setDialogHandler(new DefaultDialogHandler(browserView));
browser.setPopupHandler(new DefaultPopupHandler());
getContentPane().add(browserView, BorderLayout.CENTER);
setSize(800, 600);//初始大小
setLocation(0, 0);//位置
//setUndecorated(true);
//setAlwaysOnTop(true);
addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
// 关闭应用时要释放资源
dispose();
System.exit(0);//0正常退出1非正常退出
}
});
// 显示
setVisible(true);
loadUrl("about:blank");
}
/**
*
*
* @param url
*/
public void loadUrl(String url) {
browser.loadURL(url);
}
/**
*
*/
public void setMaximized() {
// 设置为全屏模式
setExtendedState(JFrame.MAXIMIZED_BOTH);
}
/**
*
*/
public void reload() {
}
/**
*
*/
public void reloadForce() {
}
public void addFocusListener(FocusListener listener) {
//cefBrowser.getUIComponent().addFocusListener(listener);
}
public void addMouseListener(MouseListener listener) {
//cefBrowser.getUIComponent().addMouseListener(listener);
}
public void addKeyListener(KeyListener listener) {
//cefBrowser.getUIComponent().addKeyListener(listener);
}
public void executeJavaScript(String javascript) {
//cefBrowser.executeJavaScript(javascript, null, 1);
}
public void close() {
dispose();
System.exit(0);
}
}
Loading…
Cancel
Save

Powered by TurnKey Linux.