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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? swingwindow.java

?? A framework written in Java for implementing high-level and dynamic languages, compiling them into J
?? JAVA
字號(hào):
// Copyright (c) 2002  Per M.A. Bothner.// This is free software;  for terms and warranty disclaimer see ./COPYING.package gnu.jemacs.swing;import gnu.jemacs.buffer.*;import java.awt.event.FocusEvent;import java.awt.event.KeyEvent;import javax.swing.*;import javax.swing.text.*;import java.awt.*;import java.util.Hashtable;/** An Emacs window (EWindow) implemented using the Swing toolkits. */public class SwingWindow extends EWindowimplements java.awt.event.FocusListener,  java.awt.event.KeyListener,  javax.swing.event.ChangeListener{  /* Map JTextPane to SwingWindow. */  static Hashtable panemap = new Hashtable();  JTextPane jtextpane;  /** The panel that contains this window and the modeline. */  JPanel panel;  JScrollPane scrollPane;  public Modeline modeline;  public SwingWindow(Buffer buffer)  {    this(buffer, true);  }  /** Create new Window.   * @param buffer the Buffer containing the data.   * @param wantModeline true if we should create a mode line   */  public SwingWindow(Buffer buffer, boolean wantModeline)  {    super(null);    jtextpane = new JTextPane(((SwingBuffer) buffer).doc);    panemap.put(jtextpane, this);    if (wantModeline)      modeline = new Modeline(this, ((SwingBuffer) buffer).modelineDocument);    this.buffer = buffer;    jtextpane.addFocusListener(this);    jtextpane.addKeyListener(this);  }  /** Warp this (and optional modeline) inside a ScrollPane in a new JPanel. */  public JPanel wrap()  {    BorderLayout layout = new BorderLayout();    JPanel panel = new JPanel(layout);    scrollPane = new JScrollPane(jtextpane,                                 JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,                                 JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);    panel.add(scrollPane, BorderLayout.CENTER);    if (modeline != null)      panel.add(modeline, BorderLayout.SOUTH);    this.panel = panel;    return panel;  }  /** Get the JPanel containing this Window. */  public JPanel getPanel()  {    return panel;  }  public void focusGained(FocusEvent e)  {    setSelected();  }  public void focusLost(FocusEvent e)  {  }  public void requestFocus()  {    jtextpane.requestFocus();  }  public void setBuffer (Buffer buffer)  {    if (this.buffer == buffer)      return;    super.setBuffer(buffer);    jtextpane.setDocument(((SwingBuffer) buffer).doc);    if (modeline != null)      modeline.setDocument(((SwingBuffer) buffer).modelineDocument);    EWindow selected = getSelected();    if (selected == this)      {	unselect();	// Change buffer's pointMarker so it follows this EWindow's Caret.	Caret caret = jtextpane.getCaret();	caret.setDot(buffer.getDot());	select(caret);      }  }  public void unselect()  {    Caret caret = ((SwingBuffer) buffer).curPosition;    if (caret == null)      return;    int point = caret.getDot();    int index = ((SwingBuffer) buffer).content.buffer.createPos(point, true);    buffer.pointMarker.ipos = index;    ((SwingBuffer) buffer).curPosition = null;    jtextpane.getCaret().removeChangeListener(this);    // ?? selected = null;  }  public void setSelected()  {    super.setSelected();    select(jtextpane.getCaret());  }  public int getPoint()  {    return 1 + jtextpane.getCaret().getDot();  }  public void setDot(int offset)  {    jtextpane.getCaret().setDot(offset);  }  public EWindow split (Buffer buffer, int lines, boolean horizontal)  {    SwingWindow window = new SwingWindow(buffer);    EFrame frame = this.frame;    window.frame = frame;    linkSibling(window, horizontal);    window.modeline = new Modeline(window, ((SwingBuffer) buffer).modelineDocument);    JPanel panel = this.getPanel();    java.awt.Dimension oldSize = panel.getSize();    java.awt.Container oldParent = panel.getParent();    oldParent.remove(panel);    JSplitPane split      = new JSplitPane(horizontal ? JSplitPane.HORIZONTAL_SPLIT                       : JSplitPane.VERTICAL_SPLIT,                       panel, window.wrap());    split.setDividerSize(2);    // FIXME - use lines.    split.setDividerLocation((horizontal ? oldSize.width : oldSize.height) / 2);    oldParent.add(split);    oldParent.validate();    if (this == EWindow.getSelected())      this.requestFocus();    return window;  }  private void select(Caret caret)  {    // Change buffer's pointMarker so it follows this EWindow's Caret.    ((SwingBuffer) buffer).curPosition = caret;    if (! buffer.pointMarker.isPoint())      ((SwingBuffer) buffer).content.buffer.releasePos(buffer.pointMarker.ipos);    buffer.pointMarker.sequence = null;    caret.addChangeListener(this);  }  public void stateChanged(javax.swing.event.ChangeEvent e)  {    Object source = e.getSource();    if (source instanceof Caret && buffer != null)      {	Caret caret = (Caret) source;	int mark = caret.getMark();	int dot = caret.getDot();	if (mark != dot)	  {	    buffer.markMarker.set(buffer, mark);	  }      }  }  public static JTextPane getContainedWindow(Container cont, boolean last)  {    for (;;)      {        if (cont instanceof JTextPane)          return (JTextPane) cont;        if (cont instanceof JScrollPane)          cont = (Container) ((JScrollPane) cont).getViewport().getView();        else if (cont instanceof JFrame)          cont = ((JFrame) cont).getContentPane();        else if (cont instanceof JSplitPane)          {            JSplitPane split = (JSplitPane) cont;            cont = (Container)              (last ? split.getRightComponent() : split.getLeftComponent());          }        else          {            int count = cont.getComponentCount();            if (count == 0)              return null;            cont = (Container) cont.getComponent(last ? (count - 1) : 0);          }      }  }  /*  public SwingWindow getNextWindow(boolean forwards)  {    Container prev = this;    for (;;)      {        Container parent = prev.getParent();        if (parent == null)          return null;        if (parent instanceof JSplitPane)          {            JSplitPane split =(JSplitPane) parent;            if (prev == split.getLeftComponent())              {                if (forwards)                  return getFirstWindow((Container) split.getRightComponent());              }            else // prev == split.getRightComponent():              {                if (!forwards)                  return getLastWindow((Container) split.getLeftComponent());              }          }        prev = parent;      }  }  */  public static SwingWindow getWindow(java.awt.event.ActionEvent event)  {    // Maybe use TextAction.getTextComponent instead? FIXME.    Component component = (Component) event.getSource();    for (;;)      {        if (component instanceof JTextPane)          return (SwingWindow) panemap.get(component);        component = component.getParent();      }  }  protected void deleteNoValidate()  {    super.deleteNoValidate();    if (modeline != null)      panel.remove(modeline);    panel.remove(scrollPane);    // Mow remove the Panel from its parent.    Container oldParent = panel.getParent();    if (oldParent instanceof JSplitPane)      {        JSplitPane split = (JSplitPane) oldParent;        Component other;        if (panel == split.getLeftComponent())          other = split.getRightComponent();        else          other = split.getLeftComponent();        split.remove(jtextpane);        split.remove(other);        // In the JSplitPane's parent, replace the JSplitPane by just other         Container splitParent = split.getParent();        if (splitParent instanceof JSplitPane)          {            JSplitPane outerSplit = (JSplitPane) splitParent;            if (split == outerSplit.getLeftComponent())              outerSplit.setLeftComponent(other);            else              outerSplit.setRightComponent(other);          }        else          {            splitParent.remove(split);            splitParent.add(other);          }      }    else      oldParent.remove(panel);    panemap.remove(jtextpane);    jtextpane = null;    panel = null;    scrollPane = null;  }  public void activateRegion ()  {    System.err.println("(activateRegions)");    Caret caret = jtextpane.getCaret();    caret.setDot(buffer.markMarker.getOffset());    caret.moveDot(buffer.getDot());  }  public Dimension getPreferredScrollableViewportSize()  {    Dimension size = panel.getSize();    if (modeline != null)      size = new Dimension(size.width,                       size.height - modeline.getPreferredSize().height);    return size;  }  protected void getCharSize()  {    java.awt.Font defaultFont      = ((SwingBuffer) buffer).doc.getFont(SwingBuffer.defaultStyle);    java.awt.FontMetrics fm      = jtextpane.getGraphics().getFontMetrics(defaultFont);    charHeight = fm.getHeight();    charWidth = fm.charWidth('m');  }  public int getWidth ()  {    return jtextpane.getWidth();  }  public int getHeight ()  {    return jtextpane.getWidth();  }  public void keyTyped(KeyEvent e)  {    handle(e, toInt(e, 0));  }  public void keyPressed(KeyEvent e)  {    handle(e, toInt(e, EKeymap.PRESSED));  }  public void keyReleased(KeyEvent e)  {    handle(e, toInt(e, EKeymap.RELEASED));  }  protected void handle(KeyEvent e, int code)  {    Object action = lookupKey(code);    pushPrefix(code);    pendingLength--;    if (action == null || action instanceof IgnoreAction)      {	e.consume();	return;      }    handleCommand(action);    e.consume();  }  int toInt(KeyEvent e, int kind)  {    int code = e.getKeyCode();    if (code == 0)      code = e.getKeyChar();    else      code |= (e.getModifiers() | kind) << 16;    return code;  }/** *  */void flushPending() {  pendingLength = 0;}/** * @see gnu.jemacs.buffer.EWindow#tooLong(int) */public Object tooLong(int pendingLength){  return new TooLongAction(pendingLength);}}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩激情在线| 久久99精品久久久久婷婷| 99久久777色| 首页国产丝袜综合| 亚洲国产裸拍裸体视频在线观看乱了| 欧美肥大bbwbbw高潮| 国模少妇一区二区三区| 亚洲一区二区偷拍精品| 中文字幕乱码一区二区免费| 欧美日韩成人综合天天影院| av在线免费不卡| 精品一区二区三区视频在线观看| 亚洲人成在线观看一区二区| 久久蜜桃香蕉精品一区二区三区| 欧美日韩专区在线| 91在线看国产| 国产69精品久久777的优势| 日韩精品国产精品| 亚洲蜜臀av乱码久久精品| 久久久美女艺术照精彩视频福利播放| 欧美日韩一二区| 91色九色蝌蚪| 成人激情午夜影院| 激情图区综合网| 同产精品九九九| 亚洲国产一区二区三区青草影视| 中文字幕不卡在线| 国产亚洲一区字幕| 精品嫩草影院久久| 日韩欧美一区中文| 在线电影院国产精品| 色噜噜久久综合| 成人av高清在线| 成人综合激情网| 国产成人av福利| 欧美一级二级三级蜜桃| 99久久精品国产毛片| 国产精品亚洲午夜一区二区三区| 美女网站一区二区| 青青草一区二区三区| 亚洲二区在线观看| 亚洲成人激情社区| 一区二区理论电影在线观看| 亚洲免费在线看| 一区二区三区四区激情| 亚洲精选视频在线| 亚洲综合999| 亚洲国产视频一区| 亚洲va欧美va人人爽午夜| 一区二区三区波多野结衣在线观看 | 亚洲一区二区三区自拍| 亚洲精品视频在线观看免费| 尤物视频一区二区| 亚洲国产精品精华液网站| 午夜精品一区在线观看| 视频一区欧美日韩| 久久99精品国产麻豆婷婷| 国产一区二区三区黄视频 | 奇米精品一区二区三区在线观看一| 婷婷一区二区三区| 蜜桃av一区二区在线观看| 韩国成人福利片在线播放| 国产麻豆精品久久一二三| 国产91在线|亚洲| 一本久久a久久精品亚洲| 亚洲婷婷综合色高清在线| 国产精品家庭影院| 亚洲图片有声小说| 美腿丝袜在线亚洲一区| 国产精品一区一区| 一本到一区二区三区| 欧美高清dvd| 国产偷v国产偷v亚洲高清| 亚洲欧美日韩国产中文在线| 午夜免费久久看| 国产精品一区二区在线观看网站| 91一区在线观看| 91精品国产综合久久精品图片| 欧美精品一区二区久久久| 国产精品久久免费看| 亚洲电影激情视频网站| 国产在线播放一区| 色综合天天综合给合国产| 91精品中文字幕一区二区三区| 久久影院午夜论| 亚洲伊人色欲综合网| 精品中文字幕一区二区| 91亚洲精品久久久蜜桃网站| 欧美一区二区精美| 国产精品第13页| 青青草成人在线观看| 成人免费毛片高清视频| 欧美日韩1区2区| 国产精品三级在线观看| 石原莉奈在线亚洲二区| 不卡一区二区中文字幕| 日韩视频免费观看高清完整版在线观看| 国产精品少妇自拍| 色婷婷精品久久二区二区蜜臀av | 欧美性大战xxxxx久久久| 久久影视一区二区| 午夜电影网亚洲视频| 99re亚洲国产精品| 2022国产精品视频| 日韩av中文字幕一区二区三区| 成人黄色大片在线观看| 日韩精品一区二区三区swag| 樱花草国产18久久久久| 国产精品香蕉一区二区三区| 日韩av二区在线播放| 懂色av一区二区夜夜嗨| 日韩一区二区免费视频| 亚洲国产另类精品专区| 99在线精品一区二区三区| 亚洲精品一区二区三区在线观看| 亚洲第一综合色| 色噜噜久久综合| 中文字幕日韩一区| 国产丶欧美丶日本不卡视频| 67194成人在线观看| 亚洲午夜视频在线| 色婷婷av一区二区三区软件| 国产精品毛片久久久久久| 国产中文一区二区三区| 日韩午夜三级在线| 日本欧美在线观看| 欧美高清你懂得| 亚洲mv在线观看| 欧美视频中文一区二区三区在线观看 | 国产在线精品一区二区三区不卡 | 亚洲精品在线电影| 视频在线观看一区二区三区| 欧美亚洲免费在线一区| 亚洲精品久久7777| 欧美高清www午色夜在线视频| 亚洲视频中文字幕| 成人va在线观看| 国产精品国产三级国产普通话三级 | 午夜精品久久久久影视| 欧美天天综合网| 亚洲成人久久影院| 欧美精品久久99| 午夜在线电影亚洲一区| 欧美日韩在线播放三区四区| 亚洲成人激情社区| 欧美一区二区视频免费观看| 日本不卡免费在线视频| 日韩亚洲欧美在线观看| 精品一区二区在线视频| 久久久久99精品一区| 成人免费三级在线| 亚洲欧美电影院| 欧美视频在线播放| 日韩精品成人一区二区在线| 91精品国产乱| 国内精品久久久久影院一蜜桃| 久久先锋影音av| 成人国产精品免费网站| 欧美精品久久天天躁| 日韩精品一级二级| 日韩精品一区二区三区swag| 欧美日韩精品欧美日韩精品一 | 国产精品综合一区二区三区| 国产精品视频一二| 色av一区二区| 日本欧美加勒比视频| 久久久高清一区二区三区| 91麻豆精东视频| 青青草国产精品97视觉盛宴 | 国产精品美女视频| 日本精品一区二区三区四区的功能| 亚洲国产aⅴ成人精品无吗| 日韩欧美亚洲国产精品字幕久久久| 国产福利91精品| 一区二区三区产品免费精品久久75| 欧美一级欧美三级| 丁香天五香天堂综合| 亚洲高清不卡在线| 久久精品一区二区| 欧美性受xxxx黑人xyx| 久久99国产精品尤物| 亚洲区小说区图片区qvod| 欧美一区欧美二区| 99vv1com这只有精品| 奇米影视一区二区三区小说| 中文av一区特黄| 欧美一级久久久久久久大片| 成人免费高清在线观看| 日韩黄色免费电影| 亚洲天天做日日做天天谢日日欢| 欧美一级精品大片| 92国产精品观看| 国产中文字幕一区| 亚洲成人午夜电影| 国产精品嫩草影院com| 97aⅴ精品视频一二三区| 一色桃子久久精品亚洲| 欧美一区二区视频免费观看| 99热99精品| 狠狠色狠狠色综合日日91app|