我如何(本机地)在Java应用程序中实现OSX Lion的全屏功能?
目前给出的答案包含了实现全屏排序功能的好方法.我已经读过Eclipse可能能够使用Lion的"原生"全屏功能.这就是我要问的问题.
在被动渲染模式中,可以使用KeyListener和ActionListener接口来处理来自用户的事件.
全屏模式下事件处理的正确方法是什么?请扩展此骨架,提供鼠标点击和按键事件的实现,请不要膨胀您的示例(示例启动全屏独占模式,使用Timer更新窗口中的图形):
import java.applet.Applet;
import java.awt.Color;
import java.awt.DisplayMode;
import java.awt.Graphics2D;
import java.awt.GraphicsConfiguration;
import java.awt.GraphicsDevice;
import java.awt.GraphicsEnvironment;
import java.awt.Rectangle;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.image.BufferStrategy;
import javax.swing.JFrame;
import javax.swing.Timer;
public class applet extends Applet
{
Timer timer;
JFrame frame;
DisplayMode[] displayModes = new DisplayMode[] {
new DisplayMode(1280, 800, 32, 60)
};
BufferStrategy bufferStrategy;
Rectangle bounds;
/**
*
*/
private static final long serialVersionUID = 1L;
/**
* @param args
*/
public void init()
{
GraphicsEnvironment …Run Code Online (Sandbox Code Playgroud) 我一直在验证在mac osx的applet上运行的swing应用程序.
在此验证期间,我发现模式对话框存在以下问题:
所以我创建了一个小程序来显示问题.你能帮我理解这里有什么问题吗?
package com.macosx.tests;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class DialogExample extends JApplet{
private static final long serialVersionUID = 1L;
private JPanel panel;
private JButton openDialogBtn;
private void doStart() {
panel = new JPanel();
panel.setPreferredSize(new Dimension(500,500));
openDialogBtn = new JButton("open dialog");
openDialogBtn.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent arg0) {
ModalDialog dialog = new ModalDialog(panel, true);
dialog.setVisible(true);
}
});
panel.add(openDialogBtn);
setContentPane(panel);
}
class ModalDialog extends JDialog {
private static final long serialVersionUID = …Run Code Online (Sandbox Code Playgroud) Apple的Java,在我的机器上的第6版,有一个类com.apple.eawt.CocoaComponent用于将AWT/Swing应用程序连接到Cocoa组件.示例用法:在Java应用程序中显示AudioUnit的UI(这是一个Cocoa视图).我想使用Java 7,但我找不到这个类.有人知道它在哪里吗?或者,如果有替代方案?
编辑2013年1月16日:原始问题已被删除.这似乎是mac OSX上JDK 7的一个错误.我已经向Sun(Oracle)提交了一份错误报告.
下面的文件使用awt类GraphicsEnvironment和方法setFullScreenWindow将图像显示为全屏.没有包含图像,因此运行代码时屏幕将显示为灰色.但是,密钥绑定仍然有效.
有两个键绑定.按"ENTER"键应打印"按下Enter键".到stdout.按"ESCAPE"应该将"ESC Key终止的程序"打印到stdout并退出程序.
使用Windows 7 64和JDK Java SE 6和7,这些键绑定按预期工作.
使用Mac OSX 10.7 Lion和JDK Java SE 6,这些键绑定按预期工作.
使用Mac OSX 10.7 Lion和JDK Java SE 7,这些键绑定将停止工作.
回滚到JDK Java SE 6会使它们重新开始工作.
我不知道它是否会影响其他操作系统.
我已经尝试了所有版本的JComponent.WHEN_IN_FOCUS等......并且这些选项都没有解决问题.
下面是SSCCE,只有在使用Mac OSX 10.7和JDK Java SE 7时才会重现错误.
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class FullScreen extends JFrame
{
/*
* screenImage is never set in this code. It can be set to any image
* the error will still be present. Images have been …Run Code Online (Sandbox Code Playgroud) java ×5
macos ×4
fullscreen ×2
swing ×2
applet ×1
awt ×1
cocoa ×1
key-bindings ×1
keyboard ×1
modal-dialog ×1
mouse ×1
osx-lion ×1