2

我正在使用 Eclipse 版本的 Juno。使用 WindowBuilder 创建一个 GUI,其中用户将在 JTextField 中输入一个数字,然后单击一个 JButton。我编写了一个 for 循环来确定用户输入的数字是否为质数。然后,GUI 窗口将显示“输入的数字是/不是素数”行的输出。我将在一个包中编写 GUI 的源代码,而带有 for 循环的类将在另一个包中。这两个包都驻留在同一个 Java 项目中。

我的问题是:如何将包含循环的公共类传递给包含 GUI 源代码的公共类(以便 GUI 可以吐出循环的结果)?除此之外,我在编写代码方面不需要任何帮助。谢谢

这是对第一个答案的回应:

package gui;

import java.awt.EventQueue;

import javax.swing.*;

public class GUI {

    private JFrame frame;
    private JTextField txtNumber;

    /**
     * Launch the application.
     */
    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    GUI window = new GUI();
                    window.frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }

    /**
     * Create the application.
     */
    public GUI() {
        initialize();
    }

    /**
     * Initialize the contents of the frame.
     */
    private void initialize() {
        frame = new JFrame();
        frame.setBounds(100, 100, 360, 286);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.getContentPane().setLayout(null);

        txtNumber = new JTextField();
        txtNumber.setBounds(134, 13, 182, 22);
        frame.getContentPane().add(txtNumber);
        txtNumber.setColumns(10);

        JLabel lblPrompt = new JLabel("Enter a number");
        lblPrompt.setBounds(25, 16, 97, 16);
        frame.getContentPane().add(lblPrompt);

        JButton btnOK = new JButton("OK");
        btnOK.setBounds(208, 196, 97, 25);
        frame.getContentPane().add(btnOK);


    }
}

package guiDataProcessing;

public class GUIProcessPrime {
    //A loop that checks whether a number is or is not a prime number
    boolean IsOrIsnotPrime(int num) {
        for(int i=2;2*i<num;i++) {
            if(num%i==0)
                return false;
        }
        return true;
    }
}
4

3 回答 3

0

在面向对象的编程中,数据采用对象的形式。数据以对象的形式存在,在 JVM 的堆空间中具有一些实例变量值的状态。为了识别对象在内存中的地址,我们使用 java 中的引用变量。因此,在使用该对象的编程过程中,我们使用包含对该对象的引用的引用。假设,如果 A test=new A(); 然后测试指向堆空间中的一些内存,使用一些方法 M1...Mn 实例变量值 v1....vn 类 A 的对象。所以,如果你想在包之间传递数据,那么在其中创建对该对象的引用包级别。因此,如果对象具有像 somepackagename.Test.java 这样的包级别层次结构,则创建该 Test.java 的对象并使用参考测试进行操作。但是,该调用应该在默认、私有、

于 2012-12-03T10:14:13.763 回答
0

对于另一个包中存在的第二个类,您还必须导入第一个类以供使用。第一堂课将有:

package gui;

另一个包中的第二个类将具有以下内容:

package gui.otherpackage;
import gui.GUI; //GUI being the name of your first class
于 2012-12-03T02:19:49.283 回答
0

您不会在包之间传递数据,而是在对象之间传递数据。包结构与您所询问的内容几乎没有关系。通常,要在对象之间传递数据,一个对象必须具有对另一个对象的引用,并且接收数据的对象必须具有用于接收该数据的公共方法。

于 2012-12-03T00:51:28.700 回答