我刚安装了Android Studio并启动了一个简单的应用程序。好开始是一个过度的声明,我被困在前几行,我无法导入JFrame到android工作室。
我使用LibGDX安装了最新的SDK。我仍然无法设置JFrame。我搜索了网/ youtube,但没有找到任何解决方案。
我可以在外部库中看到javax和swing但是无法导入。
任何想法我做错了什么或不做?
我不是在寻找"如何教学",我只是一个指针,我应该去寻找答案。
哇,没有大量的回应。请告知我是否提出了一个愚蠢的问题或疑问。
public hungryDog() {
JFrame jframe = new JFrame();
Timer timer = new Timer(20, this);
renderer = new Renderer();
rand = new Random();
jframe.add(renderer);
jframe.setTitle("Hungry Dog");
jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jframe.setSize(WIDTH, HEIGHT);
jframe.addMouseListener(this);
jframe.addKeyListener(this);
jframe.setResizable(false);
jframe.setVisible(true);
dog = new Rectangle(WIDTH / 2 - 10, HEIGHT / 2 - 10, 20, 20);
columns = new ArrayList<Rectangle>();
addColumn(true);
addColumn(true);
addColumn(true);
addColumn(true);
timer.start();
}
答案 0 :(得分:6)
我曾经遇到过同样的问题;这是如何解决它。 你看,我们试图在一个完全错误的环境中使用swing lib,即在Android应用程序中 。正如Scott Barta指出的那样,Android有自己的机制来实现我们想要实现的目标,这就是为什么IntelliJ不允许我们导入任何会干扰Android API的东西。 因此,在测试/调试算法时,不要使用Android应用程序,比如简单地学习如何使用Java编写代码,或者在更高级别编写代码。相反,构建一个独立的Java程序(是的,在Android Studio中)。这个主题在这里讨论:Can Android Studio be used to run standard Java projects?,“在Android Studio 0.8.6上测试 - 1.0.2”由idunnololz提供)。对此解决方案的一些澄清说明: 1)准备配置(运行|编辑配置... ),在相应的字段中使用新的Java模块名称及其主类。 2)在点击运行之前,请确保选择了相同的配置。
顺便提一下,确实有一种导入 swing库到任何Android应用程序的方法:based on http://www.youtube.com/watch?v=fHEvI_G6UtI。具体来说,为模块:应用的 build.gradle 文件添加新行:
compile files ('<path_to_your_jdk's_rt.jar>')
像这样:
compile files ('C:/Program Files/Java/jdk1.8.0_31/jre/lib/rt.jar')
注意单引号和正斜杠。然后点击同步Gradle 图标,欣赏视图。
但是,在我们的特定情况下,程序将无法运行。代码本身很干净,没有错误;如果摆动到位并连接起来,IntelliJ就不会怀疑一件事;项目将编译...但是我们将得到一个运行时错误。现在你知道为什么了。另一方面,当我们不干扰Android API时,这种方法就像魔术一样 - 我们首先不应该这样做。
这就是它的全部内容。
答案 1 :(得分:5)
你不能在Android上使用Swing。 Android有自己的UI框架,这是不同的,不支持Swing。要查看Android上支持的Java API,请查看http://developer.android.com/reference/packages.html
上的API文档答案 2 :(得分:0)
可以。除了Igor的答案,还有以下步骤:
-
按钮。implementation fileTree
。 build.gradle示例:
apply plugin: 'java-library'
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation fileTree ('/Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/jre/lib/rt.jar')
}
sourceCompatibility = "6"
targetCompatibility = "6"
现在代码完成工作正常,您甚至可以运行应用:
Add Configuration:
+
->应用程序Main Class
Use classpath of module
处:在此处选择您的Java模块(不是项目的)