我想在一个JAVA编写的窗口中,打开一个网页!能这样吗?就像KuGoo那样在一个窗口可以进行网页浏览!请各位帮帮忙!

解决方案 »

  1.   

      
    public openFile(String   file)   
      {
      try{   
      Runtime rt=Runtime.getRuntime();   
      rt.exec(file);     
      }   
      catch(Exception e)   
      {   
      }   
        
      }
      

  2.   

    下面这个链接是一个java实现的浏览器,应该能满足你的要求,你自己修改一下
    http://www.80diy.com/home/default.aspx?q=20021212/11/1254104.html
      

  3.   


    package demo;import java.util.Properties;
    import java.io.IOException;public class OpenIExplore{ public static void main(String[] args) throws IOException{

    Properties properties = System.getProperties();
    String osName = properties.getProperty("os.name");

    System.out.println (osName);

    if (osName.indexOf("Linux") != -1) {
    Runtime.getRuntime().exec("htmlview");
    } else if (osName.indexOf("Windows") != -1){
    Runtime.getRuntime().exec("explorer http://www.163.com");
    } else {
    throw new RuntimeException("Unknown OS.");
    }
    }
    }
      

  4.   

    LZ可以使用swt中的Browser类实现在自己编写的窗体内实现浏览器的功能import org.eclipse.swt.SWT;
    import org.eclipse.swt.browser.Browser;
    import org.eclipse.swt.browser.LocationEvent;
    import org.eclipse.swt.browser.LocationListener;
    import org.eclipse.swt.browser.ProgressEvent;
    import org.eclipse.swt.browser.ProgressListener;
    import org.eclipse.swt.layout.GridData;
    import org.eclipse.swt.layout.GridLayout;
    import org.eclipse.swt.widgets.Composite;
    import org.eclipse.swt.widgets.Event;
    import org.eclipse.swt.widgets.Listener;
    import org.eclipse.swt.widgets.Text;
    import org.eclipse.swt.widgets.ToolBar;
    import org.eclipse.swt.widgets.ToolItem;/**
     * 浏览器类
     */
    public class InnerBrowser { private Composite composite;
    // SWT 浏览器对象
    private Browser browser;
    // 工具栏
    private ToolBar toolbar;
    // 后退按钮
    private ToolItem backItem;
    // 前进按钮
    private ToolItem forwardItem;
    // 停止按钮
    private ToolItem stopButton;
    // 刷新按钮
    private ToolItem refreshButton;
    // 地址栏
    private Text locationText; /** 构造方法 */
    public InnerBrowser(Composite parent) {
    this.composite = parent;
    }

    // 初始化浏览器对象
    private void initBrowser() {
    browser = new Browser(composite, SWT.BORDER);
    GridData gridData = new GridData();
    gridData.horizontalSpan = 6;
    gridData.horizontalAlignment = GridData.FILL;
    gridData.verticalAlignment = GridData.FILL;
    gridData.grabExcessVerticalSpace = true;
    // 浏览器布局
    browser.setLayoutData(gridData); // 为浏览器地址改变注册事件
    browser.addLocationListener(new LocationListener() {
    public void changing(LocationEvent e) {
    locationText.setText(e.location);
    } public void changed(LocationEvent event) {
    }
    }); // 为浏览器注册装载网页事件
    browser.addProgressListener(new ProgressListener() { // 当装载时,设置停止按钮可用
    @Override
    public void changed(ProgressEvent e) {
    if (!stopButton.isEnabled() && e.total != e.current)
    stopButton.setEnabled(true);
    } // 当装载完成时, 设置停止、后退、前进按钮状态
    @Override
    public void completed(ProgressEvent event) {
    stopButton.setEnabled(false);
    backItem.setEnabled(browser.isBackEnabled());
    forwardItem.setEnabled(browser.isForwardEnabled());
    }
    });
    }

    // 创建浏览器窗口
    public void createBrowser() {
    // composite 布局
    GridLayout gridLayout = new GridLayout();
    gridLayout.numColumns = 6;
    composite.setLayout(gridLayout);

    // 工具栏
    toolbar = new ToolBar(composite, SWT.FLAT);
    toolbar.setLayoutData(new GridData(SWT.BEGINNING, SWT.CENTER, false, false));

    // 退回到访问历史的上一次地址
    backItem = new ToolItem(toolbar, SWT.PUSH);
    backItem.setImage(CacheImage.getINSTANCE().getImage(
    IImageKey.BACKWARD));
    backItem.setToolTipText("转到上一页");


    // 前进到访问历史的前一次
    forwardItem = new ToolItem(toolbar, SWT.PUSH);
    forwardItem.setImage(CacheImage.getINSTANCE().getImage(
    IImageKey.FROWARD));
    forwardItem.setToolTipText("转到下一页");

    // 设置前进和后退为不可用状态
        backItem.setEnabled(false);
        forwardItem.setEnabled(false);

    // 停止加载页面
    stopButton = new ToolItem(toolbar, SWT.PUSH);
    stopButton.setImage(CacheImage.getINSTANCE().getImage(IImageKey.STOP));

    // 刷新页面
    refreshButton = new ToolItem(toolbar, SWT.PUSH);
    refreshButton.setImage(CacheImage.getINSTANCE().getImage(
    IImageKey.REFRESH));
    refreshButton.setToolTipText("刷新");

    // 地址栏
    locationText = new Text(composite, SWT.BORDER);
    locationText.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
    locationText.addListener(SWT.DefaultSelection, new Listener() {
          public void handleEvent(Event e) {
              browser.setUrl(locationText.getText());
              browser.setFocus();
            }
    });

    initBrowser(); // 注册显示地址的文本框事件
    locationText
    .addMouseListener(new org.eclipse.swt.events.MouseAdapter() {
    public void mouseUp(org.eclipse.swt.events.MouseEvent e) {
    locationText.selectAll();
    }
    });
    locationText.addKeyListener(new org.eclipse.swt.events.KeyAdapter() {
    public void keyPressed(org.eclipse.swt.events.KeyEvent e) {
    // Handle the press of the Enter key in the locationText.
    // This will browse to the entered text.
    if (e.character == SWT.LF || e.character == SWT.CR) {
    e.doit = false;
    browser.setUrl(locationText.getText());
    }
    }
    });
    refreshButton
    .addSelectionListener(new org.eclipse.swt.events.SelectionAdapter() {
    public void widgetSelected(
    org.eclipse.swt.events.SelectionEvent e) {
    browser.refresh();// 重新载入
    }
    });
    locationText
    .addSelectionListener(new org.eclipse.swt.events.SelectionAdapter() {
    public void widgetSelected(
    org.eclipse.swt.events.SelectionEvent e) {
    browser.setUrl(locationText.getText());// 设置浏览器的指向的url
    }
    });
    stopButton
    .addSelectionListener(new org.eclipse.swt.events.SelectionAdapter() {
    public void widgetSelected(
    org.eclipse.swt.events.SelectionEvent e) {
    browser.stop();// 停止装载网页
    }
    });
    backItem
    .addSelectionListener(new org.eclipse.swt.events.SelectionAdapter() {
    public void widgetSelected(
    org.eclipse.swt.events.SelectionEvent e) {
    browser.back();// 后退
    }
    });
    forwardItem
    .addSelectionListener(new org.eclipse.swt.events.SelectionAdapter() {
    public void widgetSelected(
    org.eclipse.swt.events.SelectionEvent e) {
    browser.forward();// 前进
    }
    }); } // 返回地址栏调用
    public Text getLocationText() {
    return locationText;
    }
    }
    如果想调用系统的默认浏览器可以参考下面的代码:
    public class TestDesktopBrowser { /**
     * @param args
     * @throws URISyntaxException 
     * @throws IOException 
     */
    public static void main(String[] args) throws IOException, URISyntaxException {
    if (Desktop.isDesktopSupported()){
    Desktop desktop = Desktop.getDesktop();
    desktop.browse(new  URI("http://www.baidu.com"));
    desktop.mail();
    } else {
    System.out.println("系统不支持Desktop");
    }
    }}