站長資訊網(wǎng)
        最全最豐富的資訊網(wǎng)站

        jdk1.7的新特性

         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();
          }

        贊(0)
        分享到: 更多 (0)
        網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號
        主站蜘蛛池模板: 亚洲AV无码成人精品区狼人影院| 野狼第一精品社区| 国产高清精品在线| 亚洲av永久无码精品秋霞电影影院| 久久九九青青国产精品| 伊人 久久 精品| 国产福利精品视频自拍 | 四虎最新永久在线精品免费| 无码国产精品一区二区免费vr | 久久性精品| 日韩精品一区二区三区大桥未久| 无码精品人妻一区二区三区中| 久久国产精品偷99| 国产99久久九九精品无码| 精品精品国产自在久久高清| 老司机性色福利精品视频| 亚洲欧洲精品成人久久奇米网| 精品一区二区三区四区在线| 国产精品成人国产乱一区| 久久国产精品-久久精品| 潮喷大喷水系列无码久久精品| 无码人妻精品一区二区三区66| 亚洲精品动漫免费二区| 久久久久久久久久免免费精品| 国产精品自在线拍国产电影| 91精品国产91久久| 91精品国产综合久久香蕉 | 国内精品在线视频| 97精品国产手机| 99久久免费国产精品热| 国产精品日本一区二区在线播放| 日韩精品专区AV无码| 四虎国产成人永久精品免费| 亚洲国产av无码精品| 亚洲国产精品自在拍在线播放| 精品国产污污免费网站入口在线| 国产精品无码久久久久| 国产亚洲精品自在线观看| 精品日韩欧美国产| 免费短视频软件精品一区二区 | 国产高清日韩精品欧美激情|