2

Eclipse バージョンの Juno を使用しています。WindowBuilder を使用して、ユーザーが JTextField に数値を入力し、JButton をクリックする GUI を作成します。ユーザーが入力した数値が素数かどうかを判断する for ループを作成しました。GUI ウィンドウには、「入力された数値は素数です/素数ではありません」という行に沿って出力が表示されます。GUI のソース コードは 1 つのパッケージ内に記述し、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

パッケージ間でデータを渡すのではなく、オブジェクト間でデータを渡します。パッケージ構造は、あなたが求めているものとはほとんど関係がありません。通常、オブジェクト間でデータを渡すには、一方が他方への参照を持ち、データを受信する一方がそのデータを受信するためのパブリックメソッドを持っている必要があります。

于 2012-12-03T00:51:28.700 に答える
0

オブジェクト指向プログラミングでは、データはオブジェクトの形式を取ります。データは、JV Mのヒープスペースにインスタンス変数値の状態を持つオブジェクトの形式で存在します。オブジェクトがメモリ内に存在するアドレスを識別するために、javaの参照変数を使用します。したがって、そのオブジェクトを使用するためのプログラミング中に、そのオブジェクトへの参照を保持する参照を使用します。次に、いくつかのメソッドM1...MnとクラスAのオブジェクトのインスタンス変数値v1....vnを使用して、ヒープスペース内のメモリをテストポイントします。したがって、パッケージ間でデータを渡したい場合は、そのオブジェクトへの参照を作成します。パッケージレベル。したがって、オブジェクトにsomepackagename.Test.javaのようなパッケージレベルの階層がある場合は、そのTest.javaのオブジェクトを作成し、操作に参照テストを使用します。ただし、その呼び出しはdefault、private、

于 2012-12-03T10:14:13.763 に答える
0

他のパッケージに存在する 2 番目のクラスについては、使用するために最初のクラスもインポートする必要があります。最初のクラスは次のようになります。

package gui;

もう一方のパッケージの 2 番目のクラスは次のようになります。

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