簡體   English   中英

如何將輸出傳遞給另一個 Java 類?

[英]How to pass output to another Java class?

我是 Java 的新手,我想將一些輸出傳遞到 Java 中的當前類之外。 首先,我要求用戶輸入一些數字並存儲為字符串。 然后將它們轉換為整數。 我想做的是將這些值轉化為一些方法。 這是我的代碼。

import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class Main extends JFrame {
    JTextField x = new JTextField("X",5);
    JTextField y = new JTextField("Y",5);
    JTextField z = new JTextField("Z",5);
    JButton chk = new JButton("Check");
    public Main(){
        JPanel newPanel = new JPanel();
        newPanel.add(x);
        newPanel.add(y);
        newPanel.add(z);
        newPanel.add(chk);
            chk.addActionListener(new ActionListener() {
                @Override
                public void actionPerformed(ActionEvent e) {
                    //These are the values I want to pass
                    int xi = Integer.parseInt(x.getText());
                    int yi = Integer.parseInt(y.getText());
                    int zi = Integer.parseInt(z.getText());
                    System.out.printf("you data is %d\n",xi);
                    System.out.printf("Your data is %d\n",yi);
                    System.out.printf("you data is %d",zi);
                }
            });
        add(newPanel);
        pack();
        setLocationRelativeTo(null);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
    public static void main(String[]args) {
        new Main().setVisible(true);
    }
}

如您所見,我想將這些輸出(即 xi、yi 和 zi)傳遞給另一個類。 喜歡跟...

int result = xi+yi+zi;
System.out.println(result);

我怎樣才能做到這一點? 如何將這些數據傳遞給另一個類? 謝謝

在 main 中創建 3 個局部變量如何,您將能夠在整個函數中使用它們? 正如我所見,您聲明的變量只能在事件函數中使用。

import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class Main extends JFrame {
    JTextField x = new JTextField("X",5);
    JTextField y = new JTextField("Y",5);
    JTextField z = new JTextField("Z",5);
    int xi,yi,zi; //new variables to use later on
    JButton chk = new JButton("Check");
    public Main(){
        JPanel newPanel = new JPanel();
        newPanel.add(x);
        newPanel.add(y);
        newPanel.add(z);
        newPanel.add(chk);
            chk.addActionListener(new ActionListener() {
                @Override
                public void actionPerformed(ActionEvent e) {
                    //storing the values in the ""global"" variables
                    xi = Integer.parseInt(x.getText());
                    yi = Integer.parseInt(y.getText());
                    zi = Integer.parseInt(z.getText());
                    System.out.printf("you data is %d\n",xi);
                    System.out.printf("Your data is %d\n",yi);
                    System.out.printf("you data is %d",zi);
                }
            });
        add(newPanel);
        pack();
        setLocationRelativeTo(null);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
    public static void main(String[]args) {
        new Main().setVisible(true);
    }
}

然后,如果您想稍后使用它們,就像按下另一個按鈕一樣,您將能夠做到。

希望這是你所要求的...... :)

您可以向 Main 類添加一個方法,該方法返回一個包含所述數字的數組。 public int[] func(){ int[] arr = new int[3]; for(...) //將數字輸入到數組中(理想情況下,您可以將 Jtext 字段放在一個可以循環的數組中。返回 arr;

希望對你有幫助

有很多方法可以做到這一點,這完全取決於用例。 如果您只有三個變量,那么您可以將它們作為方法參數傳遞。

即我有我的其他類。

class OtherClass {
   static void doSomething(int x, int y, int z) {
        //do something
   }
}

或者

您可以使用構造函數將實例變量初始化為 OtherClass,即

class OtherClass {
   int a;
   int b;
   int c;
   
   OtherClass(int x, int y, int z) {
       this.a = x;
       this.b = y;
       this.c = z;
   }
}

//calling
OtherClass o = new OtherClass(1,2,3);

只需創建一個類和一個方法。 通過將方法設置為 void 或任何其他返回類型,放置您的代碼,即您想要在該方法內執行的任何操作。

例如,在您的程序中,您要打印 xi、yi 和 zi 的總和

public class MyClass {
    public void sum(int xi, int yi, int zi) {
        System.out.println(xi+yi+zi);
    }
    
//  or
    
    public int sum1(int xi, int yi, int zi) {
        return xi+yi+zi;
    }
    
}

創建此類的對象並調用該方法。 根據您的代碼,您可以這樣做

 @Override
     public void actionPerformed(ActionEvent e) {
         //storing the values in the ""global"" variables
         xi = Integer.parseInt(x.getText());
         yi = Integer.parseInt(y.getText());
         zi = Integer.parseInt(z.getText());
         MyClass myClass = new MyClass();
         myClass.sum(xi, yi, zi);
        
//      or
        
         int result = myClass.sum1(xi, yi, zi);
         System.out.println(result);
     }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM