网站导航网学 原创论文 原创专题 网站设计 最新系统 原创论文 论文降重 发表论文 论文发表 UI设计定制 论文答辩PPT格式排版 期刊发表 论文专题
返回网学首页
网学原创论文
最新论文 推荐专题 热门论文 论文专题
当前位置: 网学 > 交易代码 > 课程设计 > 正文

网页浏览器设计

论文降重修改服务、格式排版等 获取论文 论文降重及排版 论文发表 相关服务
java网页浏览器设计/***网页浏览器主程序**WebBrowser.java*/import java.awt.*; import javax.swing.*;import javax.swing.text.*;import java.awt.event.*; import javax.swing.event.*;import javax.swing.border.*;import javax.swing.filechooser.FileFilter; import javax.swing.filechooser.FileView; import java.io.*; import java.net.*; import java.util.*;
public class WebBrowser extends JFrame implements HyperlinkListener,ActionListener{
    //建立工具栏用来显示地址栏    JToolBar bar=new JToolBar ();         //建立网页显示界面    JTextField jurl = new JTextField (60);     JEditorPane jEditorPane1 = new JEditorPane ();    JScrollPane scrollPane = new JScrollPane (jEditorPane1);         JFileChooser chooser=new JFileChooser ();     JFileChooser chooser1=new JFileChooser ();     String htmlSource;     JWindow window = new JWindow (WebBrowser.this);         JButton button2=new JButton ("窗口还原");    Toolkit toolkit = Toolkit.getDefaultToolkit();        //建立菜单栏    JMenuBar jMenuBar1 = new JMenuBar();     //建立菜单组    JMenu fileMenu = new JMenu ("文件(F)");     //建立菜单项    JMenuItem saveAsItem = new JMenuItem ("另存为(A)...");    JMenuItem exitItem=new JMenuItem ("退出(I)");        JMenu editMenu=new JMenu ("编辑(E)");    JMenuItem backItem=new JMenuItem ("后退");    JMenuItem forwardItem=new JMenuItem ("前进");        JMenu viewMenu=new JMenu ("视图(V)");    JMenuItem fullscreenItem=new JMenuItem ("全屏(U)");     JMenuItem sourceItem=new JMenuItem ("查看源码(C)");    JMenuItem reloadItem=new JMenuItem ("刷新(R)");
    //建立工具栏    JToolBar toolBar = new JToolBar();    //建立工具栏中的按钮组件    JButton picSave = new JButton("另存为");    JButton picBack = new JButton("后退");    JButton picForward = new JButton("前进");    JButton picView = new JButton("查看源代码");    JButton picExit = new JButton("退出");
    JLabel label=new JLabel ("地址");     JButton button=new JButton ("转向");        Box adress=Box.createHorizontalBox ();   
    //ArrayList对象,用来存放历史地址    private ArrayList history=new ArrayList();    //整型变量,表示历史地址的访问顺序    private int historyIndex;
    /**    **构造函数    **初始化图形用户界面    */    public WebBrowser(){                setTitle ("网页浏览器");         setResizable(false);        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);                            //为jEditorPane1添加事件侦听        jEditorPane1.addHyperlinkListener (this);                //为组件fileMenu设置热键‘F’        fileMenu.setMnemonic('F');                 saveAsItem.setMnemonic ('S');         //为“另存为”组件设置快捷键为ctrl+s        saveAsItem.setAccelerator (KeyStroke.getKeyStroke (KeyEvent.VK_S,InputEvent.CTRL_MASK));                 exitItem.setMnemonic('Q');         exitItem.setAccelerator (KeyStroke.getKeyStroke (KeyEvent.VK_E,InputEvent.CTRL_MASK));                 //将菜单项saveAsItem加入到菜单组fileMenu中        fileMenu.add (saveAsItem);         //在菜单项中添加隔离        fileMenu.addSeparator ();         fileMenu.add (exitItem);                backItem.setMnemonic ('B');         backItem.setAccelerator (KeyStroke.getKeyStroke (KeyEvent.VK_Z,InputEvent.CTRL_MASK));         forwardItem.setMnemonic('D');         forwardItem.setAccelerator (KeyStroke.getKeyStroke (KeyEvent.VK_P,InputEvent.CTRL_MASK));                 editMenu.setMnemonic('E');         editMenu.add (backItem);         editMenu.add (forwardItem);                  viewMenu.setMnemonic('V');                fullscreenItem.setMnemonic('U');        fullscreenItem.setAccelerator (KeyStroke.getKeyStroke (KeyEvent.VK_U,InputEvent.CTRL_MASK));         sourceItem.setMnemonic('C');        sourceItem.setAccelerator (KeyStroke.getKeyStroke (KeyEvent.VK_C,InputEvent.CTRL_MASK));         reloadItem.setMnemonic('R');        reloadItem.setAccelerator (KeyStroke.getKeyStroke (KeyEvent.VK_R,InputEvent.CTRL_MASK));                 Container contentPane=getContentPane ();                     //设置大小        scrollPane.setPreferredSize(new Dimension(100,500));        contentPane.add (scrollPane, BorderLayout.SOUTH);                //在工具栏中添加按钮组件        toolBar.add(picSave);        toolBar.addSeparator();        toolBar.add(picBack);        toolBar.add(picForward);        toolBar.addSeparator();        toolBar.add(picView);        toolBar.addSeparator();        toolBar.add(picExit);                contentPane.add (bar,BorderLayout.CENTER);         contentPane.add(toolBar,BorderLayout.NORTH);                viewMenu.add (fullscreenItem);         viewMenu.add (sourceItem);         viewMenu.addSeparator ();         viewMenu.add (reloadItem);                 jMenuBar1.add (fileMenu);         jMenuBar1.add (editMenu);         jMenuBar1.add (viewMenu);
        setJMenuBar (jMenuBar1);             adress.add (label);         adress.add (jurl);         adress.add (button);         bar.add (adress);                 //为组件添加事件监X听        saveAsItem.addActionListener(this);        picSave.addActionListener(this);        exitItem.addActionListener(this);        picExit.addActionListener(this);        backItem.addActionListener(this);        picBack.addActionListener(this);        forwardItem.addActionListener(this);        picForward.addActionListener(this);        fullscreenItem.addActionListener(this);        sourceItem.addActionListener(this);        picView.addActionListener(this);        reloadItem.addActionListener(this);        button.addActionListener(this);        jurl.addActionListener(this);    }        /**    **实现监X听*X器接口的actionPerformed函数    */    public void actionPerformed(ActionEvent e) {        String url = "";        //点击转向按钮        if (e.getSource() == button){            //获得地址栏的内容            url=jurl.getText ();             //url不为“”,并且以“http://”开头            if(url.length ()>0&&url.startsWith ("http://")){                 try {                     //JEditorPane组件显示url的内容链接                    jEditorPane1.setPage (url);                     //将url的内容添加到ArrayList对象history中                    history.add(url);                     //historyIndex的数值设为history对象的长度-1                    historyIndex=history.size()-1;                    //重新布局      jEditorPane1.setEditable(false); //add by copy editor :)                    jEditorPane1.revalidate ();                 }                 catch(Exception ex) {                     //如果链接显示失败,则弹出选择对话框“无法打开该搜索页”                    JOptionPane.showMessageDialog (WebBrowser.this,"无法打开该搜索页","网页浏览器",JOptionPane.ERROR_MESSAGE);                }             }             //url不为“”,并且不以“http://”开头            else if(url.length ()>0&&!url.startsWith ("http://")) {                 //在url前面添加“http://”                url="http://"+url;                 try {                     jEditorPane1.setPage (url );                     history.add(url);                     historyIndex=history.size()-1;      jEditorPane1.setEditable(false); //add by copy editor :)                    jEditorPane1.revalidate ();                 }                 catch(Exception ex) {                    JOptionPane.showMessageDialog (WebBrowser.this,"无法打开该搜索页","网页浏览器",JOptionPane.ERROR_MESSAGE);                }             }            //没有输入url,即url为空            else if(url.length ()==0){                JOptionPane.showMessageDialog (WebBrowser.this,"请输入链接地址","网页浏览器",JOptionPane.ERROR_MESSAGE);            }                }        //输入地址后点击回车        else if (e.getSource() == jurl){            url=jurl.getText ();             if(url.length ()>0&&url.startsWith ("http://")) {                 try {                     jEditorPane1.setPage (url);                     history.add(url);                     historyIndex=history.size()-1;      jEditorPane1.setEditable(false); //add by copy editor :)                    jEditorPane1.revalidate ();                     jurl.setMaximumSize (jurl.getPreferredSize ());                 }                 catch(Exception ex) {                     JOptionPane.showMessageDialog (WebBrowser.this,"无法打开该搜索页","网页浏览器",JOptionPane.ERROR_MESSAGE);                }             }             else if(url.length ()>0&&!url.startsWith ("http://")) {                 url="http://"+url;                 try {                     jEditorPane1.setPage (url );                    history.add(url);                     historyIndex=history.size()-1;      jEditorPane1.setEditable(false); //add by copy editor :)                    jEditorPane1.revalidate ();                 }                 catch(Exception ex) {                     JOptionPane.showMessageDialog (WebBrowser.this,"无法打开该搜索页","网页浏览器",JOptionPane.ERROR_MESSAGE);                }             }            else if(url.length ()==0){                JOptionPane.showMessageDialog (WebBrowser.this,"请输入链接地址","网页浏览器",JOptionPane.ERROR_MESSAGE);            }        }        //另存为...        else if (e.getSource() == picSave||e.getSource() == saveAsItem){            url = jurl.getText ().toString ().trim();             if(url.length ()>0&&!url.startsWith ("http://")) {                 url="http://www.lwfree.cn"+url;             }             if(!url.equals ("")) {                 //保存文件                saveFile(url);             }             else {                 JOptionPane.showMessageDialog (WebBrowser.this,"请输入链接地址","网页浏览器",JOptionPane.ERROR_MESSAGE);             }         }        //退出        else if (e.getSource() == exitItem ||e.getSource() == picExit){            System.exit(0);        }140
 

java网页浏览器设计        //后退        else if (e.getSource() == backItem ||e.getSource() == picBack){            historyIndex--;             if(historyIndex < 0)                 historyIndex = 0;             url = jurl.getText();            try{                //获得history对象中本地址之前访问的地址                url = (String)history.get(historyIndex);                jEditorPane1.setPage(url);                 jurl.setText(url.toString());  jEditorPane1.setEditable(false); //add by copy editor :)                jEditorPane1.revalidate ();             }            catch(Exception ex){            }        }        //前进        else if (e.getSource() == forwardItem ||e.getSource() == picForward){            historyIndex++;             if(historyIndex >= history.size())                     historyIndex = history.size()-1;             url = jurl.getText();            try{                //获得history对象中本地址之后访问的地址                url = (String)history.get(historyIndex);                jEditorPane1.setPage(url);                 jurl.setText(url.toString());  jEditorPane1.setEditable(false); //add by copy editor :)                jEditorPane1.revalidate ();             }            catch(Exception ex){            }        }        //全屏        else if (e.getSource() == fullscreenItem){            boolean add_button2=true;             //获得屏幕大小            Dimension size = Toolkit.getDefaultToolkit().getScreenSize();
            Container content = window.getContentPane();             content.add (bar,"North");             content.add (scrollPane,"Center");                             //button2为点击“全屏”后的还原按钮            if(add_button2==true) {                 bar.add (button2);             }             //为button2添加事件            button2.addActionListener (new ActionListener () {                 public void actionPerformed (ActionEvent evt) {                     WebBrowser.this.setEnabled (true);                     window.remove (bar);                    window.remove (toolBar);                    window.remove (scrollPane);                     window.setVisible (false);                                         scrollPane.setPreferredSize (new Dimension (100,500));                     getContentPane ().add (scrollPane,BorderLayout.SOUTH);                     getContentPane ().add (bar,BorderLayout.CENTER);                     getContentPane ().add (toolBar,BorderLayout.NORTH);                     bar.remove (button2);                    pack();                 }             });            window.setSize (size);             window.setVisible (true);         }        //查看源文件        else if (e.getSource() == sourceItem ||e.getSource() == picView){            url = jurl.getText ().toString ().trim ();                 if(url.length ()>0&&!url.startsWith ("http://")) {                     url="http://"+url;                 }                 if( !url.equals ("")) {                    //根据url,获得源代码                    getHtmlSource (url);                     //生成显示源代码的框架对象                    ViewSourceFrame vsframe = new ViewSourceFrame (htmlSource);                     vsframe.setBounds (0,0,800,500);                     vsframe.setVisible(true);                 }                 else {                     JOptionPane.showMessageDialog (WebBrowser.this,"请输入链接地址","网页浏览器",JOptionPane.ERROR_MESSAGE);                 }         }        //刷新        else if (e.getSource() == reloadItem){            url=jurl.getText ();             if(url.length ()>0&&url.startsWith ("http://")) {                 try {                     jEditorPane1.setPage (url);       jEditorPane1.setEditable(false); //add by copy editor :)                    jEditorPane1.revalidate ();                 }                 catch(Exception ex) {                 }             }             else if(url.length ()>0&&!url.startsWith ("http://")) {                 url="http://"+url;                 try {                     jEditorPane1.setPage (url );       jEditorPane1.setEditable(false); //add by copy editor :)                    jEditorPane1.revalidate ();                 }                 catch(Exception ex) {                 }             }         }    }        /*    **保存文件    */    void saveFile (final String url) {         final String linesep = System.getProperty ("line.separator");         chooser1.setCurrentDirectory (new File ("."));         chooser1.setDialogType (JFileChooser.SAVE_DIALOG);         chooser1.setDialogTitle ("另存为...");         if(chooser1.showSaveDialog (this) != JFileChooser.APPROVE_OPTION)             return;         this.repaint ();         Thread thread = new Thread () {             public void run () {                 try {                     java.net.URL source = new URL (url);                     InputStream in = new BufferedInputStream (source.openStream ());                     BufferedReader br=new BufferedReader (new InputStreamReader (in));                     File fileName = chooser1.getSelectedFile ();                     FileWriter out = new FileWriter (fileName);                    BufferedWriter bw = new BufferedWriter (out);                     String line;                     while((line = br.readLine ()) != null) {                         bw.write (line);                         bw.newLine ();                     }                     bw.flush ();                     bw.close ();                     out.close ();                     String dMessage = url + " 已经被保存至"+ linesep +fileName.getAbsolutePath ();                     String dTitle = "另存为";                     int dType = JOptionPane.INFORMATION_MESSAGE;                     JOptionPane.showMessageDialog ((Component) null,dMessage,dTitle,dType);                 }                 catch(java.net.MalformedURLException muex) {                     JOptionPane.showMessageDialog ((Component)null,muex.toString (),"网页浏览器",JOptionPane.ERROR_MESSAGE);                 }                 catch(Exception ex) {                     JOptionPane.showMessageDialog ((Component) null,ex.toString (),"网页浏览器",JOptionPane.ERROR_MESSAGE);                 }             }         };         thread.start ();     }
    /*    **获得源代码    */    void getHtmlSource (String url) {         String linesep,htmlLine;         linesep = System.getProperty ("line.separator");         htmlSource ="";         try {             java.net.URL source = new URL (url);             InputStream in = new BufferedInputStream (source.openStream ());             BufferedReader br = new BufferedReader ( new InputStreamReader (in));             while((htmlLine = br.readLine ())!=null) {                 htmlSource = htmlSource +htmlLine+linesep;             }         }         catch(java.net.MalformedURLException muex) {             JOptionPane.showMessageDialog (WebBrowser.this,muex.toString (),"网页浏览器",JOptionPane.ERROR_MESSAGE);         }         catch(Exception e) {             JOptionPane.showMessageDialog (WebBrowser.this,e.toString (),"网页浏览器",JOptionPane.ERROR_MESSAGE);         }     }         /**    **实现监X听*C器接口的hyperlinkUpdate函数    */    public void hyperlinkUpdate (HyperlinkEvent e) {     /*    if(e.getEventType () == HyperlinkEvent.EventType.ACTIVATED) {             String url = jurl.getText();            if(url.length ()>0&&url.startsWith ("http://")) {                 try {                     jEditorPane1.setPage (url);                     jEditorPane1.revalidate ();                 }                 catch(Exception ex) {                 }             }             else if(url.length ()>0&&!url.startsWith ("http://")) {                 url="http://www.lwfree.cn"+url;                 try {                     jEditorPane1.setPage (url );                     jEditorPane1.revalidate ();                 }                 catch(Exception ex) {                 }             }         }     */ lwfree.cn    // Revised by copy editor :) Now with new code to help hyperlink try {   if (e.getEventType() == HyperlinkEvent.EventType.ACTIVATED)    jEditorPane1.setPage(e.getURL());   } catch (Exception ex) {    ex.printStackTrace(System.err);   }
        }        catch(Exception e){        }
        WebBrowser webBrowser = new WebBrowser ();        webBrowser.pack();        webBrowser.setVisible(true);    } }/***源代码框架*/import java.awt.*; import javax.swing.*;import java.awt.event.*; import javax.swing.event.*;import javax.swing.border.*;import javax.swing.filechooser.FileFilter; import javax.swing.filechooser.FileView; import java.io.*; import java.util.*;
