如何在Mac OS X上的Eclipse中使用Java Swing?
我是Mac OS X新手,正在使用10.6.5版。JDK 1.6_u22似乎已预装在系统上。我已经下载了Eclipse3.5.2 如果我创建一个简单的hello world,它可以正常工作,但我不能导入如何在Mac OS X上的Eclipse中使用Java Swing?,java,eclipse,macos,swing,configuration,Java,Eclipse,Macos,Swing,Configuration,我是Mac OS X新手,正在使用10.6.5版。JDK 1.6_u22似乎已预装在系统上。我已经下载了Eclipse3.5.2 如果我创建一个简单的hello world,它可以正常工作,但我不能导入JFrame或使用Swing。我得到的错误消息是: 访问限制:由于对所需库/System/library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Classes/Classes.jar的限制,无法访问JFrame类型 以下是我试用过的简单程序: im
JFrame
或使用Swing。我得到的错误消息是:
访问限制:由于对所需库/System/library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Classes/Classes.jar的限制,无法访问JFrame类型
以下是我试用过的简单程序:
import javax.swing.JFrame;
public class Test {
public static void main(String[] args) {
new JFrame();
}
}
如何在Mac OS X上的Eclipse中使用Java Swing?在Mac OS X 10.5.8、Eclipse 3.4.2和Xcode 3.1.4上,下面的示例使用最新版本的Java 1.5或Java 1.6构建和运行。由于Xcode包含JDK,您使用的是什么版本的MacOSX和Xcode 还要验证Swing项目是否无意中包含了SWT 附录:检查这两个对话框:
Eclipse > Preferences > Java > Build Path
Eclipse > Preferences > Java > Installed JREs
您应该看到对/System/Library/Frameworks/JavaVM.framework/
的引用
import javax.swing.*;
import java.awt.*;
import java.awt.geom.*;
public class X {
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(new JPanel() {
private final int SIZE = 200;
private final int INSET = 20;
@Override
public Dimension getPreferredSize() {
return new Dimension(SIZE, SIZE);
}
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2 = (Graphics2D) g;
g2.setColor(Color.blue);
Line2D line1 = new Line2D.Double(INSET, INSET,
getWidth() - INSET, getHeight() - INSET);
Line2D line2 = new Line2D.Double(getWidth() - INSET,
INSET, INSET, getHeight() - INSET);
g2.setStroke(new BasicStroke(16,
BasicStroke.CAP_ROUND,
BasicStroke.JOIN_BEVEL));
g2.draw(line1);
g2.draw(line2);
}
});
frame.pack();
frame.setVisible(true);
}
}
我最好的猜测是,您包含了来自Eclipse for JDK 1.6的运行时JAR文件,但Eclipse正在尝试使用JDK 1.5运行 Eclipse使用依赖于32位二进制文件的SWT。MacOSX上唯一的32位JVM是1.5,这意味着Eclipse必须使用JDK1.5运行。您可以将项目设置为使用1.5运行,并尝试使用1.6 classes.jar
换句话说,验证Eclipse是否使用正确的JVM启动应用程序。类似于@David:我不明白这个问题对我有什么帮助
JFrame
是JavaSE中的一个标准类。您发布了整个Test
类了吗?您使用的是空包还是包javas.swing代码>?@mklhmnn:是的,这是整个程序。如果我使用package com.example
,我会遇到同样的错误。不幸的是,我无法帮助您使用Eclipse,因为我使用的是真正的Java IDE:IntelliJ如果您尝试从命令行启动它会发生什么?我使用的是Xcode 3.2.5。这台计算机是全新的,我已经更新了所有软件。在Eclipse>Preferences>Java>installedjres
jvm1.4下,我选择了jvm1.6.0,并创建了一个新项目。现在它开始工作了。谢谢