我试图弄清楚边界是如何工作的,特别是插图,以及搜索Java文档和众多网站我似乎无法找到明确的解释.看看这段代码:
import java.awt.AlphaComposite;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.EventQueue;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.GridBagLayout;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;
import javax.swing.border.EmptyBorder;
public class ShadowWindow {
public static void main(String[] args) {
new ShadowWindow();
}
public ShadowWindow() {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException ex) {
}
JFrame frame = new JFrame("Testing");
frame.setUndecorated(true);
frame.setBackground(new Color(0, 0, 0, 0));
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); …Run Code Online (Sandbox Code Playgroud) 我创建了一个扩展JFrame的类,默认情况下会使用它创建一个JPanel.我试过这个:
public class Main extends JFrame {
JPanel pane;
private static final long serialVersionUID = 1L;
public Main() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
int WIDTH = 500, HEIGHT = 500;
setBackground(Color.LIGHT_GRAY);
setSize(WIDTH, HEIGHT);
setTitle("Window");
setLocationRelativeTo(null);
pane = getContentPane();
}
Run Code Online (Sandbox Code Playgroud)
我正在使用Eclipse,并且它给出了一个错误,建议我转换getContentPane()为返回a JPanel,但根据我的理解,这应该是它应该返回的内容.我插入System.out.println(getContentPane());并在控制台中说它返回了一个JPanel,所以我有点困惑为什么它需要被投射.这里有什么我想念的吗?谢谢.