【问题标题】:how to import javax.swing in android studio如何在 android studio 中导入 javax.swing
【发布时间】:2015-04-17 03:56:35
【问题描述】:

我刚刚设置了 Android Studio 并启动了一个简单的应用程序。好的开始是一个过度的声明,我被卡在前几行并且无法将 JFrame 导入到 android studio 中。

我安装了最新的 SDK 和 LibGDX。我仍然无法设置 JFrame。我已经搜索了net/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(); 
    } 

【问题讨论】:

  • 你得到了什么错误,是在构建时还是运行时?我怀疑我可以帮助解决问题,但就获得回复而言,您可能应该提供更多信息。我知道您的问题是关于如何导入 Swing 但一般来说没有人会在这里为您编写自定义方法。从快速搜索来看,它似乎是可能的,所以我认为你的问题太笼统了。语法和标记错误也很少
  • 我无法导入 javax.swing 或任何与 java 相关的内容。
  • 是 Java 构建路径上的 jar 文件(右键单击项目并转到属性>Java 构建路径>库)?
  • 从图像中可以看到 javax 在我的外部库中,但它旁边有一个锁符号。我猜这可能与它有关。

标签: import android-studio


【解决方案1】:

我以前也有同样的问题;这是解决方法。 你看,我们试图在完全错误的环境中使用 swing lib,即在 Android 应用程序中。正如 Scott Barta 所指出的,Android 有自己的机制来完成我们想要实现的目标,这就是 IntelliJ 不允许我们导入任何会干扰 Android API 的东西的原因。 因此,不要使用 Android 应用程序,例如,简单地学习如何用 Java 编写代码,或者在更高级的水平上测试/调试算法时。相反,构建一个独立的 Java 程序(是的,在 Android Studio 中)。此处涵盖了这个主题:Can Android Studio be used to run standard Java projects?"Tested on Android Studio 0.8.6 - 1.0.2" by idunnololz)。对此解决方案的一些澄清说明: 1) 在准备配置时(Run | Edit Configurations...),在适当的字段中使用新的 Java 模块名称及其主类。 2) 在点击 Run 之前,请确保您选择了相同的配置。

顺便说一句,确实有一种方法可以将摇摆库导入到任何 Android 应用程序中:based on http://www.youtube.com/watch?v=fHEvI_G6UtI。具体来说,在 build.gradle 文件中为您的 Module:app 添加一个新行: compile files ('&lt;path_to_your_jdk's_rt.jar&gt;') 像这样: compile files ('C:/Program Files/Java/jdk1.8.0_31/jre/lib/rt.jar') 注意单引号和正斜杠。然后点击 Sync Gradle 图标并欣赏美景。

然而,在我们的特殊情况下,程序不会运行。代码本身是干净的,不会有错误;有了 swing lib 就位并连接好,IntelliJ 不会怀疑任何事情;该项目将编译...但随后我们将收到运行时错误。现在你知道为什么了。另一方面,当我们不干扰 Android API 时,这种方法就像魔术一样工作——我们一开始就不应该这样做。

仅此而已。

【讨论】:

    【解决方案2】:

    您不能在 Android 上使用 Swing。 Android 有自己不同的 UI 框架,不支持 Swing。要了解 Android 支持哪些 Java API,请查看 API 文档http://developer.android.com/reference/packages.html

    【讨论】:

      【解决方案3】:

      是的,你可以。除了 Igor 的回答之外,还有以下步骤:

      1. 创建新的 Android Studio 项目:文件 -> 新建 -> 新建项目 -> 手机和平板电脑 -> 不添加任何活动,显然选择 Java(不是 Kotlin)作为语言。
      2. 添加新的 Java 模块:文件 -> 新建 -> 新模块 -> Java 库
      3. 删除Android模块:文件->项目结构->模块->应用,点击-按钮。
      4. 注意:可能不需要第 5 步。先尝试不使用它。
      5. 编辑你的java模块的build.gradle,并添加依赖implementation fileTree指向你需要的JRE。

      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模块(不是项目的)

      【讨论】:

      • 这是否需要任何特定版本的 android studio,或者它是否像您的回答一样最近工作?
      • 2年前用过,现在应该可以用了……试试吧,不难。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-08-15
      • 2018-10-06
      • 2023-03-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多