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

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

?? basicfontchooserui.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.JFontChooser;
import com.l2fprod.common.swing.LookAndFeelTweaks;
import com.l2fprod.common.swing.PercentLayout;
import com.l2fprod.common.swing.plaf.FontChooserUI;

import java.awt.Dimension;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.font.TextAttribute;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.util.HashMap;
import java.util.Map;
import java.util.ResourceBundle;

import javax.swing.*;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
import javax.swing.plaf.ComponentUI;

/**
 * BasicFontChooserUI. <br>
 *  
 */
public class BasicFontChooserUI extends FontChooserUI {

  public static ComponentUI createUI(JComponent component) {
    return new BasicFontChooserUI();
  }

  private JFontChooser chooser;

  private JPanel fontPanel;
  private JTextField fontField;
  private JList fontList;

  private JPanel fontSizePanel;
  private JTextField fontSizeField;
  private JList fontSizeList;

  private JCheckBox boldCheck;
  private JCheckBox italicCheck;

  private JTextArea previewPanel;

  private PropertyChangeListener propertyListener;

  public void installUI(JComponent c) {
    super.installUI(c);

    chooser = (JFontChooser)c;

    installComponents();
    installListeners();
  }

  protected void installComponents() {
    JLabel label;

    ResourceBundle bundle =
      ResourceBundle.getBundle(FontChooserUI.class.getName() + "RB");

    fontPanel = new JPanel(new PercentLayout(PercentLayout.VERTICAL, 2));
    fontPanel.add(
      label = new JLabel(bundle.getString("FontChooserUI.fontLabel")));
    fontPanel.add(fontField = new JTextField(25));
    fontField.setEditable(false);
    fontPanel.add(new JScrollPane(fontList = new JList()), "*");
    label.setLabelFor(fontList);
    label.setDisplayedMnemonic(
      bundle.getString("FontChooserUI.fontLabel.mnemonic").charAt(0));
    fontList.setVisibleRowCount(7);
    fontList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);

    String[] fontFamilies = chooser.getModel().getFontFamilies(null);
    fontList.setListData(fontFamilies);

    fontSizePanel = new JPanel(new PercentLayout(PercentLayout.VERTICAL, 2));

    fontSizePanel.add(
      label = new JLabel(bundle.getString("FontChooserUI.styleLabel")));
    fontSizePanel.add(
      boldCheck = new JCheckBox(bundle.getString("FontChooserUI.style.bold")));
    fontSizePanel.add(
      italicCheck =
        new JCheckBox(bundle.getString("FontChooserUI.style.italic")));
    boldCheck.setMnemonic(
      bundle.getString("FontChooserUI.style.bold.mnemonic").charAt(0));
    italicCheck.setMnemonic(
      bundle.getString("FontChooserUI.style.italic.mnemonic").charAt(0));

    fontSizePanel.add(
      label = new JLabel(bundle.getString("FontChooserUI.sizeLabel")));

    label.setDisplayedMnemonic(
      bundle.getString("FontChooserUI.sizeLabel.mnemonic").charAt(0));

    fontSizePanel.add(fontSizeField = new JTextField());
    label.setLabelFor(fontSizeField);
    fontSizePanel.add(new JScrollPane(fontSizeList = new JList()), "*");
    
    int[] defaultFontSizes = chooser.getModel().getDefaultSizes();
    String[] sizes = new String[defaultFontSizes.length];
    for (int i = 0, c = sizes.length; i < c; i++) {
      sizes[i] = String.valueOf(defaultFontSizes[i]);
    }
    fontSizeList.setListData(sizes);
    fontSizeList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
    fontSizeList.setVisibleRowCount(2);

    chooser.setLayout(LookAndFeelTweaks.createBorderLayout());
    JPanel panel = new JPanel();
    panel.setLayout(LookAndFeelTweaks.createHorizontalPercentLayout());
    panel.add(fontPanel, "*");
    panel.add(fontSizePanel);
    chooser.add("Center", panel);

