반투명 JPanel을 만들고 싶습니다. 단순히 색상 생성자의 RGBA 값을 사용하여이 작업을 수행했지만 문제는 이벤트 처리를 사용하여 제대로 woking하지 않는 경우입니다. 내 요구 사항은 반투명 Jpanel입니다. 마우스가 들어가면이 패널의 경계가 보이게되고 마우스가 경계를 벗어나면 소리가 보이지 않습니다. 나는이 코드를 따르지 만 문제는 투명 배경색 (RGBA)에 대해서는 제대로 작동하지 않지만 RGB 색상에는 문제가 없다.투명한 JPanel
import javax.swing.*;
import javax.swing.border.*;
import java.awt.*;
import java.awt.event.*;
public class MDCW extends JFrame {
private JPanel contentPane;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
MDCW frame = new MDCW();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public MDCW() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 1013, 551);
contentPane = new JPanel();
contentPane.setBackground(new Color(0, 139, 139));
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
final JPanel panel = new JPanel();
panel.setBackground(new Color(0, 0, 0,50));
panel.addMouseListener(new MouseAdapter() {
@Override
public void mouseEntered(MouseEvent e) {
panel.setBorder(new LineBorder(new Color(255, 255, 255), 5));
}
@Override
public void mouseExited(MouseEvent e) {
panel.setBorder(null);
}
});
panel.setBounds(360, 155, 215, 215);
contentPane.add(panel);
final JPanel panel_1 = new JPanel();
panel_1.setBackground(new Color(0, 0, 0));
panel_1.addMouseListener(new MouseAdapter() {
@Override
public void mouseEntered(MouseEvent e) {
panel_1.setBorder(new LineBorder(new Color(255, 255, 255), 5));
}
@Override
public void mouseExited(MouseEvent e) {
panel_1.setBorder(null);
}
});
panel_1.setBounds(84, 155, 215, 215);
contentPane.add(panel_1);
}
}
이를 발견하기 전에이 개 우리에 대한 수색해야합니다! 왜 오, 왜 jpanel은 JFrame과 같은 setOpacity 메소드를 사용할 수 없습니까? –