2014-12-02 68 views
1

我想用Eclipse创建一个简单的Java浏览器Luna 4.4.1 我设法创建浏览器,但我有两个问题。简单的浏览器显示问题

  1. 显示页面。当我的浏览器显示页面时,它显示它们已损坏,例如 “google.com”,背景是蓝色,乱七八糟的字母,我甚至表示满意,在正常浏览器中不显示
  2. Google搜索引擎即使Yahoo引擎正常工作也不起作用。

这是我的代码

import java.awt.Container; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 
import java.awt.event.WindowAdapter; 
import java.awt.event.WindowEvent; 
import java.io.IOException; 
import java.util.Stack; 

import javax.swing.JButton; 
import javax.swing.JEditorPane; 
import javax.swing.JFrame; 
import javax.swing.JLabel; 
import javax.swing.JPanel; 
import javax.swing.JScrollPane; 
import javax.swing.JTextField; 
import javax.swing.event.HyperlinkEvent; 
import javax.swing.event.HyperlinkListener; 

class EditorPaneFrame extends JFrame 
{ 

private JTextField url; 
private JButton backButton; 
private JEditorPane editorPane; 
private Stack urlStack = new Stack(); 

public EditorPaneFrame() 
{ 
setTitle("Java Web Browser"); 
setSize(1000,800); 
addWindowListener(new WindowAdapter() 
{ 
public void windowClosing(WindowEvent e) 
{ 
System.exit(0); 
} 
}); 
// set up text field and load button for typing in URL 
url = new JTextField(30); 

url.addActionListener(
      //action listener for when the user press enter 
      new ActionListener(){ 
       public void actionPerformed(ActionEvent event) 
        { 
         try 
         { 
          // remember URL for back button 
          urlStack.push(url.getText()); 
          editorPane.setPage("http://"+url.getText()); 
          } 
          catch(Exception e) 
          { 
          editorPane.setText("Error: " +e); 
          } 
          } 

       } 

      ); 

     // set up back button and button action 
    backButton = new JButton("Back"); 
    backButton.addActionListener(new ActionListener() 
    { 
    public void actionPerformed(ActionEvent event) 
    { 
    if(urlStack.size()<=1) return; 
    try 
    { 
    urlStack.pop(); 
    String urlString = (String)urlStack.peek(); 
    url.setText(urlString); 
    editorPane.setPage("http://"+urlString); 
    } 
    catch(IOException e) 
    { 
    editorPane.setText("Error : " +e); 
    } 
    } 
    }); 
    editorPane = new JEditorPane(); 
    editorPane.setEditable(false); 
    editorPane.addHyperlinkListener(new HyperlinkListener() 
    { 
     public void hyperlinkUpdate(HyperlinkEvent event) 
     { 
     if(event.getEventType() == HyperlinkEvent.EventType.ACTIVATED) 
     { 
     try 
     { 
     urlStack.push(event.getURL().toString()); 
     url.setText(event.getURL().toString()); 
     editorPane.setPage(event.getURL()); 
     } 
     catch(IOException e) 
     { 
     editorPane.setText("Error: " + e); 
     } 
     } 
     } 
     }); 

     Container contentPane = getContentPane(); 
     contentPane.add(new JScrollPane(editorPane), "Center"); 
     JPanel panel = new JPanel(); 
     panel.add(new JLabel("URL http://")); 
     panel.add(url); 
     panel.add(backButton); 
     contentPane.add(panel,"North"); 
     } 
} 


import java.awt.*; 
import java.awt.event.*; 
import java.util.*; 
import java.net.*; 
import java.io.*; 
import javax.swing.*; 
import javax.swing.event.*; 

public class WebBrowser { 
@SuppressWarnings("deprecation") 
public static void main(String [] args) 
{ 
JFrame frame = new EditorPaneFrame(); 
frame.show(); 
} 
} 

任何帮助将

+0

*“我设法创建浏览器,但我有两个问题。”*您是否也有1个问题?另请注意,SO是Q&A站点,而不是服务台。不同的问题应该在不同的线程中提出。 – 2014-12-02 23:31:04

回答

0

我最后一次检查可以理解的,JEditorPane的是HTML的最新版本落后方式。另外,你可能需要以某种方式插入一个Javascript引擎(当我十年前尝试这个时,这是真的)。您可以查看Apache Rhino以获得Java Javascript引擎。还有像级联样式表/ Flash插件的东西,我认为你必须引导。

祝你好运!