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