<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    athrunwang

    紀(jì)元
    數(shù)據(jù)加載中……
    jdk7.0 新特性
    jdk7 增加了一個JLayer,用于在控件上方繪制一個新的圖層。當(dāng)然jdk6里只要在paint里也能做到,不過新特性方便了很多,最少你可以方便的為Jdk代碼添加這些新特性。
    public class Diva {   
    public static void main(String[] args) {
    javax.swing.SwingUtilities.invokeLater(new Runnable() {
    public void run() { createUI(); } }); }
    public static void createUI() {
    JFrame f = new JFrame ("Diva"); LayerUI<JPanel> layerUI = new SpotlightLayerUI();
    JPanel panel = createPanel(); JLayer<JPanel> jlayer = new JLayer<JPanel>(panel, layerUI);
    f.add (jlayer); f.setSize(300, 200);
    f.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
    f.setLocationRelativeTo (null); f.setVisible (true); }
    private static JPanel createPanel() { JPanel p = new JPanel();
    ButtonGroup entreeGroup = new ButtonGroup(); JRadioButton radioButton;
    p.add(radioButton = new JRadioButton("Beef", true)); entreeGroup.add(radioButton);
    p.add(radioButton = new JRadioButton("Chicken")); entreeGroup.add(radioButton);
    p.add(radioButton = new JRadioButton("Vegetable")); entreeGroup.add(radioButton);
    p.add(new JCheckBox("Ketchup")); p.add(new JCheckBox("Mustard"));
    p.add(new JCheckBox("Pickles")); p.add(new JLabel("Special requests:"));
    p.add(new JTextField(20)); JButton orderButton = new JButton("Place Order");
    p.add(orderButton); return p; } }
    class SpotlightLayerUI extends LayerUI<JPanel> {
    private boolean mActive; private int mX, mY;
    @Override public void installUI(JComponent c) {
    super.installUI(c); JLayer jlayer = (JLayer)c;
    jlayer.setLayerEventMask( AWTEvent.MOUSE_EVENT_MASK | AWTEvent.MOUSE_MOTION_EVENT_MASK ); }
    @Override public void uninstallUI(JComponent c) { JLayer jlayer = (JLayer)c; jlayer.setLayerEventMask(0);
    super.uninstallUI(c); }
    @Override public void paint (Graphics g, JComponent c) { Graphics2D g2 = (Graphics2D)g.create();
    // Paint the view. super.paint (g2, c); if (mActive) {
    // Create a radial gradient, transparent in the middle.
    java.awt.geom.Point2D center = new java.awt.geom.Point2D.Float(mX, mY);
    float radius = 72; float[] dist = {0.0f, 1.0f};
    Color[] colors = {new Color(0.0f, 0.0f, 0.0f, 0.0f), Color.BLACK};
    RadialGradientPaint p = new RadialGradientPaint(center, radius, dist, colors);
    g2.setPaint(p); g2.setComposite(AlphaComposite.getInstance(
    AlphaComposite.SRC_OVER, .6f)); g2.fillRect(0, 0, c.getWidth(), c.getHeight()); }
    g2.dispose(); } @Override protected void processMouseEvent(MouseEvent e, JLayer l) {
    if (e.getID() == MouseEvent.MOUSE_ENTERED) mActive = true;
    if (e.getID() == MouseEvent.MOUSE_EXITED) mActive = false; l.repaint(); }
    @Override protected void processMouseMotionEvent(MouseEvent e, JLayer l) {
    Point p = SwingUtilities.convertPoint(e.getComponent(), e.getPoint(), l); mX = p.x; mY = p.y; l.repaint(); } }

    posted on 2011-12-28 20:38 AthrunWang 閱讀(222) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 亚洲AV无码一区二区三区国产| 久久精品国产精品亚洲蜜月| 久久综合国产乱子伦精品免费| 久久亚洲精品专区蓝色区| 国产99视频精品免费视频7| 久久综合AV免费观看| 中文无码日韩欧免费视频| 亚洲免费在线视频观看| 久久久久噜噜噜亚洲熟女综合| 丁香花在线观看免费观看| 免费国产叼嘿视频大全网站| 国产精品亚洲专一区二区三区| 亚洲天堂一区在线| 国产亚洲综合一区柠檬导航| 亚洲 综合 国产 欧洲 丝袜 | 亚洲情侣偷拍精品| 亚洲精品国产高清不卡在线| 114一级毛片免费| 国产真人无码作爱免费视频| 老牛精品亚洲成av人片| 91亚洲性爱在线视频| 亚洲AV无码精品色午夜在线观看| 亚洲熟伦熟女新五十路熟妇| 日韩免费高清视频网站| 久久久久国色AV免费观看性色 | 亚洲成人中文字幕| 亚洲中文字幕在线第六区| 免费a级毛片在线观看| 毛片免费视频在线观看| 16女性下面无遮挡免费| 中文在线免费不卡视频| 五月天婷婷免费视频| 亚洲av无码成人影院一区 | 免费看黄视频网站| 1000部拍拍拍18免费网站| 免费人妻无码不卡中文字幕系| 久久亚洲免费视频| 日韩免费无码一区二区三区 | 亚洲毛片在线免费观看| 精品免费人成视频app| 一区二区三区四区免费视频 |