当前位置:  技术问答>java相关

我要做一个类似与IE的浏览器!各位帮我!

    来源: 互联网  发布时间:2017-03-19

    本文导语:  功能可以简单一点,但是一定要有源代码,我一定给300多分。 | //  WebReader.java // This program uses a JEditorPane to display the // contents of a file on a Web server. // Java core packages import java.awt...

功能可以简单一点,但是一定要有源代码,我一定给300多分。

|
//  WebReader.java
// This program uses a JEditorPane to display the
// contents of a file on a Web server.

// Java core packages
import java.awt.*;
import java.awt.event.*;
import java.net.*;
import java.io.*;
import java.util.*;

// Java extension packages
import javax.swing.*;
import javax.swing.event.*;

public class WebReader extends JFrame {
private JTextField enterField;
private JEditorPane contentsArea;
private JButton backButton,fwdButton;
private JPanel contralPanel;
private URLList urllist;
   // set up GUI
   public WebReader()
   {
      super( "My Web Browser" );


      JMenu fileMenu = new JMenu("File");//set up File menu ane its menu item
      fileMenu.setMnemonic('F');

      JMenuItem exitItem = new JMenuItem("Exit");
      exitItem.setMnemonic('X');
      exitItem.addActionListener(
       new ActionListener(){
       public void actionPerformed(ActionEvent event){
       System.exit(0);
       }
       }
      );
      fileMenu.add( exitItem );

      JMenuBar bar = new JMenuBar();
      setJMenuBar( bar );
      bar.add( fileMenu );

      JMenu editMenu = new JMenu("Edit");
      editMenu.setMnemonic('E');

      JMenuItem nextItem = new JMenuItem( "Next" );
      nextItem.setMnemonic( 'N' );
      nextItem.addActionListener(
       new ActionListener(){
       public void actionPerformed(ActionEvent event){
       System.exit(0);
       }
       }
      );
      editMenu.add( nextItem );
      bar.add( editMenu );

      Container container = getContentPane();

      FlowLayout lay=new FlowLayout();
      lay.setAlignment( FlowLayout.LEFT );

      contralPanel = new JPanel();
      contralPanel.setLayout( lay );

      urllist = new URLList();

      Icon back = new ImageIcon( "back.gif" );
      backButton = new JButton( "back",back );
      backButton.addActionListener(
       new ActionListener()
       {
       public void actionPerformed( ActionEvent event )
            {
             String strback=new String( urllist.back() );
             System.out.println( strback );
             if( !strback.equals( "Noop" ) )
             getThePage( strback );
            
            }
        }
      );
   contralPanel.add( backButton );

      Icon fwd = new ImageIcon( "fwd.gif" );
      fwdButton = new JButton( "fwd",fwd );
      fwdButton.addActionListener(
       new ActionListener()
       {
       public void actionPerformed( ActionEvent event )
            {
             String strfwd=new String( urllist.forward() );
             System.out.println( strfwd );
             if( !strfwd.equals( "Noop" ) )
             getThePage( strfwd );
            
            }
        }
      );
      contralPanel.add( fwdButton );

      // create enterField and register its listener
      enterField = new JTextField( "Enter file URL here",24 );

      enterField.addActionListener(

         new ActionListener() {

            // get document specified by user
            public void actionPerformed( ActionEvent event )
            {
             urllist.push( event.getActionCommand() );
             getThePage( event.getActionCommand() );
            }

         }  // end anonymous inner class

      ); // end call to addActionListener

      enterField.addMouseListener(
       new MouseListener(){
       public void mouseClicked( MouseEvent e )
       {
       enterField.selectAll();
       }

       public void mousePressed( MouseEvent e )
       {
       }

       public void mouseReleased( MouseEvent e )
       {
       }
       public void mouseEntered( MouseEvent e )
       {
       }
      
      
       public void mouseExited( MouseEvent e )
       {
       }
       }
      );

      contralPanel.add( enterField );

      container.add( contralPanel, BorderLayout.NORTH );
      // create contentsArea and register HyperlinkEvent listener
      contentsArea = new JEditorPane();
      contentsArea.setEditable( false );

      contentsArea.addHyperlinkListener(

         new HyperlinkListener() {

            // if user clicked hyperlink, go to specified page
            public void hyperlinkUpdate( HyperlinkEvent event )
            {
               if ( event.getEventType() ==
                    HyperlinkEvent.EventType.ACTIVATED )
                    {
                     urllist.push( event.getURL().toString() );
                     getThePage( event.getURL().toString() );
                    }
            }

         }  // end anonymous inner class

      ); // end call to addHyperlinkListener

      container.add(  new JScrollPane( contentsArea ) ,
         BorderLayout.CENTER );

      setSize( 1000, 700 );
      setVisible( true );
   }

   // load document; change mouse cursor to indicate status
   private void getThePage( String location )
   {
      // change mouse cursor to WAIT_CURSOR
      setCursor( Cursor.getPredefinedCursor(
         Cursor.WAIT_CURSOR ) );

      if(!location.startsWith( "http://" ))
       location="http://" + location;

      // load document into contentsArea and display location in
      // enterField
      try {
         contentsArea.setPage( location );
         enterField.setText( location );
      }

      // process problems loading document
      catch ( IOException ioException ) {
         JOptionPane.showMessageDialog( this,
            "Error retrieving specified URL",
            "Bad URL", JOptionPane.ERROR_MESSAGE );
      }

      setCursor( Cursor.getPredefinedCursor(
         Cursor.DEFAULT_CURSOR ) );
   }

   // begin application execution
   public static void main( String args[] )
   {
      WebReader application = new WebReader();

      application.setDefaultCloseOperation(
         JFrame.EXIT_ON_CLOSE );

   }

}  // end class WebReader
class URLList
{
private int now = 0;
private Vector vector;

URLList()
{
vector = new Vector( 1 );
}
public void push(String url)
{
vector.add(url);
now = vector.size()-1;
}

public String back()
{
System.out.println( "back  " + now );
if( now == 0 )
return( "Noop" );
else
{
now--;
System.out.println( "back----" + now );
return( (String)vector.get( now ));
}
}

public String forward()
{
System.out.println( "fwd" + now + vector.size() );
if( ( vector.size() == 0 ) || ( now == ( vector.size()-1 ) ) )
return( "Noop" );
else
{
now++;
System.out.println( "fwd+++" + now );
return( (String)vector.get( now ));
}
}
public int getnow()
{
return now;
}
}


    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。














站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3