天天看點

java 半透明顔色_java 的按鈕半透明化

這個是我的代碼importjavax.swing.*;importjava.awt.*;importjava.awt.event.*;publicclassTestextendsJFrame{publicTest(){MyPanelmy=newMyPanel();add(my);}publicstaticvoidmain(S...

這個是我的代碼

import javax.swing.*;

import java.awt.*;

import java.awt.event.*;

public class Test extends JFrame {

public Test()

{

MyPanel my = new MyPanel();

add(my);

}

public static void main(String[] args)

{

JFrame f=new Test();

f.setSize(500, 500);

f.setVisible(true);

}

}

class MyPanel extends JPanel implements MouseListener {

private MyLabel l1;

public MyPanel()

{

setLayout(null);

}

protected void paintComponent(Graphics g) {

Image im = Toolkit.getDefaultToolkit().getImage(“back.jpg");//背景圖

g.drawImage(im, 0, 0, this);

l1 = new MyLabel(new Point(90, 10));

l1.addMouseListener(this);

add(l1);

}

public void mouseClicked(MouseEvent e) {}

public void mousePressed(MouseEvent e) {}

public void mouseReleased(MouseEvent e) {}

public void mouseEntered(MouseEvent e) {

l1.setbk();//關鍵!!不是在Point(90,10) 處添加調整Label的background

}

public void mouseExited(MouseEvent e) {

repaint();

}

}

class MyLabel extends JLabel {

private Point p;

public MyLabel(Point point) {

super("");

p = point;

setBounds(p.x, p.y, 50, 50);

setBackground(new Color(0, 0, 0, 50));

setOpaque(true);

}

public void setbk() {

setBackground(new Color(0, 0, 0, 150));

}

}

我把滑鼠放進透明label後,想要獲得目前label所在透明度更低的圖像塊,可是得到的是基于原點的像素塊,求助!!謝謝啊

展開