【问题标题】:How to start a new GUI form in IntelliJ IDEA?如何在 IntelliJ IDEA 中启动新的 GUI 表单?
【发布时间】:2015-07-21 08:25:48
【问题描述】:

IntelliJ IDEA 对 GUI 表单使用了不同的方法,它没有扩展 JFrame,而是将所有 GUI 代码隐藏在 .form 文件中,并在 Bound 类的 main() 中实例化表单。

例如,我在项目中有两个表单。登录和页面。

在任何其他 IDE 中,我会在使用成功登录后调用 Page.java

Page page = new Page();
page.setVisible(true);

它之所以有效,是因为 Page 扩展了 JFrame 类,因此具有 setVisible() 方法。但是如何在 Intellij 中做到这一点?

编辑: 页面.java

public class Page {
    private JButton uploadAFileButton;
    private JPanel panel1;
    private JButton downloadSelectedFileButton;
    private JButton deleteSelectedFileButton;
    private JList list1;
    private JButton refreshFileListButton;

    public static void main(String[] args) {
        JFrame frame = new JFrame("ControlForm");
        frame.setContentPane(new Page().panel1);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.pack();
        frame.setVisible(true);
    }
}

【问题讨论】:

  • “.form”文件只是基于核心 Swing 组件的 UI 表示。你的表单是从什么扩展而来的?
  • 如果使用内置表单设计器创建 gui 表单,则该表单不会从任何东西扩展。我包含了 Page.java 的源代码
  • 看起来它能够将大多数组件放入 JPanel 中,这里命名为 panel1,但我确信它允许您重命名。那么,为什么不给你的类一个getPanel1() 方法或类似的更适合你的程序命名的方法,然后以这种方式使用你的组件呢?
  • 是什么阻止你添加extends JFrame

标签: java swing user-interface intellij-idea


【解决方案1】:

如果页面类是 GUI 形式,你应该使用 JFrame 扩展它。如果不是你不能调用page.setVisible(true);。所以你的页面类应该是这样的。

public class Page extends JFrame {
    private JButton uploadAFileButton;
    private JPanel panel1;
    private JButton downloadSelectedFileButton;
    private JButton deleteSelectedFileButton;
    private JList list1;
    private JButton refreshFileListButton;
}

【讨论】:

    猜你喜欢
    • 2011-04-23
    • 2011-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-08
    相关资源
    最近更新 更多