当前位置: 首页 > 知识库问答 >
问题:

如何创建在摆GUI java文件类中制作的类的对象

郜谦
2023-03-14

这是我主页的代码。我在其中创建了LoginPageService类的对象以调用其方法的java文件。

public class HomePage extends javax.swing.JFrame {
    CardLayout cl;
    private LoginPageService service;

    /**
    * Creates new form trial
    */
    public HomePage() {
        initComponents();
        cl = (CardLayout) (jPanel6.getLayout());
        service = new LoginPageService();
        JTable jTable = service.getScheduledLectureList(jTable1, ScheduleLecture.class);
        jTable.setRowHeight(45);
        jTable.getColumnModel().getColumn(0).setPreferredWidth(1);
        JTableHeader tableHeader = jTable.getTableHeader();
        tableHeader.setBackground(new java.awt.Color(119, 124, 168));
        tableHeader.setForeground(Color.black);
        Font headerFont = new Font("Verdana", Font.PLAIN, 19);
        tableHeader.setFont(headerFont);
    }

    private void jLabel26MouseClicked(java.awt.event.MouseEvent evt) {                                    
        service = new LoginPageService();
        String id = getId1().getText();
        char ch[] = getPassword1().getPassword();
        String password = new String(ch);
        String value = (String) jComboBox2.getSelectedItem();

        Boolean result = service.checkCredential(id, password, value);
        if (result == true) {
            JOptionPane.showMessageDialog(this, "Welcome " + id);
            if ("Student".equals(value)) {
                new SignInAsStudent().setVisible(true);
                dispose();
            }
            if ("Instructor".equals(value)) {
                new main.java.com.lecture_backup.view.SignInAsInstructor().setVisible(true);
                dispose();
            }
        } else {
            JOptionPane.showMessageDialog(this, "Invalid Id or Password");
            getPassword1().setText("");
            getId1().setText("");
        }
    }
}

你能告诉我这是先声明引用对象私有变量,然后在各自的方法中实例化它以调用LoginPageService类的方法的正确方法吗?

共有1个答案

卓正业
2023-03-14

实例变量(在类内部和外部方法中声明)与它们自己的引用一起保存在每个对象中。除非您需要跨同一类的多个方法对实例变量进行引用,否则您可以单独在本地(需要时在方法内部)声明它。

由于您只使用了一次,并且没有进一步的引用(就代码段中显示的内容而言),因此可以按如下方式将其移动到本地:

    public class HomePage extends javax.swing.JFrame {
    ...
    // private LoginPageService service; // remove this
    ...
    //service = new LoginPageService(); // remove this
    ...
    JTable jTable = new LoginPageService().getScheduledLectureList(jTable1, ScheduleLecture.class);
   
    ...                                     
    //service = new LoginPageService(); // remove this
    ...
    Boolean result = new LoginPageService().checkCredential(id, password, value);
    }

否则,您只能通过构造函数实例化它一次(如果您可能不使用它,则不建议使用它,但如果您将在每种情况下使用它,则继续此操作)

private LoginPageService service;

HomePage() {
    service = new LoginPageService();
}
 类似资料:
  • 本文向大家介绍如何在Python中创建类对象?,包括了如何在Python中创建类对象?的使用技巧和注意事项,需要的朋友参考一下 使用该类的构造函数创建一个类对象。然后将该对象称为类的实例。类实例化使用函数表示法。  在下面的代码中,我们定义一个类并创建了相同类的实例,如下所示

  • 我通过学校为一项任务提供的简报创建了一个飞机座位预订系统。我遇到了一个我无法解决的主要问题。 摘要说明抽象类必须有一个抽象方法和大约4个公共方法。在抽象类的两个子类中,我们都必须初始化对象数组(所有普通的座位)。然而,一旦它们被初始化,我不知道如何将它们发送回抽象类(该类有一个检查未预订的飞机座位的方法,这就是我需要初始化的座位对象的地方) ArrayIndexOutOfBounds在一个应该在边

  • 问题内容: 我想知道如何从json文件或xml文件创建对象类? 例如: 我从webservice获取此json文件: 我想创建一个像这样的类: NB : 我的问题不是如何在vb.net 中序列化/反序列化json objet 吗? 我的xml文件没有XSD,为什么会更困难 我的代码是用VB.Net而不是C#编写的。我发现许多网站将json转换为c#(http://json2csharp.com/)

  • 本文向大家介绍如何在Java 9中的JShell中创建类和对象?,包括了如何在Java 9中的JShell中创建类和对象?的使用技巧和注意事项,需要的朋友参考一下 JShell是Java 9中发布的一个新的Java Shell工具。它是第一个正式的REPL(读取-评估-打印循环)应用程序。该工具有助于执行和评估简单的Java程序和逻辑,例如语句,循环,表达式等。Java REPL在命令提示符下提供

  • 我试图创建一个方法,反向链接列表。我有一个创建链表的类 反转链表的方法在我的“Main”类中 对于我想添加到新反向链表前面的每个新节点,我需要创建一个“node”类的新实例,该类包含在“LinkedList”类中。“Node”类不能是静态的,因为其“item”属性设置为与“LinkedList”类型相同的泛型类型。所以,我需要一个类“LinkedList”的实例,以便访问“Node”类并创建其对象

  • 因此,我试图创建一个具有初始化方法的类,该方法需要获取被创建对象的类型,以便正确设置init参数的默认值。 举一个具体的代码例子,假设我有如下的类: 这是我正在寻找的功能,但我的IDE说,我可以理解,因为尚未实例化。所以我的问题是如何正确实现它?我不想“硬编码”类类型,因为这个类的子类可能有自己的和值,我希望这些子类使用与其类型相对应的类变量。 我的解决方案需要在Python 3.6中工作