class ViewSourceFrame extends JFrame implements ActionListener{     JPanel contentPane;     JPanel panel1 = new JPanel ();     JPanel panel2 = new JPanel ();     Border border1;
    JButton closebutton = new JButton ();    JButton savebutton = new JButton ();    JScrollPane jScrollPanel = new JScrollPane ();     JTextArea jTextArea1 = new JTextArea ();
    String htmlSource;
    /** **构造函数,初始化图形用户界面 */ public ViewSourceFrame (String htmlSource) {                this.htmlSource = htmlSource;         enableEvents (AWTEvent.WINDOW_EVENT_MASK);         setSize (new Dimension (600,500));         setTitle ("源代码");         setDefaultCloseOperation (WindowConstants.DISPOSE_ON_CLOSE);                 contentPane = (JPanel)getContentPane ();         contentPane.setLayout (new BorderLayout());                 panel2.setLayout (new FlowLayout());                 savebutton.setText ("保存");         closebutton.setText ("退出");          closebutton.addActionListener(this);        savebutton.addActionListener(this);                jScrollPanel.getViewport ().add (jTextArea1,null);         border1 = BorderFactory.createEmptyBorder (4,4,4,4);         panel1.setLayout (new BorderLayout());         panel1.setBorder (border1);         panel1.add (jScrollPanel,BorderLayout.CENTER);         contentPane.add (panel1,BorderLayout.CENTER);                 panel2.add (savebutton);         panel2.add (closebutton);           contentPane.add (panel2,BorderLayout.SOUTH);         this.jTextArea1.setEditable (true);         this.jTextArea1.setText (this.htmlSource);         //设置光标的位置,将其移动到文本区第0个字符  this.jTextArea1.setCaretPosition (0);     }         /** **实现监X听*X器接口的actionPerformed函数 */ public void actionPerformed(ActionEvent e) {        String url = "";        if (e.getSource() == closebutton){            dispose();        }        else if(e.getSource() == savebutton){            JFileChooser fc=new JFileChooser();            int returnVal=fc.showSaveDialog(ViewSourceFrame.this);            File saveFile=fc.getSelectedFile();            try {                FileWriter writeOut = new FileWriter(saveFile);                writeOut.write(jTextArea1.getText());                writeOut.close();            }            catch (IOException ex) {                System.out.println("保存失败");            }        }    }}
  • 上一篇资讯: java蜘蛛纸牌游戏
  • 设为首页 | 加入收藏 | 网学首页 | 原创论文 | 计算机原创
    版权所有 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2020 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号 常年法律顾问:王律师