我使用Eclipse版本的Juno。使用WindowBuilder創建一個GUI,用戶在其中輸入一個數字到JTextField中,然後點擊一個JButton。我寫了一個for循環來確定用戶輸入的數字是否是一個素數。然後,GUI窗口將顯示「輸入的數字不是質數」的輸出。我將在一個包內寫入GUI的源代碼,而帶for循環的類將位於另一個包中。這兩個軟件包駐留在同一個Java項目中。我的問題是這樣的:我如何將包含循環的公共類傳遞給包含GUI源代碼的公共類(以便GUI可以吐出循環的結果)?除此之外,我不需要編寫代碼的任何幫助。由於如何在Java包中傳遞數據?
這是在響應於第一答案:
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;
}
}
向我們展示您的代碼 - 如果沒有查看代碼的上下文很難提供幫助。 –
您可以將「engine」/「for-loop」實現作爲構造函數的一部分或通過GUI中的「setter」傳遞。確保你已經正確設置了'import'語句,這樣GUI就可以看到其他包中的類 – MadProgrammer
@MadProgrammer這就是我首先想到的。我試圖去擁有一個空白的JTextArea的方式,只有當按下JButton並且循環執行它的計算時才顯示文本。 – user1871246