亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? viewsourceframe.java

?? 網絡瀏覽器,能實現基本的瀏覽功能,可以作為初學者
?? JAVA
字號:

import java.awt.datatransfer.Clipboard;
import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.Transferable;

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 (); 
    TextAreaMenu jTextArea1 = new TextAreaMenu (); 

    String htmlSource; 


	public ViewSourceFrame (String htmlSource) {
        
        this.htmlSource = htmlSource; 
        enableEvents (AWTEvent.WINDOW_EVENT_MASK); 
        setSize (new Dimension (600,500)); 
        setTitle ("source"); 
        setDefaultCloseOperation (WindowConstants.DISPOSE_ON_CLOSE); 
        
        contentPane = (JPanel)getContentPane (); 
        contentPane.setLayout (new BorderLayout()); 
        
        panel2.setLayout (new FlowLayout()); 
        
        savebutton.setText ("save"); 
        closebutton.setText ("quit");
        
		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); 
       
		this.jTextArea1.setCaretPosition (0); 
    } 
    
    /**

	*/
	//.......
	class TextAreaMenu extends JTextArea implements MouseListener {

  private static final long serialVersionUID = -2308615404205560110L;

  private JPopupMenu pop = null; // 彈出菜單

  private JMenuItem copy = null, paste = null, cut = null; // 三個功能菜單

  public TextAreaMenu() {
   super();
   init();
  }

  private void init() {
   this.addMouseListener(this);
   pop = new JPopupMenu();
   pop.add(copy = new JMenuItem("COPY"));
   pop.add(paste = new JMenuItem("PASTE"));
   pop.add(cut = new JMenuItem("CUT"));
   copy.setAccelerator(KeyStroke.getKeyStroke('C', InputEvent.CTRL_MASK));
   paste.setAccelerator(KeyStroke.getKeyStroke('V', InputEvent.CTRL_MASK));
   cut.setAccelerator(KeyStroke.getKeyStroke('X', InputEvent.CTRL_MASK));
   copy.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
     action(e);
    }
   });
   paste.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
     action(e);
    }
   });
   cut.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
     action(e);
    }
   });
   this.add(pop);
  }

  /**
   * 菜單動作
   * @param e
   */
  public void action(ActionEvent e) {
   String str = e.getActionCommand();
   if (str.equals(copy.getText())) { // 復制
    this.copy();
   } else if (str.equals(paste.getText())) { // 粘貼
    this.paste();
   } else if (str.equals(cut.getText())) { // 剪切
    this.cut();
   }
  }

  public JPopupMenu getPop() {
   return pop;
  }

  public void setPop(JPopupMenu pop) {
   this.pop = pop;
  }

  /**
   * 剪切板中是否有文本數據可供粘貼
   * 
   * @return true為有文本數據
   */
  public boolean isClipboardString() {
   boolean b = false;
   Clipboard clipboard = this.getToolkit().getSystemClipboard();
   Transferable content = clipboard.getContents(this);
   try {
    if (content.getTransferData(DataFlavor.stringFlavor) instanceof String) {
     b = true;
    }
   } catch (Exception e) {
   }
   return b;
  }

  /**
   * 文本組件中是否具備復制的條件
   * 
   * @return true為具備
   */
  public boolean isCanCopy() {
   boolean b = false;
   int start = this.getSelectionStart();
   int end = this.getSelectionEnd();
   if (start != end)
    b = true;
   return b;
  }

  public void mouseClicked(MouseEvent e) {
  }

  public void mouseEntered(MouseEvent e) {
  }

  public void mouseExited(MouseEvent e) {
  }

  public void mousePressed(MouseEvent e) {
   if (e.getButton() == MouseEvent.BUTTON3) {
    copy.setEnabled(isCanCopy());
    paste.setEnabled(isClipboardString());
    cut.setEnabled(isCanCopy());
    pop.show(this, e.getX(), e.getY());
   }
  }

  public void mouseReleased(MouseEvent e) {
  }

 }


	
	
	//........
	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("save faild");
            }
        }
    }
} 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久亚洲综合av| 亚洲精品在线三区| 成人小视频免费观看| 五月天丁香久久| 亚洲欧洲制服丝袜| 国产欧美一区二区在线| 欧美一级久久久| 在线精品视频免费观看| 国产成人一区在线| 日韩电影一区二区三区四区| 自拍av一区二区三区| 国产日韩欧美综合一区| 欧美一级黄色录像| 欧美色成人综合| 一本色道a无线码一区v| 成人综合在线观看| 国产资源在线一区| 蜜桃视频在线一区| 天天操天天干天天综合网| 一区二区三区资源| 一区免费观看视频| 国产欧美日韩不卡| 国产丝袜在线精品| 欧美国产乱子伦| 国产午夜精品久久| 久久久噜噜噜久久人人看| 欧美不卡一二三| 欧美变态tickling挠脚心| 欧美一三区三区四区免费在线看| 欧美网站一区二区| 欧美无砖专区一中文字| 欧美日韩中文另类| 欧美精品黑人性xxxx| 欧美日韩国产成人在线免费| 欧美日韩黄色影视| 在线不卡中文字幕| 日韩一级二级三级| 欧美成人性战久久| 久久久久久久久久久久电影| 国产欧美一区二区精品仙草咪| 国产午夜精品福利| 国产精品成人免费| 一区二区三区视频在线观看| 亚洲小少妇裸体bbw| 午夜av一区二区| 日韩av不卡在线观看| 裸体一区二区三区| 国产一区二区0| 成人黄色免费短视频| 91麻豆国产自产在线观看| 一本一本大道香蕉久在线精品| 在线观看视频91| 91精品国产综合久久精品图片| 日韩美女在线视频| 国产欧美日韩中文久久| 亚洲色图视频免费播放| 亚洲一区在线视频观看| 蜜臀91精品一区二区三区 | 性做久久久久久免费观看欧美| 亚洲一区二区三区视频在线播放 | 欧美色大人视频| 91精品国产福利| 国产日韩欧美精品综合| 亚洲丝袜另类动漫二区| 亚洲777理论| 国产乱码精品一区二区三区av | 欧美主播一区二区三区| 欧美一级一级性生活免费录像| 久久亚洲欧美国产精品乐播| 亚洲欧洲一区二区在线播放| 亚洲午夜电影在线| 精品一区二区三区视频| av高清久久久| 日韩欧美在线影院| 成人欧美一区二区三区黑人麻豆 | 亚洲高清一区二区三区| 蜜臀a∨国产成人精品| 成人av在线播放网站| 欧美日韩一区二区在线观看 | 亚洲欧美成aⅴ人在线观看| 丝瓜av网站精品一区二区| 国内成人自拍视频| 欧美伊人久久大香线蕉综合69| 精品国产不卡一区二区三区| 亚洲天堂精品视频| 精品一区二区三区在线观看| 色国产精品一区在线观看| 精品国产一区二区三区不卡| 亚洲一区二区欧美日韩| 国产成人鲁色资源国产91色综| 欧美在线观看视频一区二区| 久久久久久一级片| 日韩高清不卡一区| 一本一道久久a久久精品| 26uuu色噜噜精品一区| 亚洲国产日韩av| 播五月开心婷婷综合| 精品国产一区久久| 午夜精品在线视频一区| 95精品视频在线| 久久久久88色偷偷免费| 日日摸夜夜添夜夜添精品视频| 99在线精品观看| 久久久久综合网| 久久精品久久99精品久久| 欧美怡红院视频| 亚洲人成伊人成综合网小说| 国产激情一区二区三区四区| 日韩欧美激情在线| 日本一区二区三区视频视频| 亚洲电影在线播放| 国内精品视频一区二区三区八戒| 亚洲国产精品激情在线观看| 亚洲日本护士毛茸茸| 精一区二区三区| 欧美视频在线观看一区二区| 一色桃子久久精品亚洲| 国产成人综合网| 精品国产乱码久久久久久影片| 天天综合日日夜夜精品| 欧美日韩国产天堂| 一二三区精品福利视频| 99国产精品国产精品毛片| 国产欧美久久久精品影院| 国产一区二区不卡老阿姨| 久久综合丝袜日本网| 九九精品一区二区| 久久婷婷一区二区三区| 久久国产乱子精品免费女| 日韩美女主播在线视频一区二区三区| 偷偷要91色婷婷| 欧美一级日韩免费不卡| 视频一区二区中文字幕| 欧美一区二区三区小说| 免费在线成人网| 亚洲精品一区二区在线观看| 国模套图日韩精品一区二区 | 亚洲三级免费电影| 欧美男生操女生| 麻豆精品一区二区综合av| 国产精品久久久久天堂| 色婷婷av一区二区| 精品国产一区a| 久久不见久久见中文字幕免费| 日韩欧美国产小视频| 裸体健美xxxx欧美裸体表演| 久久影院视频免费| av在线不卡观看免费观看| 亚洲欧美成aⅴ人在线观看| 欧美日韩中文字幕精品| 人妖欧美一区二区| 久久人人爽人人爽| 99国产精品99久久久久久| 最新日韩在线视频| 欧美日韩久久久| 激情综合网最新| 国产精品国产三级国产专播品爱网 | 九色porny丨国产精品| 久久精品视频在线免费观看 | 欧美日韩高清不卡| 亚洲伦理在线免费看| 欧美亚洲精品一区| 美女网站在线免费欧美精品| 久久久www免费人成精品| 91色综合久久久久婷婷| 天堂在线一区二区| 久久精品男人天堂av| 92国产精品观看| 男女性色大片免费观看一区二区 | 91精品黄色片免费大全| 国产精品自拍网站| 夜夜嗨av一区二区三区中文字幕 | 国产亚洲1区2区3区| 欧亚洲嫩模精品一区三区| 蜜桃视频一区二区| 亚洲人成亚洲人成在线观看图片| 欧美一区二区三区在线观看视频| 国产精品1区2区3区在线观看| 亚洲精品视频观看| 久久久亚洲国产美女国产盗摄| 在线影院国内精品| 国产精品系列在线播放| 天堂资源在线中文精品| 欧美激情一区二区三区四区 | 国产欧美日韩中文久久| 在线精品视频小说1| 国产精品一区在线| av毛片久久久久**hd| 精品福利av导航| 亚洲国产综合人成综合网站| 欧美一区二区三区在线| 成人一级黄色片| 日韩av电影一区| 日韩码欧中文字| 久久久精品一品道一区| 4438亚洲最大| 欧洲在线/亚洲| www.亚洲免费av| 国产剧情一区在线| 欧美a一区二区|