我试图让一个基本的Swing应用程序在我的MacOSX10.8.2 (Java 1.6.0_37)机器上运行,每次我试图从Eclipse中运行它时,都会出现框架,但我无法与它交互。
我尝试从一个基本的、干净的面板开始,在中创建一个新的Swing应用程序窗口项目。这将生成以下框架代码:
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 )
发布于 2012-11-09 19:54:40
在OSX下,这个程序在我的机器上运行得很好,但是它可能是丢失的。
window.frame.pack();你试过这个吗?
Test window = new Test();
window.frame.pack();
window.frame.setVisible(true);发布于 2013-03-06 21:49:30
在我的应用程序中使用DJ库(它使用SWT)时,我也遇到了同样的问题。有趣的是,即使我没有显式地初始化DJ Swing,问题还是发生了。它现在起作用了,因为我添加了DJ Swing初始化:
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();
}
}发布于 2012-11-09 19:42:18
在10.6之后,苹果不再支持is操作系统中的Java:
苹果公司没有承诺在MacOSX10.7中支持Java
似乎缺少或不兼容JRE中的库文件。
https://stackoverflow.com/questions/13314731
复制相似问题