首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Swing应用程序窗口在Mac上没有响应

Swing应用程序窗口在Mac上没有响应
EN

Stack Overflow用户
提问于 2012-11-09 19:33:51
回答 6查看 5.3K关注 0票数 1

我试图让一个基本的Swing应用程序在我的MacOSX10.8.2 (Java 1.6.0_37)机器上运行,每次我试图从Eclipse中运行它时,都会出现框架,但我无法与它交互。

我尝试从一个基本的、干净的面板开始,在中创建一个新的Swing应用程序窗口项目。这将生成以下框架代码:

代码语言:javascript
复制
import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JButton;
import java.awt.BorderLayout;

public class Test {

private JFrame frame;

/**
 * Launch the application.
 */
public static void main(String[] args) {
    EventQueue.invokeLater(new Runnable() {
        public void run() {
            try {
                Test window = new Test();
                window.frame.setVisible(true);
                window.frame.pack();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    });
}

/**
 * Create the application.
 */
public Test() {
    initialize();
}

/**
 * Initialize the contents of the frame.
 */
private void initialize() {
    frame = new JFrame();
    frame.setBounds(100, 100, 450, 300);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    JButton btnPress = new JButton("Press");
    frame.getContentPane().add(btnPress, BorderLayout.CENTER);
}

}

一切似乎都很好,但是当我在Eclipse上运行时,框架不允许我与任何组件交互(在我的非示例代码中,有按钮和选项卡)。

此外,在控制台中,我看到了如下内容:

2012-11-09 14:30:27.624 java[8107:707] [Java CocoaComponent compatibility mode]: Enabled

2012-11-09 14:30:27.626 java[8107:707] [Java CocoaComponent compatibility mode]: Setting timeout for SWT to 0.100000

有什么特定于Mac的设置需要我去修改吗?(我使用的是最新默认的Mac )

EN

回答 6

Stack Overflow用户

发布于 2012-11-09 19:54:40

在OSX下,这个程序在我的机器上运行得很好,但是它可能是丢失的。

代码语言:javascript
复制
window.frame.pack();

你试过这个吗?

代码语言:javascript
复制
Test window = new Test();
window.frame.pack();
window.frame.setVisible(true);
票数 1
EN

Stack Overflow用户

发布于 2013-03-06 21:49:30

在我的应用程序中使用DJ库(它使用SWT)时,我也遇到了同样的问题。有趣的是,即使我没有显式地初始化DJ Swing,问题还是发生了。它现在起作用了,因为我添加了DJ Swing初始化:

代码语言:javascript
复制
public class SwingAppTest {

    public static void main(String[] args) {

        NativeInterface.open();
        UIUtils.setPreferredLookAndFeel();

        SwingUtilities.invokeLater(new Runnable() {

            public void run() {
                JFrame frame = new JFrame("Example");
                frame.getContentPane().setLayout(new BorderLayout());
                frame.setPreferredSize(new Dimension(400, 200));
                frame.setBounds(0,0,200,200);
                frame.setTitle("blah");
                JButton blah = new JButton("blah");
                blah.addActionListener(new ActionListener() {

                    public void actionPerformed(ActionEvent e) {
                        System.out.println("button clicked");
                    }
                });
                frame.getContentPane().add(blah, BorderLayout.CENTER);
                frame.setVisible(true);
            }
        });

        NativeInterface.runEventPump();
    }

}
票数 1
EN

Stack Overflow用户

发布于 2012-11-09 19:42:18

在10.6之后,苹果不再支持is操作系统中的Java:

苹果公司没有承诺在MacOSX10.7中支持Java

似乎缺少或不兼容JRE中的库文件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13314731

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档