用JDIC写浏览器
来源:互联网 发布:ubuntu删除virtualbox 编辑:程序博客网 时间:2024/05/23 00:33
转载自:http://blog.csdn.net/youyigong/article/details/7081926
package com.waysame;import java.awt.BorderLayout;import java.awt.Container;import java.awt.Dimension;import java.awt.GridLayout;import java.awt.Toolkit;import java.awt.event.ActionEvent;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import java.io.File;import java.net.MalformedURLException;import java.net.URL;import javax.swing.BorderFactory;import javax.swing.ImageIcon;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JTextField;import javax.swing.JToolBar;import javax.swing.SwingConstants;import javax.swing.ToolTipManager;import javax.swing.UIManager;import javax.swing.border.EmptyBorder;import javax.swing.border.EtchedBorder;import org.jdesktop.jdic.browser.WebBrowser;import org.jdesktop.jdic.browser.WebBrowserEvent;import org.jdesktop.jdic.browser.WebBrowserListener;public class WaySameBrowser extends JPanel{public static ImageIcon browseIcon = new ImageIcon( WaySameBrowser.class.getResource("images/Right.gif"));BorderLayout borderLayout1 = new BorderLayout();JToolBar jBrowserToolBar = new JToolBar();JButton jStopButton = new JButton("停止", new ImageIcon(getClass().getResource("images/Stop.png")));JButton jRefreshButton = new JButton("刷新", new ImageIcon(getClass().getResource("images/Reload.png")));JButton jForwardButton = new JButton("前进", new ImageIcon(getClass().getResource("images/Forward.gif")));JButton jBackButton = new JButton("后退", new ImageIcon(getClass().getResource("images/Back.gif")));JPanel jAddressPanel = new JPanel();JLabel jAddressLabel = new JLabel();JTextField jAddressTextField = new JTextField();JButton jGoButton = new JButton();JPanel jAddrToolBarPanel = new JPanel();MyStatusBar statusBar = new MyStatusBar();JPanel jBrowserPanel = new JPanel();WebBrowser webBrowser; public WaySameBrowser() { try { jbInit(); } catch (Exception e) { e.printStackTrace(); } } private void jbInit() { this.setLayout(borderLayout1); Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); this.setPreferredSize(new Dimension(screenSize.width * 9 / 10, screenSize.height * 8 / 10)); ToolTipManager.sharedInstance().setLightWeightPopupEnabled(false); jAddressLabel.setBorder(BorderFactory.createEmptyBorder(0, 4, 0, 4)); jAddressLabel.setToolTipText(""); jAddressLabel.setText(" 地址: "); jGoButton.setBorder(BorderFactory.createCompoundBorder(new EmptyBorder(0, 2, 0, 2), new EtchedBorder())); jGoButton.setMaximumSize(new Dimension(60, 25)); jGoButton.setMinimumSize(new Dimension(60, 25)); jGoButton.setPreferredSize(new Dimension(60, 25)); jGoButton.setToolTipText("Load the given URL"); jGoButton.setIcon(browseIcon); jGoButton.setText("GO"); jGoButton.addActionListener(new Browser_jGoButton_actionAdapter(this)); jAddressPanel.setLayout(new BorderLayout()); jAddressTextField.addActionListener(new Browser_jAddressTextField_actionAdapter(this)); jBackButton.setToolTipText("Go back one page"); jBackButton.setHorizontalTextPosition(SwingConstants.TRAILING); jBackButton.setEnabled(false); jBackButton.setMaximumSize(new Dimension(75, 27)); jBackButton.setPreferredSize(new Dimension(75, 27)); jBackButton.addActionListener(new Browser_jBackButton_actionAdapter(this)); jForwardButton.setToolTipText("Go forward one page"); jForwardButton.setHorizontalTextPosition(SwingConstants.TRAILING); jForwardButton.setEnabled(false); jForwardButton.addActionListener(new Browser_jForwardButton_actionAdapter(this)); jRefreshButton.setToolTipText("Reload current page"); jRefreshButton.setEnabled(true); jRefreshButton.setMaximumSize(new Dimension(75, 27)); jRefreshButton.setMinimumSize(new Dimension(75, 27)); jRefreshButton.setPreferredSize(new Dimension(75, 27)); jRefreshButton.addActionListener(new Browser_jRefreshButton_actionAdapter(this)); jStopButton.setToolTipText("Stop loading this page"); jStopButton.setVerifyInputWhenFocusTarget(true); jStopButton.setText("停止"); jStopButton.setEnabled(true); jStopButton.setMaximumSize(new Dimension(75, 27)); jStopButton.setMinimumSize(new Dimension(75, 27)); jStopButton.setPreferredSize(new Dimension(75, 27)); jStopButton.addActionListener(new Browser_jStopButton_actionAdapter(this)); jAddressPanel.add(jAddressLabel, BorderLayout.WEST); jAddressPanel.add(jAddressTextField, BorderLayout.CENTER); jAddressPanel.add(jGoButton, BorderLayout.EAST); jAddressPanel.setBorder(BorderFactory.createCompoundBorder( BorderFactory.createEtchedBorder(), BorderFactory.createEmptyBorder(2, 0, 2, 0))); jBrowserToolBar.setFloatable(false); jBrowserToolBar.add(jBackButton, null); jBrowserToolBar.add(jForwardButton, null); jBrowserToolBar.addSeparator(); jBrowserToolBar.add(jRefreshButton, null); jBrowserToolBar.add(jStopButton, null); jBrowserToolBar.setBorder(BorderFactory.createCompoundBorder( BorderFactory.createEtchedBorder(), BorderFactory.createEmptyBorder(2, 2, 2, 0))); jAddrToolBarPanel.setLayout(new BorderLayout()); jAddrToolBarPanel.add(jAddressPanel, BorderLayout.CENTER); jAddrToolBarPanel.add(jBrowserToolBar, BorderLayout.WEST); jAddrToolBarPanel.setBorder(BorderFactory.createEmptyBorder(0, 0, 2, 0)); statusBar.setBorder(BorderFactory.createEmptyBorder(2, 0, 0, 0)); statusBar.lblDesc.setText("同道中人 - 浏览器"); try { webBrowser = new WebBrowser(new URL("http://www.baidu.com")); // Print out debug messages in the command line. //webBrowser.setDebug(true); } catch (MalformedURLException e) { System.out.println(e.getMessage()); return; } webBrowser.addWebBrowserListener(new WebBrowserListener(){ //文件加载完成时public void documentCompleted(WebBrowserEvent arg0) {updateStatusInfo("文件加载完成.");}public void downloadCompleted(WebBrowserEvent arg0) {jBackButton.setEnabled(webBrowser.isBackEnabled());jForwardButton.setEnabled(webBrowser.isForwardEnabled());updateStatusInfo("下载加载完成.");URL currentURL = webBrowser.getURL();if(currentURL != null){jAddressTextField.setText(currentURL.toString());}}public void downloadError(WebBrowserEvent arg0) {updateStatusInfo("加载错误.");}public void downloadProgress(WebBrowserEvent arg0) {updateStatusInfo("加载进程中.");}//下载操作开始时public void downloadStarted(WebBrowserEvent arg0) {updateStatusInfo("加载开始.");}public void initializationCompleted(WebBrowserEvent arg0) {updateStatusInfo("初始化完成后.");}public void statusTextChange(WebBrowserEvent arg0) {updateStatusInfo("改变状态栏文本.");}public void titleChange(WebBrowserEvent arg0) {updateStatusInfo("文档标题改变.");} }); jBrowserPanel.setLayout(new BorderLayout()); jBrowserPanel.add(webBrowser, BorderLayout.CENTER); this.add(jAddrToolBarPanel, BorderLayout.NORTH); this.add(statusBar, BorderLayout.SOUTH); this.add(jBrowserPanel, BorderLayout.CENTER);} void loadURL() { String inputValue = jAddressTextField.getText(); if (inputValue == null) { JOptionPane.showMessageDialog(this, "The given URL is NULL:", "Warning", JOptionPane.WARNING_MESSAGE); } else { // Check if the text value is a URL string. URL curUrl = null; try { // Check if the input string is a local path by checking if it starts // with a driver name(on Windows) or root path(on Unix). File[] roots = File.listRoots(); for (int i = 0; i < roots.length; i++) { if (inputValue.toLowerCase().startsWith(roots[i].toString().toLowerCase())) { File curLocalFile = new File(inputValue); curUrl = curLocalFile.toURL(); break; } } if (curUrl == null) { // Check if the text value is a valid URL. try { curUrl = new URL(inputValue); } catch (MalformedURLException e) { if (inputValue.toLowerCase().startsWith("ftp.")) { curUrl = new URL("ftp://" + inputValue); } else if (inputValue.toLowerCase().startsWith("gopher.")) { curUrl = new URL("gopher://" + inputValue); } else { curUrl = new URL("http://" + inputValue); } } } webBrowser.setURL(curUrl); // Update the address text field, statusbar, and toolbar info. updateStatusInfo("Loading " + curUrl.toString() + " ......"); } catch (MalformedURLException mue) { JOptionPane.showMessageDialog(this, "The given URL is not valid:" + inputValue, "Warning", JOptionPane.WARNING_MESSAGE); } } } void jGoButton_actionPerformed(ActionEvent e) { loadURL(); } void jAddressTextField_actionPerformed(ActionEvent e) { loadURL(); } void jBackButton_actionPerformed(ActionEvent e) { webBrowser.back(); } void jForwardButton_actionPerformed(ActionEvent e) { webBrowser.forward(); } void jRefreshButton_actionPerformed(ActionEvent e) { webBrowser.refresh(); } void jStopButton_actionPerformed(ActionEvent e) { webBrowser.stop(); } public static void main(String[] args) { JFrame frame = new JFrame("同道中人 - 浏览器"); Container contentPane = frame.getContentPane(); contentPane.setLayout(new GridLayout(1, 1)); contentPane.add(new WaySameBrowser()); frame.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } }); frame.pack(); frame.setVisible(true); }void updateStatusInfo(String statusMessage) {statusBar.lblStatus.setText(statusMessage);}}class Browser_jAddressTextField_actionAdapter implements java.awt.event.ActionListener {WaySameBrowser adaptee; Browser_jAddressTextField_actionAdapter(WaySameBrowser adaptee) { this.adaptee = adaptee; } public void actionPerformed(ActionEvent e) { adaptee.jAddressTextField_actionPerformed(e); }}class Browser_jBackButton_actionAdapter implements java.awt.event.ActionListener {WaySameBrowser adaptee; Browser_jBackButton_actionAdapter(WaySameBrowser adaptee) { this.adaptee = adaptee; } public void actionPerformed(ActionEvent e) { adaptee.jBackButton_actionPerformed(e); }}class Browser_jForwardButton_actionAdapter implements java.awt.event.ActionListener {WaySameBrowser adaptee; Browser_jForwardButton_actionAdapter(WaySameBrowser adaptee) { this.adaptee = adaptee; } public void actionPerformed(ActionEvent e) { adaptee.jForwardButton_actionPerformed(e); }}class Browser_jRefreshButton_actionAdapter implements java.awt.event.ActionListener {WaySameBrowser adaptee; Browser_jRefreshButton_actionAdapter(WaySameBrowser adaptee) { this.adaptee = adaptee; } public void actionPerformed(ActionEvent e) { adaptee.jRefreshButton_actionPerformed(e); }}class Browser_jStopButton_actionAdapter implements java.awt.event.ActionListener {WaySameBrowser adaptee; Browser_jStopButton_actionAdapter(WaySameBrowser adaptee) { this.adaptee = adaptee; } public void actionPerformed(ActionEvent e) { adaptee.jStopButton_actionPerformed(e); }}class Browser_jGoButton_actionAdapter implements java.awt.event.ActionListener {WaySameBrowser adaptee; Browser_jGoButton_actionAdapter(WaySameBrowser adaptee) { this.adaptee = adaptee; } public void actionPerformed(ActionEvent e) { adaptee.jGoButton_actionPerformed(e); }}
package com.waysame;import java.awt.Dimension;import java.awt.Toolkit;import javax.swing.BorderFactory;import javax.swing.Box;import javax.swing.BoxLayout;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.SwingConstants;public class MyStatusBar extends Box{public JLabel lblStatus;public JLabel lblDesc;public MyStatusBar(){super(BoxLayout.X_AXIS);Toolkit kit = Toolkit.getDefaultToolkit(); Dimension screenSize = kit.getScreenSize(); lblStatus = new JLabel("状态:", SwingConstants.LEADING); lblStatus.setPreferredSize(new Dimension((int) (0.7 * screenSize.width),22)); lblStatus.setBorder(BorderFactory.createLoweredBevelBorder()); this.add(lblStatus, null); lblDesc = new JLabel("描述:", SwingConstants.LEADING); lblDesc.setPreferredSize(new Dimension((int) (0.3 * screenSize.width),22)); lblDesc.setBorder(BorderFactory.createLoweredBevelBorder()); this.add(lblDesc, null);}}
- 用JDIC写浏览器
- 用JDIC写浏览器
- JDIC浏览器组件的使用方法
- JDIC
- JDIC
- 用jdic轻松编写自己的浏览器,抓取iframe网页信息
- 关于jdic打包后调用浏览器的问题
- JDIC 中利用WebBrowser内置浏览器到java application中
- 用SDK写IE浏览器
- JDIC浏览器组件的使用方法(将网页在swing界面上显示)
- java中调用web浏览器类库之jdic的配置及简单运用
- jdic 下载
- 用VC++写浏览器
- 你用什么浏览器写博客
- 用Java写的图片浏览器
- 用java写的一个简单浏览器
- JDIC(JDesktop Integration Components)
- JDIC程序的运行
- MVC中使用EF(3):实现排序,过滤,分页
- linux中创建scst iscsi-scst
- org.gjt.mm.mysql.Driver和com.mysql.jdbc.Driver的区别
- linux输入子系统(4)
- 程序的链接和加载基础(2)
- 用JDIC写浏览器
- 找工作要看的
- plsql 乱码问题
- 大数加法 减法 乘法 除法 高精度四则运算
- vim基础
- xcode 添加Icon的方法
- MyBatis映射文件的resultMap如何做表关联
- perl读取文件并处理(while<>)
- Android Develop Training——Android应用支持多设备(Supporting Different Devices)