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

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

?? basictipofthedayui.java

?? 精美開源Swing組件
?? JAVA
字號:
/**
 * L2FProd.com Common Components 7.3 License.
 *
 * Copyright 2005-2007 L2FProd.com
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.l2fprod.common.swing.plaf.basic;

import com.l2fprod.common.swing.ButtonAreaLayout;
import com.l2fprod.common.swing.JTipOfTheDay;
import com.l2fprod.common.swing.LookAndFeelTweaks;
import com.l2fprod.common.swing.JTipOfTheDay.ShowOnStartupChoice;
import com.l2fprod.common.swing.TipModel.Tip;
import com.l2fprod.common.swing.plaf.TipOfTheDayUI;

import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.Dialog;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Frame;
import java.awt.Window;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;

import javax.swing.AbstractAction;
import javax.swing.ActionMap;
import javax.swing.BorderFactory;
import javax.swing.Icon;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JComponent;
import javax.swing.JDialog;
import javax.swing.JEditorPane;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.KeyStroke;
import javax.swing.LookAndFeel;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;
import javax.swing.plaf.ActionMapUIResource;
import javax.swing.plaf.ComponentUI;

public class BasicTipOfTheDayUI extends TipOfTheDayUI {

  public static ComponentUI createUI(JComponent c) {
    return new BasicTipOfTheDayUI((JTipOfTheDay)c);
  }

  protected JTipOfTheDay tipPane;
  protected JPanel tipArea;
  protected Component currentTipComponent;

  protected Font tipFont;
  protected PropertyChangeListener changeListener;

  public BasicTipOfTheDayUI(JTipOfTheDay tipPane) {
    this.tipPane = tipPane;
  }

  public JDialog createDialog(Component parentComponent,
    final ShowOnStartupChoice choice) {
    return createDialog(parentComponent, choice, true);
  }

  protected JDialog createDialog(Component parentComponent,
    final ShowOnStartupChoice choice, boolean showPreviousButton) {
    String title = UIManager.getString("TipOfTheDay.dialogTitle");

    final JDialog dialog;

    Window window;
    if (parentComponent == null) {
      window = JOptionPane.getRootFrame();
    } else {
      window = (parentComponent instanceof Window)?(Window)parentComponent
        :SwingUtilities.getWindowAncestor(parentComponent);
    }

    if (window instanceof Frame) {
      dialog = new JDialog((Frame)window, title, true);
    } else {
      dialog = new JDialog((Dialog)window, title, true);
    }

    dialog.getContentPane().setLayout(new BorderLayout(10, 10));
    dialog.getContentPane().add("Center", tipPane);
    ((JComponent)dialog.getContentPane()).setBorder(BorderFactory
      .createEmptyBorder(10, 10, 10, 10));

    final JCheckBox showOnStartupBox;

    // tip controls
    JPanel controls = new JPanel(new BorderLayout());
    dialog.getContentPane().add("South", controls);

    if (choice != null) {
      showOnStartupBox = new JCheckBox(UIManager
        .getString("TipOfTheDay.showOnStartupText"), choice
        .isShowingOnStartup());
      controls.add("Center", showOnStartupBox);
    } else {
      showOnStartupBox = null;
    }

    JPanel buttons = new JPanel(new ButtonAreaLayout(9));
    controls.add("East", buttons);

    if (showPreviousButton) {
      JButton previousTipButton = new JButton(UIManager
        .getString("TipOfTheDay.previousTipText"));
      buttons.add(previousTipButton);
      previousTipButton.addActionListener(getActionMap().get("previousTip"));
    }

    JButton nextTipButton = new JButton(UIManager
      .getString("TipOfTheDay.nextTipText"));
    buttons.add(nextTipButton);
    nextTipButton.addActionListener(getActionMap().get("nextTip"));

    JButton closeButton = new JButton(UIManager
      .getString("TipOfTheDay.closeText"));
    buttons.add(closeButton);

    final ActionListener saveChoice = new ActionListener() {
      public void actionPerformed(ActionEvent e) {
        if (choice != null) {
          choice.setShowingOnStartup(showOnStartupBox.isSelected());
        }
        dialog.setVisible(false);
      }
    };

    closeButton.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent e) {
        dialog.setVisible(false);
        saveChoice.actionPerformed(null);
      }
    });
    dialog.getRootPane().setDefaultButton(closeButton);

    dialog.addWindowListener(new WindowAdapter() {
      public void windowClosing(WindowEvent e) {
        saveChoice.actionPerformed(null);
      }
    });

    ((JComponent)dialog.getContentPane()).registerKeyboardAction(saveChoice,
      KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0),
      JComponent.WHEN_IN_FOCUSED_WINDOW);

    dialog.pack();
    dialog.setLocationRelativeTo(parentComponent);

    return dialog;
  }

  public void installUI(JComponent c) {
    super.installUI(c);
    installDefaults();
    installKeyboardActions();
    installComponents();
    installListeners();

    showCurrentTip();
  }

  protected void installKeyboardActions() {
    ActionMap map = getActionMap();
    if (map != null) {
      SwingUtilities.replaceUIActionMap(tipPane, map);
    }
  }

  ActionMap getActionMap() {
    ActionMap map = new ActionMapUIResource();
    map.put("previousTip", new PreviousTipAction());
    map.put("nextTip", new NextTipAction());
    return map;
  }

  protected void installListeners() {
    changeListener = createChangeListener();
    tipPane.addPropertyChangeListener(changeListener);
  }

  protected PropertyChangeListener createChangeListener() {
    return new ChangeListener();
  }

  protected void installDefaults() {
    LookAndFeel.installColorsAndFont(tipPane, "TipOfTheDay.background",
      "TipOfTheDay.foreground", "TipOfTheDay.font");
    LookAndFeel.installBorder(tipPane, "TipOfTheDay.border");
    tipFont = UIManager.getFont("TipOfTheDay.tipFont");
    tipPane.setOpaque(true);
  }

  protected void installComponents() {
    tipPane.setLayout(new BorderLayout());

    // tip icon
    JLabel tipIcon = new JLabel(UIManager
      .getString("TipOfTheDay.didYouKnowText"));
    tipIcon.setIcon(UIManager.getIcon("TipOfTheDay.icon"));
    tipIcon.setBorder(BorderFactory.createEmptyBorder(22, 15, 22, 15));
    tipPane.add("North", tipIcon);

    // tip area
    tipArea = new JPanel(new BorderLayout(2, 2));
    tipArea.setOpaque(false);
    tipArea.setBorder(BorderFactory.createEmptyBorder(4, 4, 4, 4));
    tipPane.add("Center", tipArea);
  }

  public Dimension getPreferredSize(JComponent c) {
    return new Dimension(420, 175);
  }

  protected void showCurrentTip() {
    if (currentTipComponent != null) {
      tipArea.remove(currentTipComponent);
    }

    int currentTip = tipPane.getCurrentTip();
    if (currentTip == -1) {
      JLabel label = new JLabel();
      label.setOpaque(true);
      label.setBackground(UIManager.getColor("TextArea.background"));
      currentTipComponent = label;
      tipArea.add("Center", currentTipComponent);
      return;
    }

    // tip does not fall in current tip range
    if (tipPane.getModel().getTipCount() == 0
      || (currentTip < 0 && currentTip >= tipPane.getModel().getTipCount())) {
      currentTipComponent = new JLabel();
    } else {    
      Tip tip = tipPane.getModel().getTipAt(currentTip);

      Object tipObject = tip.getTip();
      if (tipObject instanceof Component) {
        currentTipComponent = (Component)tipObject;
      } else if (tipObject instanceof Icon) {
        currentTipComponent = new JLabel((Icon)tipObject);
      } else {
        JScrollPane tipScroll = new JScrollPane();
        tipScroll.setBorder(null);
        tipScroll.setOpaque(false);
        tipScroll.getViewport().setOpaque(false);
        tipScroll.setBorder(null);

        String text = tipObject == null?"":tipObject.toString();

        if (text.toLowerCase().startsWith("<html>")) {
          JEditorPane editor = new JEditorPane("text/html", text);
          LookAndFeelTweaks.htmlize(editor, tipPane.getFont());
          editor.setEditable(false);
          editor.setBorder(null);
          editor.setMargin(null);
          editor.setOpaque(false);
          tipScroll.getViewport().setView(editor);
        } else {
          JTextArea area = new JTextArea(text);
          area.setFont(tipPane.getFont());
          area.setEditable(false);
          area.setLineWrap(true);
          area.setWrapStyleWord(true);
          area.setBorder(null);
          area.setMargin(null);
          area.setOpaque(false);
          tipScroll.getViewport().setView(area);
        }

        currentTipComponent = tipScroll;
      }
    }
    
    tipArea.add("Center", currentTipComponent);
    tipArea.revalidate();
    tipArea.repaint();
  }

  public void uninstallUI(JComponent c) {
    uninstallListeners();
    uninstallComponents();
    uninstallDefaults();
    super.uninstallUI(c);
  }

  protected void uninstallListeners() {
    tipPane.removePropertyChangeListener(changeListener);
  }

  protected void uninstallComponents() {}

  protected void uninstallDefaults() {}

  class ChangeListener implements PropertyChangeListener {
    public void propertyChange(PropertyChangeEvent evt) {
      if (JTipOfTheDay.CURRENT_TIP_CHANGED_KEY.equals(evt.getPropertyName())) {
        showCurrentTip();
      }
    }
  }

  class PreviousTipAction extends AbstractAction {
    public PreviousTipAction() {
      super("previousTip");
    }
    public void actionPerformed(ActionEvent e) {
      tipPane.previousTip();
    }
    public boolean isEnabled() {
      return tipPane.isEnabled();
    }
  }

  class NextTipAction extends AbstractAction {
    public NextTipAction() {
      super("nextTip");
    }
    public void actionPerformed(ActionEvent e) {
      tipPane.nextTip();
    }
    public boolean isEnabled() {
      return tipPane.isEnabled();
    }
  }

}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲一区二区三区影院| 日韩一级成人av| 韩国v欧美v亚洲v日本v| 国产精品九色蝌蚪自拍| 久久精品夜色噜噜亚洲a∨| 在线精品视频免费播放| 国产成+人+日韩+欧美+亚洲| 日日噜噜夜夜狠狠视频欧美人| 久久精品这里都是精品| 欧美放荡的少妇| 91香蕉视频mp4| 国产成人综合自拍| 亚洲国产日韩a在线播放性色| 日韩一区精品视频| 日本不卡视频一二三区| 蜜乳av一区二区| 国产一区二区福利| 99久久精品免费看| 欧美最猛性xxxxx直播| 欧美日本一区二区| 精品国产百合女同互慰| 久久男人中文字幕资源站| 欧美极品xxx| 亚洲国产aⅴ成人精品无吗| 日韩高清不卡一区二区三区| 久久国产综合精品| 成人免费视频一区| 欧美天堂亚洲电影院在线播放| 欧美视频在线观看一区| 日韩视频免费直播| 欧美国产禁国产网站cc| 亚洲午夜影视影院在线观看| 美女被吸乳得到大胸91| 成人国产精品免费观看动漫| 欧美性色黄大片手机版| 久久麻豆一区二区| 亚洲成人中文在线| 国产精品自拍一区| 在线观看国产91| 久久精品夜色噜噜亚洲a∨ | 午夜激情久久久| 国产一区二区成人久久免费影院 | 国内精品嫩模私拍在线| 91麻豆免费观看| 欧美v日韩v国产v| 亚洲人成网站影音先锋播放| 蜜桃视频在线一区| 欧美在线看片a免费观看| 久久综合九色欧美综合狠狠| 亚洲高清视频在线| 波多野结衣在线aⅴ中文字幕不卡| 538在线一区二区精品国产| 国产精品区一区二区三| 蜜臀a∨国产成人精品| 欧美在线观看你懂的| 国产精品国产三级国产专播品爱网 | 国产成人精品一区二| 欧美精品乱码久久久久久按摩| 亚洲色图.com| 成人午夜视频在线| 久久久影视传媒| 另类欧美日韩国产在线| 欧美精品在线一区二区| 亚洲综合色网站| 91蝌蚪porny九色| 日韩中文字幕亚洲一区二区va在线 | 色网站国产精品| 国产婷婷色一区二区三区 | 国产麻豆一精品一av一免费 | 亚洲成a人v欧美综合天堂下载| 成人综合婷婷国产精品久久| 欧美精品一区二区三区高清aⅴ | 国产精品麻豆99久久久久久| 国产精品一区二区无线| 久久久久久久免费视频了| 理论片日本一区| 日韩视频一区在线观看| 三级欧美韩日大片在线看| 欧美日本一区二区三区四区 | 国产精品久久久久影院| 国产精品资源在线看| 久久只精品国产| 国产一区二区不卡老阿姨| 国产午夜三级一区二区三| 狠狠色丁香久久婷婷综合_中| 日韩欧美综合在线| 精品一区二区三区久久久| 久久综合999| 国产一区二区影院| 日本一区二区三区高清不卡| 国产精品一区二区不卡| 国产欧美日韩另类一区| 成人激情动漫在线观看| 国产精品乱子久久久久| 在线视频综合导航| 香蕉加勒比综合久久| 欧美电影免费提供在线观看| 国产精品自拍一区| 亚洲天堂中文字幕| 欧美日韩一级视频| 极品尤物av久久免费看| 国产精品久久久久影院老司| 欧美日韩午夜在线视频| 免费精品99久久国产综合精品| 日韩欧美一区二区三区在线| 成人激情免费视频| 婷婷开心久久网| 日本一区二区动态图| 91福利视频网站| 久草在线在线精品观看| 18欧美乱大交hd1984| 91精品国产色综合久久| 丁香激情综合国产| 视频一区国产视频| 国产精品久久夜| 91精品国产色综合久久不卡蜜臀| 国产精品99久久久久久似苏梦涵 | 老司机精品视频线观看86| 国产精品国产自产拍高清av王其| 欧美日韩大陆在线| 国产剧情一区在线| 五月天一区二区| 国产精品美女久久久久久久久| 欧美日韩国产bt| 不卡的av在线播放| 男男成人高潮片免费网站| 日韩理论在线观看| 久久色在线视频| 欧美日韩一区不卡| 色综合一区二区| 国产一区在线精品| 日本欧美一区二区三区| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆 | 麻豆极品一区二区三区| 亚洲国产精品尤物yw在线观看| 国产日韩欧美综合一区| 日韩精品一区二区三区中文精品| 91成人网在线| 99久久国产综合精品女不卡| 国产超碰在线一区| 国产美女精品在线| 免费人成黄页网站在线一区二区| 亚洲一区二区三区四区在线免费观看| 国产女人水真多18毛片18精品视频 | 亚洲成a人v欧美综合天堂下载 | 成人av网站在线观看| 国产精品一区二区在线播放| 激情欧美日韩一区二区| 三级不卡在线观看| 亚洲成人先锋电影| 亚洲一级不卡视频| 午夜精品123| 亚洲电影你懂得| 亚洲资源在线观看| 亚洲伊人色欲综合网| 一区二区三区日韩精品| 亚洲丝袜制服诱惑| 依依成人精品视频| 樱桃视频在线观看一区| 亚洲男人都懂的| 一级做a爱片久久| 亚洲一区在线视频观看| 亚洲一区二区三区小说| 无吗不卡中文字幕| 久草在线在线精品观看| 国产激情视频一区二区在线观看| 国产精品一区二区三区乱码| 国产成人在线观看免费网站| 粉嫩av一区二区三区在线播放| 国产精品 日产精品 欧美精品| 成人综合日日夜夜| 91在线观看地址| 欧美探花视频资源| 日韩精品中文字幕一区| 久久综合av免费| 亚洲特黄一级片| 天天av天天翘天天综合网| 青青草国产成人av片免费| 国产中文字幕精品| 99精品久久只有精品| 欧美日韩亚州综合| 久久伊99综合婷婷久久伊| 国产精品久久久久精k8| 亚洲资源中文字幕| 韩国av一区二区三区四区| 99久久伊人网影院| 欧美肥妇毛茸茸| 国产精品萝li| 蜜臀91精品一区二区三区 | 精品剧情v国产在线观看在线| 国产色产综合色产在线视频| 亚洲精品欧美激情| 蜜臂av日日欢夜夜爽一区| 成人亚洲一区二区一| 67194成人在线观看| 国产精品国产自产拍高清av | 成人涩涩免费视频| 欧美一区二区在线免费播放 | 欧美一级欧美三级| 国产精品色噜噜|