JAVA - 创建并显示带有按钮的透明 window
JAVA - Creating and showing a transparent window with a button
我正在尝试创建一个带有一堆按钮的透明全屏叠加层。
我已经使用 JFrame 创建了叠加层,但是按钮没有显示。
package com.Flickr.firstApp;
import javax.swing.*;
import java.awt.*;
import java.util.Random;
public class MainClass {
public static void main(String... args) throws Exception {
Robot robot = new Robot();
Random random = new Random();
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
JFrame frame = new JFrame("Flow Layout");
frame.setUndecorated(true);
frame.setOpacity(0.2f);
frame.setSize(screenSize);
Panel panel = new Panel();
panel.setPreferredSize(new Dimension(100,100));
panel.setBackground(Color.MAGENTA);
JButton b1 = new JButton("hello");
panel.add(b1);
frame.add(panel);
frame.setVisible(true);
}
}
作为新手,有几个问题可以加深理解:
- 为什么按钮不显示?
- 为什么即使我将尺寸设置为 200x200,面板也会覆盖整个框架?默认情况下它会尝试填充框架吗?
- 内容是否必须放在面板中,或者我们可以将按钮等直接放在框架上吗?
如果您能回答这些问题中的任何一个,或者向我指出可以回答的资源,那就太棒了。谢谢!
按钮显示给我。它的不透明性使其难以看清。
框架内容窗格的默认布局管理器是 BorderLayout。当您不指定约束时,它被添加到 CENTER
。 CENTER 中的任何组件都会调整大小以填充框架中可用的 space。
您可以将任何组件添加到框架中。如果您直接添加按钮,那么它将调整大小以填充框架。您需要了解布局管理器的工作原理。
不要使用面板,它是一个 AWT 组件。对 Swing 使用 JPanel
。
point me towards a resource
阅读 Swing Tutorial 了解许多 Swing 基础知识。有以下部分:
- 布局管理器可视化指南
- 如何创建半透明和异形 Windows
与其他基本演示程序一起帮助您入门。
我正在尝试创建一个带有一堆按钮的透明全屏叠加层。
我已经使用 JFrame 创建了叠加层,但是按钮没有显示。
package com.Flickr.firstApp;
import javax.swing.*;
import java.awt.*;
import java.util.Random;
public class MainClass {
public static void main(String... args) throws Exception {
Robot robot = new Robot();
Random random = new Random();
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
JFrame frame = new JFrame("Flow Layout");
frame.setUndecorated(true);
frame.setOpacity(0.2f);
frame.setSize(screenSize);
Panel panel = new Panel();
panel.setPreferredSize(new Dimension(100,100));
panel.setBackground(Color.MAGENTA);
JButton b1 = new JButton("hello");
panel.add(b1);
frame.add(panel);
frame.setVisible(true);
}
}
作为新手,有几个问题可以加深理解:
- 为什么按钮不显示?
- 为什么即使我将尺寸设置为 200x200,面板也会覆盖整个框架?默认情况下它会尝试填充框架吗?
- 内容是否必须放在面板中,或者我们可以将按钮等直接放在框架上吗?
如果您能回答这些问题中的任何一个,或者向我指出可以回答的资源,那就太棒了。谢谢!
按钮显示给我。它的不透明性使其难以看清。
框架内容窗格的默认布局管理器是 BorderLayout。当您不指定约束时,它被添加到
CENTER
。 CENTER 中的任何组件都会调整大小以填充框架中可用的 space。您可以将任何组件添加到框架中。如果您直接添加按钮,那么它将调整大小以填充框架。您需要了解布局管理器的工作原理。
不要使用面板,它是一个 AWT 组件。对 Swing 使用 JPanel
。
point me towards a resource
阅读 Swing Tutorial 了解许多 Swing 基础知识。有以下部分:
- 布局管理器可视化指南
- 如何创建半透明和异形 Windows
与其他基本演示程序一起帮助您入门。