在java中如何将文本字段中的内容放入整数数组

在java中如何将文本字段中的内容放入整数数组,java,swing,jtextfield,Java,Swing,Jtextfield,我有一个程序,我正试图把它放到GUI中,但我不知道如何让用户把文本字段中的东西放到数组中 以下是我目前的代码: import java.awt.Container; import java.awt.FlowLayout; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.Arrays; import javax.

我有一个程序,我正试图把它放到GUI中,但我不知道如何让用户把文本字段中的东西放到数组中 以下是我目前的代码:

import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Arrays;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class GUIMain extends JFrame{
    @SuppressWarnings("unused")
    private static JLabel label3;
    @SuppressWarnings("unused")
    private static JLabel label2;
    @SuppressWarnings("unused")
    private static JLabel label4;
    @SuppressWarnings("unused")
    private static JLabel label;
    private static JTextField text;
    private static final long serialVersionUID = 1L;
    private static int [] array={98,99,100};
    @SuppressWarnings("static-access")
    public GUIMain(){
        super("Math Converter");
        //this.array = array;
        Arrays.sort(array);
        //System.out.println("The median is : "+median(array));//prints Median
        //System.out.println("The mode is : "+mode(array));//prints Mode
        //System.out.println("The mean is : "+mean(array));//prints the mean
        //pack();
        setSize(600,500);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setLocationRelativeTo(null);
        setResizable(true);
        setVisible(true);
        JPanel panel = new JPanel();
        panel.setLayout(new GridLayout(10,10,10,10));//
        JTextField text = new JTextField(10);
        JLabel label = new JLabel(toStringMedian(array));
        JLabel label2 = new JLabel(toStringMode(array));
        JLabel label3 = new JLabel(toStringMean(array));

        JLabel label4 = new JLabel("How many numbers do you wan't in your array?");
        Container content = getContentPane();
        FlowLayout layout = new FlowLayout();
        layout.setAlignment(FlowLayout.CENTER);

        JPanel panel1 = new JPanel();
        JPanel panel2 = new JPanel();
        add(panel1);
        content.setLayout(layout);
        content.add(panel);
        content.add(panel1);
        content.add(panel2);
        panel.setLayout(new GridLayout(10,2,10,10));//10,2,10,10
        panel1.setLayout(new GridLayout(1,2,1,10));//1,2,1,10
        panel2.setLayout(new GridLayout(1,4,10,10));//1,4,10,10
        panel.add(label4);
        panel.add(text);
        panel.add(label);
        panel.add(label2);
        panel.add(label3);
        text.addActionListener(new Action());
        JMenuBar menu = new JMenuBar();
        setJMenuBar(menu);
        JMenu file = new JMenu("File");
        menu.add(file);
        JMenu Help = new JMenu("Help");
        menu.add(Help);
        JMenuItem About = new JMenuItem("About");
        Help.add(About);
        JMenuItem Exit = new JMenuItem("Exit");
        file.add(Exit);
        Exit.addActionListener(new Exit());
        this.label = label;
        this.label2 = label2;
        this.label3 = label3;
        this.label4 = label4;
        this.text = text;
    }
    public static void main(String[] args) throws Exception {
        new GUIMain();
    }

    public static int mode(int[] a) {
        int previous = a[0];//sets previous to array at 0
        int popular = a[0];//Initializes popular
        int count = 1;//initializes count
        int maxCount = 1;//initializes max count

        for (int i = 1; i < a.length; i++) {//goes through the array
            if (a[i] == previous)//tests to see if array at i is equal to previous 
                count++;//adds one every time this is true

            else {//if not then it will go through the next statement
                if (count > maxCount) {//tests to see if count is greater than max count
                    popular = a[i-1];//sets popular to a at i-1
                    maxCount = count;//sets max count to count
                }
                previous = a[i];//sets previous to a at i
                count = 1;//sets count to one when finished then it goes through the loop again
            }
        }
        return count > maxCount ? a[a.length-1] : popular;//returns only if count is greater than max count the integer popular
    }
    public static int median(int[] a){
        int median= 0 ;//declares median
        if(a.length%2==0)//tests to see if the length of the array is even 
            median = (a[(int)a.length/2] + (int)a[a.length/2+1])/2;//if it is even then it takes the averages of the two numbers in the middle
        else{
            median = a[a.length/2];//finds the number in the middle of the array
        }
        return median;//returns the value of median
    }
    public static int mean(int[]a){
        int mean = 0;
        for(int i = 0; i<a.length;i++){
            mean =(int)(a[i]+a [i]-1)/a.length;//finds the average of the elements of the array
        }
        return mean;//returns the value of mean
    }
    public static String toStringMedian(int[]a){
        return"This is the Median : "+median(a);
    }
    public static String toStringMean(int[]a){
        return"This is the Mean : "+mean(a);
    }
    public static String toStringMode(int[]a){
        return"This is the Mode : "+median(a);
    }

    static class Exit implements ActionListener {

        @Override
        public void actionPerformed(ActionEvent e) {
            System.exit(0);
        }

    }
    static class Action implements ActionListener{
        @Override
        public void actionPerformed(ActionEvent e) {
            int x = 0;
            int y = 0;
            int z = 0;
            if(e.getSource()==text){

            }
        }
    }
 }
