我正在编写一个简单的2D迷宫游戏,你可以通过很多房间.我想通过限制玩家的观点来使其有点挑战.起初我想过将框架中的默认鼠标图标替换为半透明的PNG椭圆,但后来我意识到我需要阻止它周围的东西.
我能想到的唯一方法是将鼠标指针图标设置为大于框架的图像(因此当用户移动到角落时仍然是黑色时)将其填入然后放置清晰褪色的椭圆在指针区域.
我想知道的是,这是可能的,我将如何做到这一点?我正在学习java,所以示例和oracle文档对我很有帮助.提前致谢!
从这里看到这个链接(加载需要一段时间)PS:我正在使用eclipse.

我试图让一个JPanel透明,但我不能让它工作.是否有可能做到这一点?
import java.awt.*;
import javax.swing.*;
public class ClearPanel extends JPanel{
public static void main(String[] args) {
ClearPanel c = new ClearPanel();
c.setPreferredSize(new Dimension(200, 200));
c.setOpaque(false);
JPanel backPanel = new JPanel();
backPanel.setBackground(Color.CYAN);
backPanel.add(c);
JFrame f = new JFrame();
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setContentPane(backPanel);
f.pack();
f.setLocationRelativeTo(null);
f.setVisible(true);
}
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.fillOval(0, 0, 200, 200);
g.clearRect(45, 45, 50, 50);
Graphics2D g2 = (Graphics2D) g;
g2.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.0f));
g2.fillRect(75, 75, 50, 50);
}
}
Run Code Online (Sandbox Code Playgroud)
椭圆形应该是不透明的,但矩形我想要透明.透明,我的意思是我应该能够看到ClearPanel背后的面板.
关于MadProgrammer的回答,有没有办法让灰色的盒子在区域之外的地方绘制,但是在该区域内保持透明?
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g); …Run Code Online (Sandbox Code Playgroud)