java 7.0 特性_jdk7.0 新特性

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 layerUI = new SpotlightLayerUI();

JPanel panel = createPanel(); JLayer jlayer = new JLayer(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 {

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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值