导入java.awt.Container;
导入java.awt.FlowLayout;
导入java.awt.GridLayout;
导入java.awt.event.ActionEvent;
导入java.awt.event.ActionListener;
导入java.util.array;
导入javax.swing.JFrame;
导入javax.swing.JLabel;
导入javax.swing.JMenu;
导入javax.swing.JMenuBar;
导入javax.swing.JMenuItem;
导入javax.swing.JOptionPane;
导入javax.swing.JPanel;
导入javax.swing.JTextField;
公共类GUIMain扩展了JFrame{
@抑制警告(“未使用”)
专用静态JLabel标签3;
@抑制警告(“未使用”)
专用静态JLabel标签2;
@抑制警告(“未使用”)
专用静态JLabel标签4;
@抑制警告(“未使用”)
专用静态标签;
私有静态JTextField文本;
私有静态最终长serialVersionUID=1L;
私有静态int[]数组={98,99100};
@抑制警告(“静态访问”)
公共服务{
超级(“数学转换器”);
//this.array=数组;
数组。排序(数组);
//System.out.println(“中值为:“+中值(数组));//打印中值
//System.out.println(“模式为:“+mode(array));//打印模式
//System.out.println(“平均值为:“+mean(数组));//打印平均值
//包装();
设置大小(600500);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(空);
可设置大小(真);
setVisible(真);
JPanel面板=新的JPanel();
面板设置布局(新网格布局(10,10,10,10))//
JTextField text=新的JTextField(10);
JLabel=newjlabel(toStringMedian(数组));
JLabel label2=新的JLabel(toStringMode(数组));
JLabel label3=新的JLabel(toStringMean(数组));
JLabel label4=新的JLabel(“数组中不包含多少个数字?”);
容器内容=getContentPane();
FlowLayout=新的FlowLayout();
布局.设置对齐(FlowLayout.CENTER);
JPanel panel1=新的JPanel();
JPanel panel2=新的JPanel();
增加(第1组);
content.setLayout(布局);
内容。添加(面板);
添加内容(第1组);
添加内容(第2组);
panel.setLayout(新的GridLayout(10,2,10,10));//10,2,10,10
panel1.setLayout(新的GridLayout(1,2,1,10));//1,2,1,10
panel2.setLayout(新的GridLayout(1,4,10,10));//1,4,10,10
面板。添加(标签4);
添加(文本);
面板。添加(标签);
面板。添加(标签2);
面板。添加(标签3);
addActionListener(新操作());
JMenuBar菜单=新建JMenuBar();
setJMenuBar(菜单);
JMenu文件=新JMenu(“文件”);
菜单.添加(文件);
JMenu Help=新JMenu(“Help”);
菜单。添加(帮助);
JMenuItem About=新的JMenuItem(“About”);
帮助。添加(关于);
JMenuItem退出=新的JMenuItem(“退出”);
文件。添加(退出);
addActionListener(新的Exit());
this.label=标签;
this.label2=label2;
this.label3=label3;
this.label4=label4;
this.text=文本;
}
公共静态void main(字符串[]args)引发异常{
新GUIMain();
}
公共静态int模式(int[]a){
int previous=a[0];//将数组的前一个设置为0
int popular=a[0];//初始化popular
int count=1;//初始化count
int maxCount=1;//初始化最大计数
for(inti=1;imaxCount){//测试count是否大于max count
popular=a[i-1];//在i-1处将popular设置为a
maxCount=count;//将最大计数设置为count
}
previous=a[i];//在i处将前一个设置为a
count=1;//完成时将count设置为1,然后再次通过循环
}
}
return count>maxCount?a[a.length-1]:popular;//仅当count大于max count时返回popular整数
}
公共静态整数中值(整数[]a){
int median=0;//声明中值
if(a.length%2==0)//测试数组的长度是否为偶数
中值=([int)长度/ 2 ] +(int)a [ a长度/ 2+1 ])/ 2;/如果是,则取中间的两个数的平均值;
否则{
中值=A[长度/ 2 ];/ /找到数组中位数
}
返回中值;//返回中值的值
}
公共静态整数均值(整数[]a){
int平均值=0;

对于(int i=0;i而言,这可能会花费太长时间,但基本上没有其他方法可以将用户的文本字段输入转换为可以执行计算的整数

int input = Integer.parseInt(text.getText());

此代码将从用户键入的文本字符串中为您提供一个整数。

textField.getText().toString()
。只需谷歌输入不,我的意思是,从用户输入的整数到一个数组中,得到中值平均值和模式,我已经有了中值平均值和模式,我只是不想从JtextfieldWAY中获得用户输入太多的代码。去掉不相关的部分,除了两行之外,几乎所有内容都是这样。只是为了便于理解ky,你不应该大写变量名的第一个字母。因此它为
Input
着色。当然,你是对的。我只是复制了他的代码。更正是为了反映公认的惯例。