gpt4 book ai didi

java - 如何使 JFrame 变得无形?

转载 作者:行者123 更新时间:2023-12-01 09:35:41 25 4
gpt4 key购买 nike

我是一个真正的java编码新手,对于一个小项目,我希望以下代码是不可触及的,例如。框架(及其内容)后面的任何内容都可以单击。但我不知道该怎么做!我到处都找过了,但什么也没找到。

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

注意:尚未研究效率:)

最佳答案

了解 glass pane JFrame 的。使用它,您可以显示 UI 组件,但阻止所有用户交互。

示例:

public class FreezePane extends JComponent {
public FreezePane() {
// trap mouse, key, and focus events
addMouseListener( new MouseAdapter() );
addMouseMotionListener( new MouseMotionAdapter() );
addKeyListener( new KeyAdapter() );
addFocusListener( new FocusListener() {
// do not let any component take focus while visible
public void focusLost(FocusEvent e) {
requestFocusInWindow();
}
public void focusGained(FocusEvent e) {}
}
}
}

然后只需设置玻璃板并使其可见。

JFrame frame = new JFrame();
frame.setGlassPane( new FreePane() );
frame.getGlassPane().setVisible(true);

关于java - 如何使 JFrame 变得无形?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38965443/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com