在被动渲染模式中,可以使用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) 当我在Windows上进行多平台测试时,由于我在特殊的Mac自定义任务中使用了com.apple.eawt代码,因此Eclipse显示项目中的错误变得很烦人.更糟糕的是,如果我在Windows上导出一个可运行的jar,由于未解决的编译问题,它将无法在mac上运行.
让Windows Java和com.apple.eawt和平相处的最好方法是什么?我无法看到我如何能够将代码分离到jar,因为它需要访问程序的大部分状态.
我正在尝试将"首选项"菜单添加到我的Java Swing应用程序中,这证明有点令人作呕.
我已经阅读了很多关于此的帖子和文章,这听起来很简单,但......
我在我找到的示例中看到对com.apple.eawt.Application的引用但是当我尝试在Eclipse Indigo中导入它时出现错误:
访问限制:由于对所需库/系统/的限制,无法访问类型Application图书馆/的Java/JavaVirtualMachines/1.6.0.jdk /内容/班/ ui.jar
有任何想法吗?
我正在研究iMac OSX 10.6
当我按下关闭按钮时,我尝试addWindowListener并实现了windowClosing它,它有效,但当我Cmd+Q用来关闭时,windowClosing没有被调用,我该如何解决?我需要来检测Cmd+Q在Mac上,Alt + F4通过按键侦听器在Windows?这是关闭窗口的一般监听器,无论是通过关闭按钮或键盘,还是事件Ctrl+Alt+Delete或Cmd+Option+Esc聚焦杀死?谢谢.
我正在创建一个窗口,只需单击一个按钮即可关闭它.
为此,我正在使用
setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE) .
但问题是当我点击command+ 时我的Mac正在关闭那个窗口q.
这是一个代码:
package screen.saver;
import javax.swing.*;
import java.awt.*;
import java.awt.event.WindowEvent;
public class ScreenSaver {
public static void main(final String[] args) throws Exception {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
JFrame screenSaverFrame = new JFrame();
screenSaverFrame.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
screenSaverFrame.setUndecorated(true);
screenSaverFrame.setResizable(false);
JButton closeWindow = new JButton("Close window");
closeWindow.addActionListener(e -> {
screenSaverFrame.dispose();
});
screenSaverFrame.add(closeWindow, BorderLayout.CENTER);
screenSaverFrame.validate();
GraphicsEnvironment.getLocalGraphicsEnvironment()
.getDefaultScreenDevice()
.setFullScreenWindow(screenSaverFrame);
}
}
Run Code Online (Sandbox Code Playgroud) 如果你想在java for windows,mac和linux中编写桌面应用程序代码,那么所有代码的代码是否相同?
你只需更改GUI,以便Windows应用程序更像Windows,等等?
如何在不深入细节的情况下运作?
我制作了一个将数据保存到 .data 文件的 java 应用程序。我有一个窗口监听器,它监听应用程序关闭,以便触发代码将数据保存到文件中。当按下我的专用退出按钮或按下窗口上的红色“X”时,一切都很好。然而,当用户选择命令 + q 路线时,事情就会变得糟糕。应用程序退出,但数据未保存。如何正确实现苹果的handleQuit(Application Event e)方法来解决这个问题?
我试图找到一种优雅的方法,当用户关闭主应用程序窗口时,使JTable停止单元格编辑(实际取消它).我知道可以使用WindowAdapter完成这样的事情,但为了使其正常工作,我需要对窗口的引用.问题是我有时候没有它.