    previewPanel = new JTextArea();
    previewPanel.setPreferredSize(new Dimension(100, 40));
    previewPanel.setText(chooser.getModel().getPreviewMessage(null));
    JScrollPane scroll = new JScrollPane(previewPanel);
    chooser.add("South", scroll);
  }

  protected void installListeners() {
    SelectedFontUpdater listener = new SelectedFontUpdater();
    fontList.addListSelectionListener(listener);
    fontSizeList.addListSelectionListener(listener);
    fontSizeField.getDocument().addDocumentListener(listener);
    boldCheck.addActionListener(listener);
    italicCheck.addActionListener(listener);

    propertyListener = createPropertyChangeListener();
    chooser.addPropertyChangeListener(
      JFontChooser.SELECTED_FONT_CHANGED_KEY,
      propertyListener);
  }

  public void uninstallUI(JComponent c) {
    chooser.remove(fontPanel);
    chooser.remove(fontSizePanel);

    super.uninstallUI(c);
  }

  public void uninstallListeners() {
    chooser.removePropertyChangeListener(propertyListener);
  }

  protected PropertyChangeListener createPropertyChangeListener() {
    return new PropertyChangeListener() {
      public void propertyChange(PropertyChangeEvent evt) {
        updateDisplay();
      }
    };
  }

  private void updateDisplay() {
    Font selected = chooser.getSelectedFont();
    if (selected != null) {
      previewPanel.setFont(selected);
      fontList.setSelectedValue(selected.getName(), true);
      fontSizeField.setText(String.valueOf(selected.getSize()));
      fontSizeList.setSelectedValue(String.valueOf(selected.getSize()), true);
      boldCheck.setSelected(selected.isBold());
      italicCheck.setSelected(selected.isItalic());
    }
  }

  private void updateSelectedFont() {
    Font currentFont = chooser.getSelectedFont();
    String fontFamily =
      currentFont == null ? "SansSerif" : currentFont.getName();
    int fontSize = currentFont == null ? 11 : currentFont.getSize();

    if (fontList.getSelectedIndex() >= 0) {
      fontFamily = (String)fontList.getSelectedValue();
    }

    if (fontSizeField.getText().trim().length() > 0) {
      try {
        fontSize = Integer.parseInt(fontSizeField.getText().trim());
      } catch (Exception e) {
        // ignore the NumberFormatException
      }
    }

    Map attributes = new HashMap();
    attributes.put(TextAttribute.SIZE, new Float(fontSize));
    attributes.put(TextAttribute.FAMILY, fontFamily);
    if (boldCheck.isSelected()) {
      attributes.put(TextAttribute.WEIGHT, TextAttribute.WEIGHT_BOLD);
    }
    if (italicCheck.isSelected()) {
      attributes.put(TextAttribute.POSTURE, TextAttribute.POSTURE_OBLIQUE);
    }

    Font font = Font.getFont(attributes);
    if (!font.equals(currentFont)) {
      chooser.setSelectedFont(font);
      previewPanel.setFont(font);
    }
  }

  private class SelectedFontUpdater
    implements ListSelectionListener, DocumentListener, ActionListener {
    public void valueChanged(ListSelectionEvent e) {
      if (fontList == e.getSource() && fontList.getSelectedValue() != null) {
        fontField.setText((String)fontList.getSelectedValue());
      }
      if (fontSizeList == e.getSource()
        && fontSizeList.getSelectedValue() != null) {
        fontSizeField.setText((String)fontSizeList.getSelectedValue());
      }
      updateSelectedFont();
    }
    public void changedUpdate(DocumentEvent e) {
      updateLater();
    }
    public void insertUpdate(DocumentEvent e) {
      updateLater();
    }
    public void removeUpdate(DocumentEvent e) {
      updateLater();
    }
    public void actionPerformed(ActionEvent e) {
      updateLater();
    }
    void updateLater() {
      SwingUtilities.invokeLater(new Runnable() {
        public void run() {
          updateSelectedFont();
        }
      });
    }
  }

}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一区二区三区日韩视频| 亚洲成av人影院| 亚洲国产中文字幕在线视频综合 | 国产欧美精品一区| 亚洲一区二区三区视频在线播放| 激情综合色播激情啊| 91久久线看在观草草青青| 久久综合成人精品亚洲另类欧美 | 国产精品日韩成人| 人妖欧美一区二区| 欧美三级三级三级| 亚洲欧洲一区二区三区| 国产寡妇亲子伦一区二区| 欧美高清视频不卡网| 亚洲日本va午夜在线影院| 国产99一区视频免费| 精品乱码亚洲一区二区不卡| 一个色在线综合| 91影院在线免费观看| 国产婷婷色一区二区三区 | 亚洲美女精品一区| av电影天堂一区二区在线观看| 日韩一区二区三区视频在线| 亚洲a一区二区| 在线看日本不卡| 亚洲精品亚洲人成人网| 波多野结衣的一区二区三区| 国产欧美日韩综合| 国产精品99久久久久| 欧美xxxxxxxxx| 美女www一区二区| 日韩亚洲欧美在线| 美女在线观看视频一区二区| 欧美区在线观看| 亚洲444eee在线观看| 欧洲精品视频在线观看| 一区二区三区在线影院| 91污在线观看| 亚洲最大的成人av| 欧美日韩精品三区| 日产国产高清一区二区三区| 欧美精品色一区二区三区| 香蕉乱码成人久久天堂爱免费| 欧美视频在线不卡| 日韩国产欧美一区二区三区| 欧美一区二区三区小说| 激情综合网av| 国产欧美精品一区二区三区四区 | 国产精品自产自拍| 国产午夜精品久久久久久久| 成人黄色免费短视频| 亚洲欧美在线视频观看| 欧美日韩一区二区三区四区 | 亚洲综合色视频| 91精品国产综合久久小美女| 久久国产精品无码网站| 国产三级精品三级在线专区| eeuss影院一区二区三区 | 免费精品视频最新在线| 久久精品视频在线看| 99久久久久久| 免费在线观看一区二区三区| 久久亚洲精华国产精华液| 国产 日韩 欧美大片| 一区二区免费看| 精品av久久707| 色哟哟在线观看一区二区三区| 天天综合日日夜夜精品| 久久精品视频一区| 欧美私人免费视频| 精品一区二区在线观看| 亚洲综合偷拍欧美一区色| 欧美刺激午夜性久久久久久久| eeuss鲁片一区二区三区在线观看| 午夜精品久久久久久久久久久| 久久久99久久精品欧美| 欧美日韩亚洲高清一区二区| 国产suv精品一区二区6| 午夜精品视频在线观看| 国产精品久久久久久久久免费樱桃 | 欧美国产精品一区二区| 欧美精选一区二区| av电影天堂一区二区在线观看| 美女视频一区二区三区| 亚洲欧美一区二区久久| 日韩欧美一区二区在线视频| 色综合久久六月婷婷中文字幕| 狠狠色丁香久久婷婷综合丁香| 亚洲一区在线观看免费| 国产精品高潮呻吟久久| 精品福利av导航| 欧美性一区二区| 9i看片成人免费高清| 国模娜娜一区二区三区| 五月婷婷久久丁香| 亚洲综合视频网| 亚洲日本在线a| 国产精品毛片a∨一区二区三区| 日韩三级免费观看| 在线播放中文字幕一区| 色偷偷一区二区三区| 成人免费三级在线| 国产大片一区二区| 韩国一区二区三区| 免费久久精品视频| 日韩av电影免费观看高清完整版 | 成人免费视频网站在线观看| 国产美女一区二区三区| 亚洲国产精品影院| 亚洲综合色网站| 亚洲二区在线观看| 亚洲图片有声小说| 亚洲成a人v欧美综合天堂| 亚洲一区二区精品久久av| 综合电影一区二区三区 | 久久精品男人的天堂| 久久你懂得1024| 国产午夜精品美女毛片视频| 国产欧美日韩视频在线观看| 久久综合久久综合久久| 337p粉嫩大胆噜噜噜噜噜91av| 欧美xxxx老人做受| 久久久综合视频| 久久精子c满五个校花| 国产精品天美传媒沈樵| 国产精品久久久久久福利一牛影视 | 午夜激情一区二区| 视频在线观看一区| 免费在线观看一区| 国产伦精品一区二区三区在线观看| 激情六月婷婷久久| 国产成人自拍网| 一本一道综合狠狠老| 欧美亚洲国产一区二区三区| 欧美日韩在线播放三区四区| 欧美一区二区观看视频| 国产校园另类小说区| 亚洲国产精品成人综合| 亚洲男同1069视频| 水野朝阳av一区二区三区| 国产在线视视频有精品| 成人av动漫网站| 欧美亚洲动漫制服丝袜| 欧美一区二区三区在线| 国产精品美女久久久久久久网站| 亚洲欧美日韩精品久久久久| 午夜婷婷国产麻豆精品| 国产乱码字幕精品高清av| 91香蕉视频mp4| 日韩三级视频中文字幕| 中文字幕一区免费在线观看| 丝袜美腿亚洲一区二区图片| 国产99精品国产| 欧美日韩五月天| 中文字幕欧美区| 日韩不卡免费视频| 99视频一区二区三区| 日韩欧美精品在线视频| 亚洲同性同志一二三专区| 久久精品99国产精品日本| 在线中文字幕不卡| 26uuu亚洲综合色| 午夜视频一区二区三区| 成人综合日日夜夜| 欧美日韩不卡在线| 中文字幕一区二区三区四区 | 午夜在线成人av| 成人av影视在线观看| 日韩色在线观看| 亚洲电影中文字幕在线观看| 国产成人日日夜夜| 91精品国产一区二区| 亚洲欧美日韩综合aⅴ视频| 国内精品第一页| 日韩三级伦理片妻子的秘密按摩| 亚洲精品日日夜夜| 成人激情视频网站| 久久免费偷拍视频| 蜜桃91丨九色丨蝌蚪91桃色| 欧美日韩一级片网站| 亚洲视频资源在线| 国产成人亚洲综合a∨婷婷图片| 欧美一区二区三区四区五区| 亚洲最大成人网4388xx| 97国产精品videossex| 国产精品全国免费观看高清 | 在线视频欧美精品| 亚洲欧美在线视频| av在线不卡电影| 国产精品你懂的| 成人一区二区三区在线观看| 久久精品网站免费观看| 国产一区二区三区免费看| 日韩欧美国产综合一区| 蜜臀av性久久久久蜜臀aⅴ四虎| 欧美性色黄大片| 亚洲一区国产视频| 欧美三级三级三级| 视频一区二区中文字幕| 91精品国产综合久久精品 |