私はJavaコーディングで本当の初心者です。ちょっとしたプロジェクトのために、私は次のコードを手で触れないようにしたいと思います。フレームの背後にあるもの(およびその内容)をクリックすることができます。しかし、私はそれを行う方法を知らない!私はどこでも検索しましたが、何も見つかりませんでした。JFrameを無形にするにはどうすればよいですか?
import java.awt.*;
import java.swing.*;
public class swag {
static Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
public static void main(String[] args)throws Exception{
JLabel lb = new JLabel();
lb.setFont(new Font("Century Gothic",Font.PLAIN,50));
lb.setHorizontalAlignment(SwingConstants.CENTER);
lb.setForeground(Color.WHITE);
lb.setBackground(Color.BLACK);
JFrame f = new JFrame();
f.setSize(dim.width,100);
f.setDefaultCloseOperation(f.EXIT_ON_CLOSE);
f.setUndecorated(true);
f.add(lb);
f.setVisible(true);
int r=255;int g=0;int b=0;
int a=80;int t=15;
while(true){
while(true){
lb.setText((System.currentTimeMillis()+""));
f.setBackground(new Color(r--,g++,0,a));
Thread.sleep(t);
if(r==0&&g==255){break;}
} while(true){
lb.setText((System.currentTimeMillis()+""));
f.setBackground(new Color(0,g--,b++,a));
Thread.sleep(t);
if(g==0&&b==255){break;}
} while(true){
lb.setText((System.currentTimeMillis()+""));
f.setBackground(new Color(r++,0,b--,a));
Thread.sleep(t);
if(b==0&&r==255){break;}
}}}
}//class
注:JFrameとのglass paneについてはまだ効率に:)
あなたはフレームがイベントに透明にしたい場合は、私はそれが可能だとは思わないが、最高のあなたが行うことができますが、それはだならば、クリックした場所の画面を検出するために、 'java.awt.Robot'クラスを使用していますフレームの上にそれを再生するロボットを使用してください。 – 11thdimension
私はそれについて考えましたが、一度すべての青い印刷コードが出たら、私はそれをより効率的にするつもりです。私はそれがそれらのリスナーとBの多くを取ると思います。 – jazzboy
私はあなたのBが何を意味するかわかりませんが、はい、それは2リスナー、マウスとキーボードを取るだろう。私の経験では、Robotは信頼できません。ロボットをロードしたウィンドウが最小化されると、時にはそれが聞こえなくなります。最良の解決策は、C/C++で何かを実装し、それを使ってイベントを検出し、JNIでJavaでロードすることです。 – 11thdimension