JFrames 的新命令是什么?

What are the new commands for JFrames?

我学习 Java 大约 4 周以来,总能找到一些代码来复制和玩弄,这就是我的学习方式。我想用 GUI 做点什么,但我发现的一切都是从 2007 年开始的,当我复制它时,它在 eclipse 中不起作用。此外,我知道你可能不应该只是从 Internet 上复制东西,但有人可以发送一段代码(上下文无关紧要)所以我可以看到新代码是什么? 我现在拥有的代码如下所示:

package GUIs;
public class JFrame {


    public static void main(String[] args) {
        JFrame frm = new JFrame();
        frm.setTitle("JFrame mit setSize()");

         
       frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        frm.setSize(300,200);
        frm.setLocation(50,50);
        frm.setVisible(true);

    }

}

谢谢。

其中一条评论是这样说的,您的代码只有一个语法错误,不幸的是,当您从网上复制一些 java 代码时,有时该代码并不包含所有相关信息。

您的代码应该是什么样子?

package io.app.gui;
 
import javax.swing.JFrame  

public class MyFrame extends JFrame { 


    public static void main(String[] args) {
        MyFrame frm = new MyFrame();
        frm.setTitle("JFrame mit setSize()");

         
        frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frm.setSize(300,200);
        frm.setLocationRelativeTo(null);
        frm.setVisible(true);

    }

}
  1. 一般都是小写的名字
  2. 通常有Main class 和另一个扩展JFrame 的class,直接在main 中创建JFrame class 并不常见,也是因为你可以这样做自定义您的 JFrame。 Es:添加一个 JMenuBar,如果您创建一个扩展 JFrame 的 class,它看起来好多了

此外,我想补充两点。

  • Swing有了一个新的API,所以换句话说Swing在API期间没有变化,这也是好东西之一Java 一直到 java 8. Java 中的 UI 技术从 AWT 到 Swing 有一个变化,但 swing 是 AWT 的子项。

  • 如果你觉得 Swing 看起来像一个旧 App,请在网上搜索有几个不错的开源项目,它们使 Swing 更现代而不改变 API。例如 material-ui-swing 我是这个库的维护者,但网络上还有其他人