所以,我正在制作一个程序,目前只接受一个被拖放到其中的文件。目前我正在为容器使用JFrame,但我不认为这很重要。透明的JFrame始终位于顶部,但允许在底部点击
我希望窗口在运行时始终处于顶部,这样如果将任何文件拖到屏幕的右下角,程序将处理它。但是,与此同时,我希望程序能够隐形,并且可以点击通过,这意味着您可以点击jframe下方的任何内容,但是它不可见,但仍然可以将文件拖入程序而不必做任何特别的事情。
我从来没有听说过这样的事情,但我相信它一定是可能的。我将如何做到这一点?
所以,我正在制作一个程序,目前只接受一个被拖放到其中的文件。目前我正在为容器使用JFrame,但我不认为这很重要。透明的JFrame始终位于顶部,但允许在底部点击
我希望窗口在运行时始终处于顶部,这样如果将任何文件拖到屏幕的右下角,程序将处理它。但是,与此同时,我希望程序能够隐形,并且可以点击通过,这意味着您可以点击jframe下方的任何内容,但是它不可见,但仍然可以将文件拖入程序而不必做任何特别的事情。
我从来没有听说过这样的事情,但我相信它一定是可能的。我将如何做到这一点?
我在前几天做了一个启动画面,它是可点击的。您可能想使用Photoshop或其他软件制作完全透明的图像。这里是代码:
private BufferedImage splash;
/**
* Create the frame.
*/
public Splash() {
this.setUndecorated(true);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setSize(500, 500);
setLocationRelativeTo(null);
try {
splash = ImageIO.read(getClass().getResource("/images/transparent.png"));
} catch (Exception e) {
e.printStackTrace();
}
// Apply a transparent color to the background
// This is REALLY important, without this, it won't work!
setBackground(new Color(0, 255, 0, 0));
getContentPane().setBackground(Color.BLACK);
add(new JLabel(new ImageIcon(splash)));
setVisible(true);
}
看起来像Splash类应该扩展JFrame。 – 2014-12-17 18:09:51
是的,它应该。 – theTechnoKid 2014-12-17 20:44:39
我一定会试试这个,当我回家时,更新来:) :) – PulsePanda 2014-12-18 17:02:26
是什么让你说这是可能的。如果我打开一个全屏应用程序并将其关注,我将永远无法将某些东西拖放到该“JFrame”上,透明与否。 – Robin 2014-10-19 11:43:08
现在,它总是在最上面。所以只要没有人把它最小化,它总是处于顶峰。全屏游戏并不一定是这种情况,但我希望在任何时候都可以拖动文件。对我来说真正的诀窍是,让它变成可点击的。我可以只使用鼠标监听器,并在程序后面为用户点击java?而不是用户是一个点击,Java的做到这一点? – PulsePanda 2014-10-19 11:45:05
假设你可以制作一个全屏透明的'JFrame'并允许点击通过它,这意味着你点击它下面的应用程序。这会把重点放在那个应用程序上,并且通过'JFrame.alwaysOnTop(true);'把它带到前面并且把'JFrame'带到后面 – Robin 2014-10-19 11:47:51