【发布时间】:2017-01-04 19:28:44
【问题描述】:
在我的项目中,我有一个显示器。它的代码如下所示:
frame = new JFrame(title);
JPanel panel = new JPanel();
panel.setPreferredSize(new Dimension(width,height)); // I have it fullscreen
panel.setBorder(BorderFactory.createEmptyBorder());
panel.setLayout(new GridLayout(1,1)); // I tried this and it works like borderless/windowed fullscreen
frame.setSize(width, height);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setResizable(false);
frame.setLocationRelativeTo(null);
frame.setUndecorated(true);
frame.setLayout(new GridLayout(1,1));
frame.getContentPane().add(panel,JLayeredPane.DEFAULT_LAYER);
canvas = new Canvas();
canvas.setPreferredSize(new Dimension(width, height));
canvas.setFocusable(false);
panel.add(canvas);
frame.pack();
frame.setVisible(true);
我想要做的是,当我按下“~”时,会出现一个比方说... 50% 透明的“控制台”窗口。或者只是一个额外的图层,上面有“noClip: on; x: 153,04”等信息。
我应该如何在代码中添加它?我尝试了类似 JLayeredPane 的东西,但它似乎没有用。可能是我没看懂。
我不是在询问听众等问题。问题是“创建”这个额外的 JFrame/JPanel 或任何需要的东西的最终方法。
----更新----
按照 Programer_Serbia 的建议,我更改了代码中的一些内容。现在看起来像这样:
frame = new JFrame(title);
frame.setSize(width, height);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setResizable(false);
frame.setLocationRelativeTo(null);
frame.setUndecorated(true);
JPanel panel = new JPanel();
panel.setPreferredSize(new Dimension(width,height));
panel.setBorder(BorderFactory.createEmptyBorder());
panel.setLayout(new GridLayout(1,1));
canvas = new Canvas();
canvas.setPreferredSize(new Dimension(width, height));
canvas.setFocusable(false);
panel.add(canvas);
frame.getContentPane().add(panel);
//frame.getLayeredPane().add(panel,new Integer(0));
frame.pack();
frame.setVisible(true);
我尝试使用 frame.getLayeredPane().add(panel,new Integer(0)) 而不是 frame.getContentPane().add(panel)。它根本没有显示任何东西。有什么想法吗?
【问题讨论】:
标签: java swing jframe jpanel layer