我很快就会做一个项目,我将不得不使用全屏模式.
它将在窗口中绘制一些图形.如果我使用JFrame或类似的东西,它会很方便.
我不知道屏幕的最终分辨率是多少.请告诉我图片是否会自动重新缩放?
JFrame jf = new JFrame();
jf.setSize(1650,1080);
//make it fullscreen;
//now is everything is going to be rescaled so it looks like the original?
Run Code Online (Sandbox Code Playgroud) Update 12/21:
7u10 was recently released. Confirmed that:
Update 11/7:
And we have a workaround!
Well, although I'm not 100% sure yet, but it looks like when we enter full screen some other window becomes the first responder, hence the beep. Could you please try the following workaround: after calling setFullScreenWindow() on a …
在确信("受过教育")Mac上的Swing应用程序确实看起来很原生之后,我试图让我的外观尽可能本地化.一切看起来都很棒,但当我点击command+ Q或从菜单中执行此操作时,windowStateChanged(WindowEvent e)我的主要JFrame没有触发(如果我以任何其他方式退出,它会触发).我如何回应真正的Apple退出?
在我的Java应用程序中,我尝试使用以下代码使JFrame真正全屏:
public class MainFrame extends JFrame {
private static final long serialVersionUID = 1L;
public MainFrame() {
super();
this.setTitle();
this.setUndecorated(true);
this.setExtendedState(JFrame.MAXIMIZED_BOTH);
this.setVisible(true);
//this.pack();
}
}
Run Code Online (Sandbox Code Playgroud)
但在我的Mac上,我仍然可以看到Dock和OSX的顶部工具栏.那么如何创建一个真正消耗整个屏幕的JFrame呢?
编辑 我必须补充一点,我想从eclipse插件中调用那个JFrame.
可能重复:
Java全屏模式无法在Ubuntu上运行
我尝试做100%全屏模式,我使用Ubuntu 12.10,左边是侧栏,顶部是菜单.当我运行全屏模式时,它不会掩盖这两个菜单栏,它就在它们旁边:

它应该覆盖左侧菜单栏和顶部黑条.为什么不呢?
package sscce;
import java.awt.GraphicsDevice;
import java.awt.GraphicsEnvironment;
import javax.swing.JFrame;
public class Main extends JFrame{
public Main(){
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
GraphicsDevice myDevice = ge.getDefaultScreenDevice();
this.setUndecorated(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
myDevice.setFullScreenWindow(this);
}
public static void main(String[] args){
Main main = new Main();
}
}
Run Code Online (Sandbox Code Playgroud) 有谁知道如何使jbutton关闭gui?我认为这样System.CLOSE(0);但是没有用.它也可能exitActionPerformed(evt);,但这也不起作用.只需要代码行就可以了.
编辑:别介意的人.答案是System.exit(0);.谢谢你的帮助!
我正在研究一个项目,我想在按钮上设置助记符.但问题是助记符在配对关键示例(Alt+ F)等方面起作用.但我希望它在单键上.
我目前正在开发一个自助服务终端风格的Java程序来显示天气,时间,预测等.这是一个程序应该是什么样子的镜头(在更新时间之前拍摄的截图)

各个部分创建为JPanels,并paintComponent()重写了方法.它们绘制渐变标题和半透明背景.但是,当我更改其中一个面板的内容时,之前的内容会被遗忘,而不是被删除.一个例子如下所示:
如你所见,当时间从11:51变为11:52时,数字重叠,背景变得更亮(因为半透明背景被重新绘制)

我该怎么做才能防止这种重叠?最终,当单个面板更新其内容时,我宁愿不必重绘整个屏幕.我宁愿只重绘那个特定的部分.重新绘制背景,然后是其中的所有组件将很容易.
几个答案涉及清除要绘制的区域.我是否使用g.clear()或AlphaComposite.CLEAR删除背景图像.这可以在下图中看到.也许如果我可以在清除区域之前复制背景,我可以重新绘制背景的那一部分,然后适当地分层其他图像.思考?

提交了一个答案,其中显示了在透明面板和背景上放置的计时器的完整工作示例.这非常有用,但是,我不是手动绘制我的子组件.时间,天气图标和温度都是JLabel布局在半透明面板上.我宁愿不必手动绘制单个组件.
我正在尝试使用我的JPanel类中的KeyListener按下其中一个箭头键时执行某些操作.这是我的代码:
public class TestPanel extends JPanel implements KeyListener{
public TestPanel(){
this.addKeyListener(this);
this.setFocusable(true);
this.requestFocusInWindow();
}
public void keyPressed(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_RIGHT) {
System.out.println("Right");
}
if (e.getKeyCode() == KeyEvent.VK_LEFT) {
System.out.println("Left");
}
}
public void keyTyped(KeyEvent e) {}
public void keyReleased(KeyEvent e) {}
}
Run Code Online (Sandbox Code Playgroud)
我的main方法将一个新面板实例添加到一个框架并显示它.我需要将keylistener添加到JFrame吗?在我的情况下,这将是困难和低效的,所以如果可能的话,我想让它与这个JPanel一起工作.谁知道我做错了什么?
编辑:键绑定代码不起作用:
public class GamePanel extends JPanel implements ActionListener{
//Constructor
public GamePanel(){
setupKeyBinding();
this.setFocusable(true);
this.requestFocusInWindow();
}
private void setupKeyBinding() {
int condition = JComponent.WHEN_IN_FOCUSED_WINDOW;
InputMap inMap = getInputMap(condition);
ActionMap actMap = getActionMap();
inMap.put(KeyStroke.getKeyStroke(KeyEvent.VK_LEFT, 0), "Left"); …Run Code Online (Sandbox Code Playgroud) 所以我正在使用Ubuntu,当我想在Java中进入全屏模式时,会出现一个普通窗口,其中包含最大屏幕尺寸,而不是没有标题栏等的全屏窗口.我承认,我甚至不确定全屏模式应该是什么看起来像Java,因为我没有在任何其他操作系统上尝试过.但我认为它应该是没有标题栏的屏幕.有这个问题的其他人吗?
这是我使用的代码.; 很直接.
public static void main(String[] args) {
GraphicsEnvironment env = GraphicsEnvironment
.getLocalGraphicsEnvironment();
GraphicsDevice vc = env.getDefaultScreenDevice();
JFrame window = new JFrame();
window.setUndecorated(false);
window.setResizable(false);
vc.setFullScreenWindow(window);
}
Run Code Online (Sandbox Code Playgroud) java ×10
swing ×9
fullscreen ×4
jbutton ×2
jframe ×2
macos ×2
key-bindings ×1
keylistener ×1
repaint ×1
transparency ×1
ubuntu ×1