Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Java中的包之间传递数据?_Java_Eclipse_Class_Package_Windowbuilder - Fatal编程技术网

如何在Java中的包之间传递数据?

如何在Java中的包之间传递数据?,java,eclipse,class,package,windowbuilder,Java,Eclipse,Class,Package,Windowbuilder,我使用的是Eclipse版本的Juno。使用WindowBuilder创建GUI,用户将在其中向JTextField中输入数字,然后单击JButton。我编写了一个for循环来确定用户输入的数字是否是素数。然后,GUI窗口将显示“输入的数字是/不是质数”的输出。我将在一个包中编写GUI的源代码,而带有for循环的类将在另一个包中。两个包都位于同一个Java项目中 我的问题是:如何将包含循环的公共类传递给包含GUI源代码的公共类(以便GUI可以吐出循环的结果)?除此之外,我在编写代码方面不需要任何

我使用的是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;
    }
}
packagegui;
导入java.awt.EventQueue;
导入javax.swing.*;
公共类GUI{
私有JFrame;
私有JTextField txtNumber;
/**
*启动应用程序。
*/
公共静态void main(字符串[]args){
invokeLater(新的Runnable(){
公开募捐{
试一试{
GUI窗口=新建GUI();
window.frame.setVisible(true);
}捕获(例外e){
e、 printStackTrace();
}
}
});
}
/**
*创建应用程序。
*/
公共图形用户界面(){
初始化();
}
/**
*初始化框架的内容。
*/
私有void初始化(){
frame=新的JFrame();
框架.立根(100100360286);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().setLayout(null);
txtNumber=新的JTextField();
txtNumber.立根数(134,13,182,22);
frame.getContentPane().add(txtNumber);
txtNumber.setColumns(10);
JLabel lblPrompt=新的JLabel(“输入一个数字”);
lblPrompt.挫折(25,16,97,16);
frame.getContentPane().add(lblPrompt);
JButton btnOK=新JButton(“OK”);
b.立根数(208、196、97、25);
frame.getContentPane().add(btnOK);
}
}
数据包处理;
公共类GUIProcessPrime{
//检查一个数是否为素数的循环
布尔IsOrIsnotPrime(int num){

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

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

package gui;
另一个包中的第二个类将有如下内容:

package gui.otherpackage;
import gui.GUI; //GUI being the name of your first class

在面向对象的编程中,数据以对象的形式存在。数据以对象的形式存在,实例变量的某些状态值位于堆空间jvm中。为了标识对象在内存中的地址,我们在java中使用引用变量。因此,在使用该对象的编程过程中,我们使用保存该对象引用的引用假设,如果
A测试=新的A();然后,使用一些方法M1…Mn和类A对象的实例变量值v1…vn,测试指向堆空间中的一些内存。因此,如果您想在包之间传递数据,则在包级别内创建对该对象的引用。因此,如果对象具有包级别层次结构,如somepackagename.test.java,则创建该test.java的对象并使用引用测试进行操作。但是,该调用应在默认、私有、受保护和公共规则范围内,以调用方法或使用实例变量调用该对象。

向我们展示您的代码-如果不查看代码的上下文,很难提供帮助。您可以将“引擎”/“for循环”实现作为构造函数的一部分或通过“二传手"在GUI中。确保已正确设置了
import
语句,以便GUI可以从其他语句中查看类package@MadProgrammer我一开始就是这么想的,我试着用一个空白的JTextArea,只在按下JButton并循环执行计算后才让它显示文本.谢谢,这是有道理的。我还不是特别擅长编程,所以我的经验很浅。我以前从未收到过这样的设计指南。