[英]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.