Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 如何使用for语句读取多个JTextField并将其放入数组中以传输到其他类_Arrays_Jtextfield - Fatal编程技术网

Arrays 如何使用for语句读取多个JTextField并将其放入数组中以传输到其他类

Arrays 如何使用for语句读取多个JTextField并将其放入数组中以传输到其他类,arrays,jtextfield,Arrays,Jtextfield,我快拿到养老金了,我对我们可以为工程专业学生购买的项目感到失望。通常,它们并不完全是我们想要的。 所以,作为一个老前辈,我开始用Java编写自己的程序。也因为它对我来说是一种乐趣 我想使程序灵活,便于重用。 我正在进行计算,为此我们需要在程序中输入基本的工程数据。因此,我在循环中使用JTextField在类“a_designdatabasesinvoer”中生成输入,并在大型机类的“MiddenPaneel”上显示它们。 在类“BesturingLinkerKnoppenPaneel”中,我想按

我快拿到养老金了,我对我们可以为工程专业学生购买的项目感到失望。通常,它们并不完全是我们想要的。 所以,作为一个老前辈,我开始用Java编写自己的程序。也因为它对我来说是一种乐趣

我想使程序灵活,便于重用。 我正在进行计算,为此我们需要在程序中输入基本的工程数据。因此,我在循环中使用JTextField在类“a_designdatabasesinvoer”中生成输入,并在大型机类的“MiddenPaneel”上显示它们。 在类“BesturingLinkerKnoppenPaneel”中,我想按SAVE按钮读取“A_designDatabasesInvoer”中的JTextFields,并将它们传输到A_BasisDataASME类中进行存储。 从存储器中,我想在RechTerpanel中显示数据,以显示我正在使用的数据。 听起来很复杂,但如果我将所有JTextFields分开编程,它就会工作。那不是我想要的。比我不能重用的类

类文件: java:在这里设置JFrame和JPanels,我在面板中加载“BesturingLinkerKnoppenPaneel”和“A_DesignBasisInvoer” BesturingLinkerKnoppenPaneel.java:制作用于保存数据的jbutton,并在将来的导出中写入文件。 A_DesignBasisInvoer.java:创建输入字段和描述,并将其写入MiddenPaneel A_BasisDataASME.java:存储临时数据以传输到其他类

我的问题! 如果我将所有JTextfields分开,我可以读取它们并传输到其他文件。 但是如果我对jtextfiled使用一个循环并将它们添加到一个数组中,则会出现错误,我会看到文件底部的BesturingLinkerKnoppenPaneel粉红色文本。 我知道我做错了什么,但却找不到。所有评论都非常感谢! 提前感谢您的帮助

问候,, 唐爷爷

private JPanel contentPane;

/*--------------------------------------------------------------------------------------------------------------------------------------    
*   BELOW Call FILES IN CLASS
*-------------------------------------------------------------------------------------------------------------------------------------- 
*/  
    BesturingLinkerKnoppenPaneel besturingLinkerKnoppenPaneel = new BesturingLinkerKnoppenPaneel();
    A_BasisDataASME a_BasisDataASME = new A_BasisDataASME();
    A_DesignDataBasisInvoer a_DesignDataBasisInvoer = new A_DesignDataBasisInvoer();

    static JTextArea informatieTekst = new JTextArea();

/*--------------------------------------------------------------------------------------------------------------------------------------    
*   BELOW IN THE CONSTRUCTOR BUILD SCREEN WITH PANELS
*-------------------------------------------------------------------------------------------------------------------------------------- 
*/
    public MainFrame(String calculationCode, String TekstMainPanel) 
    {
        String calculationCodeVoorFrameTitel = calculationCode;

        /*--------------------------------------------------------------------------------------------------------------------------------------    
        *   LOAD CLASS SCHERMCONSTANTEN FOR SIZING
        * --------------------------------------------------------------------------------------------------------------------------------------
        */
        SchermConstanten schermConstanten = new SchermConstanten();
        int scherminstellingen[] = schermConstanten.getschermConstanten();
        Font font = new Font("Arial", Font.PLAIN, scherminstellingen[16]);
        Font fontBold = new Font("Arial", Font.BOLD, scherminstellingen[16]);
        
        /*--------------------------------------------------------------------------------------------------------------------------------------
        *   DE FRAME / ContentPane SETUP
        * --------------------------------------------------------------------------------------------------------------------------------------
        */
        setTitle(calculationCodeVoorFrameTitel);
        setMinimumSize(new Dimension(1900, 1200));
        setMaximumSize(new Dimension(scherminstellingen[0], scherminstellingen[1]+35));
        setBounds(scherminstellingen[2], scherminstellingen[3], scherminstellingen[0], scherminstellingen[1]+35);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        contentPane = new JPanel();
        contentPane.setBackground( Color.decode("#DCDCDC"));
        contentPane.setLayout(null);
        
        
        /*--------------------------------------------------------------------------------------------------------------------------------------    
        *   SETUP PANELS
        * --------------------------------------------------------------------------------------------------------------------------------------
        */  
        JPanel LinkerPaneel = new JPanel();
        LinkerPaneel.setLayout(new BoxLayout(LinkerPaneel, BoxLayout.Y_AXIS));
        LinkerPaneel.setPreferredSize(new Dimension(scherminstellingen[8], scherminstellingen[9]));
        LinkerPaneel.setBounds(10, scherminstellingen[5]+20, scherminstellingen[8], scherminstellingen[9]);
        LinkerPaneel.setBorder(new EtchedBorder(EtchedBorder.RAISED, null, null));
        LinkerPaneel.setBackground(Color.decode("#D3D3D3"));
        LinkerPaneel.setOpaque(false);
        LinkerPaneel.setVisible(true);
        
        JPanel MiddenPaneel = new JPanel();
        MiddenPaneel.setLayout(new FlowLayout(FlowLayout.LEFT));
        MiddenPaneel.setPreferredSize(new Dimension(scherminstellingen[12], scherminstellingen[9]));
        MiddenPaneel.setBounds(scherminstellingen[8]+20, scherminstellingen[5]+20, scherminstellingen[12], scherminstellingen[9]);
        MiddenPaneel.setBorder(new EtchedBorder(EtchedBorder.RAISED, null, null));
        MiddenPaneel.setBackground(Color.decode("#D3D3D3"));
        MiddenPaneel.setOpaque(true);
        MiddenPaneel.setVisible(true);

        JPanel RechterPaneel = new JPanel();
        RechterPaneel.setLayout(new FlowLayout(FlowLayout.LEFT));
        RechterPaneel.setPreferredSize(new Dimension(scherminstellingen[14], scherminstellingen[15]));
        RechterPaneel.setBounds(scherminstellingen[8]+scherminstellingen[12]+30, scherminstellingen[5]+20, scherminstellingen[14], scherminstellingen[15]);
        RechterPaneel.setBorder(new EtchedBorder(EtchedBorder.RAISED, null, null));
        RechterPaneel.setBackground(Color.decode("#D3D3D3"));
        RechterPaneel.setOpaque(true);
        RechterPaneel.setVisible(true);

        contentPane.add(MiddenPaneel, BorderLayout.CENTER);
        contentPane.add(LinkerPaneel, BorderLayout.WEST);
        contentPane.add(RechterPaneel, BorderLayout.EAST);
        setContentPane(contentPane);    
//END LAYOUT PANEEL         
        
        /*--------------------------------------------------------------------------------------------------------------------------------------    
        *   LOAD BASIS DATA ON SCREEN
        * --------------------------------------------------------------------------------------------------------------------------------------
        */  
        a_DesignDataBasisInvoer = new A_DesignDataBasisInvoer(calculationCodeVoorFrameTitel);
        a_DesignDataBasisInvoer.setBackground(Color.decode("#D3D3D3"));
        MiddenPaneel.add(a_DesignDataBasisInvoer);
        
        /*--------------------------------------------------------------------------------------------------------------------------------------    
        *   LOAD JBUTTON BAR AT THE LEFT SCREEN
        * --------------------------------------------------------------------------------------------------------------------------------------
        */
        besturingLinkerKnoppenPaneel = new BesturingLinkerKnoppenPaneel();
        besturingLinkerKnoppenPaneel.setBackground(Color.decode("#D3D3D3"));
        LinkerPaneel.add(besturingLinkerKnoppenPaneel);
    }
}

public class BesturingLinkerKnoppenPaneel extends JPanel implements ActionListener {
    

    public static final long serialVersionUID = 1L;
    private static final Object[] Input = null;
    static JTextField[] BasisDataInv;
    //private ArrayList<Double> invoer = new ArrayList<Double>(); 
    ArrayList<JTextField> invoer = new ArrayList<JTextField>();
    
//   private List<Contact> list = new ArrayList<Contact>();
    JButton LeftSaveBtn;
    SchermConstanten schermConstanten = new SchermConstanten();
    
/*--------------------------------------------------------------------------------------------------------------------------------------    
*   CALL FILES 
*-------------------------------------------------------------------------------------------------------------------------------------- 
*/  
        A_BasisDataASME a_BasisDataASME = new A_BasisDataASME();
        A_DesignDataBasisInvoer a_DesignDataBasisInvoer = new A_DesignDataBasisInvoer();
    
/*--------------------------------------------------------------------------------------------------------------------------------------    
*    DE CONSTRUCTOR
* --------------------------------------------------------------------------------------------------------------------------------------    
*/  
    public BesturingLinkerKnoppenPaneel() {
        
        int scherminstellingen[] = schermConstanten.getschermConstanten();
        Font font = new Font("Arial", Font.PLAIN, scherminstellingen[16]);
        Font fontBold = new Font("Arial", Font.BOLD, scherminstellingen[16]);

                LeftSaveBtn = new JButton("Save");
                LeftSaveBtn.setBounds(0,0,50,30);
                add(LeftSaveBtn);
                LeftSaveBtn.addActionListener(this);
        }
        
        @Override
        public void actionPerformed(ActionEvent e) 
        {
                JButton clicked = (JButton)e.getSource();
                if (clicked == LeftSaveBtn) 
                {
                
                /*--------------------------------------------------------------------------------------------------------------------------------------    
                * OVERHERE I WANT TO LOAD ALL JTEXTFIELDS FROM THE FILE "A_DesignDataBasisInvoer"
                * AND WRITE THEM IN AN ARRAY OR ARRAYLIST AND TRANSFER TO THE FILE "A_BasisDataASME" FOR STORAGE AND USE IN THE REST OF THE PROGRAM.
                * I NEED THIS FOR EACH CALCULATION
                * --------------------------------------------------------------------------------------------------------------------------------------    
                */
                            
                
                        for(int k=0; k<2; k++) 
                        {
                            try {
                                Input[k] = A_DesignDataBasisInvoer.BasisDataInv.getText(k,3);
                            } catch (BadLocationException e1) {
                                // TODO Auto-generated catch block
                                e1.printStackTrace();
                            }
                        
                            A_BasisDataASME.setBasisDataInv(Input);
                                    
                        }
                    
                    System.out.println(Input.length);
                
                }
    
        }
    
}

public class A_DesignDataBasisInvoer extends JPanel{

    public String[][] ArrayDesignData;
    public static JTextField BasisDataInv;
    JButton SaveBasisDataBtn;

    
    public A_DesignDataBasisInvoer(String calculationCodeVoorFrameTitel) {
        
        SchermConstanten schermConstanten = new SchermConstanten();
        int scherminstellingen[] = schermConstanten.getschermConstanten();
        Font font = new Font("Arial", Font.PLAIN, scherminstellingen[16]);
        Font fontBold = new Font("Arial", Font.BOLD, scherminstellingen[16]);
        Font fontHeading = new Font("Arial", Font.BOLD, scherminstellingen[16]*3/2);
        
        /*--------------------------------------------------------------------------------------------------------------------------------------                        
        *       SETUP INPUT SCREEN JTEXTFIELDS
        *---------------------------------------------------------------------------------------------------------------------------------------
        */
                JPanel DataInvoerPaneel= new JPanel();
                DataInvoerPaneel.setPreferredSize(new Dimension((scherminstellingen[12])/3*2, scherminstellingen[13]-20));
                DataInvoerPaneel.setBackground(Color.decode("#D3D3D3"));
                DataInvoerPaneel.setLayout(null);
                DataInvoerPaneel.setOpaque(true);
                DataInvoerPaneel.setVisible(true);
                add(DataInvoerPaneel);
                
                        String[][] DesignDataInput_ASMEB313_2020 = {   
                                {"Design Pressure", "Pd:","DesignPressurefield","Bar(g)"}, {"Operating Pressure", "Po:","OperatingPressurefield","Bar(g)"}, {"Design Temperature", "Td:", "DesignTemperatureField", "\u00B0"+"C"}, {"Operating Temperature", "To:", "OperatingTemperatureField","\u00B0"+"C"},{"Number of Cycles",  "N:", "CycleField", ""}};
                        
                        if (calculationCodeVoorFrameTitel == "B31.3-2020"){
                            ArrayDesignData = DesignDataInput_ASMEB313_2020;
                        }
                        
                        GridBagConstraints gc = new GridBagConstraints();
                        gc.gridx = 0;
                        gc.gridy = 0;
                        gc.weightx = 1;
                        gc.weighty = 0.01;
                        gc.fill = GridBagConstraints.NONE;
                        gc.anchor = GridBagConstraints.LINE_START;
                        
                        /*  Variabele FOR POSITIONING  */
                        int VertPositieVar1 = 35;
                        int HorzPositieVar1 = 270;
                        int HorzPositieVar2 = 340;
                        int HorzPositieVar3 = 430;
                        int lengte = ArrayDesignData.length;
                        System.out.println(lengte);
                        
                        /*  MAKE JTEXTFIELDS  */
                        JTextField[] BasisDataInv = new JTextField[ArrayDesignData.length];
                        
                        for(int i=0; i<ArrayDesignData.length; i++) 
                        {
                            int vert = i * 40;
                            BasisDataInv[i] = new JTextField();
                            BasisDataInv[i].setForeground(Color.BLACK);
                            BasisDataInv[i].setBackground( Color.decode("#D3D3D3") );
                            BasisDataInv[i].setFont(font);
                            BasisDataInv[i].setBounds(HorzPositieVar2, 40+VertPositieVar1*i,80, 30);
                            BasisDataInv[i].setBorder(new LineBorder(Color.BLUE));
                            BasisDataInv[i].setOpaque(true);
                            BasisDataInv[i].setVisible(true);
                            DataInvoerPaneel.add(BasisDataInv[i]);
                            
                        }
    }

    public A_DesignDataBasisInvoer() {
        // TODO Auto-generated constructor stub
    }
}

public class A_BasisDataASME {
    
    private static Object[] basisDataInv;
    
    public static void setBasisDataInv(Object[] input){
        basisDataInv = input;
    }

    public static Object[] getBasisDataInv(){
        return basisDataInv;
    }
}

public SchermConstanten() {
    Dimension schermGroote = Toolkit.getDefaultToolkit().getScreenSize();
    frameBreedte = schermGroote.width/10*9;                 //scherminstelling[0]
    frameHoogte = schermGroote.height/10*9;                 //scherminstelling[1]
    framePositieBreedte = (schermGroote.width-frameBreedte)/2;  //scherminstelling[2]
    framePositieHoogte = 0;                                     //scherminstelling[3]
    
    sizeTopToolbarBreedte = frameBreedte-20;                        //scherminstelling[4]
    sizeTopToolbarHoogte = frameHoogte/20;                      //scherminstelling[5]
    sizeBottomRegelHoogte = frameHoogte/30+5;                   //scherminstelling[6]
    sizeBottomRegelBreedte = frameBreedte-20;                   //scherminstelling[7]
    
    sizeLeftToolbarBreedte = frameBreedte/25;                                           //scherminstelling[8]
    sizeLeftToolbarHoogte = frameHoogte-sizeBottomRegelHoogte-sizeTopToolbarHoogte-60 ;     //scherminstelling[9]
    sizeTabelBreedte = frameBreedte-sizeLeftToolbarBreedte;                                 //scherminstelling[10]
    sizeTabelHoogte = frameHoogte/5;                                                        //scherminstelling[11]
    
    sizeLeftDataFieldBreedte = (frameBreedte-sizeLeftToolbarBreedte-40)/2;                                      //scherminstelling[12]
    sizeLeftDataFieldHoogte = (frameHoogte-sizeBottomRegelHoogte-sizeTopToolbarHoogte-60);                      //scherminstelling[13]
    sizeGeneralAreaBreedte = ((frameBreedte-sizeLeftToolbarBreedte-40)/2);                                      //scherminstelling[14]
    sizeGeneralAreaHoogte = (frameHoogte-sizeBottomRegelHoogte-sizeTopToolbarHoogte-60);                        //scherminstelling[15]
    
    
    //text grote instellen om het leesbaar te houden bij hoge resolutie
    for (int schermresolutie = 1600;schermresolutie < schermGroote.width; schermresolutie=schermresolutie+500) {
        fontGrote = fontGrote +3;                   //scherminstelling[16]
        fontButtons = fontGrote +1;                 //scherminstelling[17]
        tabelRowHoogte = tabelRowHoogte + 3;        //scherminstelling[18]
    }
    
    


    
    scherminstellingen = new int[] {frameBreedte,frameHoogte,framePositieBreedte,framePositieHoogte,sizeTopToolbarBreedte,sizeTopToolbarHoogte,sizeBottomRegelHoogte,sizeBottomRegelBreedte,
            sizeLeftToolbarBreedte,sizeLeftToolbarHoogte,sizeTabelBreedte,sizeTabelHoogte,sizeLeftDataFieldBreedte,sizeLeftDataFieldHoogte,sizeGeneralAreaBreedte,sizeGeneralAreaHoogte,
            fontGrote, fontButtons,tabelRowHoogte};

    

}


 public int[] getschermConstanten() {
        return scherminstellingen;

      }
私有JPanel内容窗格;
/*--------------------------------------------------------------------------------------------------------------------------------------    
*下面调用课堂上的文件
*-------------------------------------------------------------------------------------------------------------------------------------- 
*/  
BesturingLinkerKnoppenPaneel BesturingLinkerKnoppenPaneel=新的BesturingLinkerKnoppenPaneel();
A_basisdaasme A_BasisDataASME=新的A_BasisDataASME();
A_designdatabasesinvoer A_designdatabasesinvoer=新A_designdatabasesinvoer();
静态JTextArea informatietest=新JTextArea();
/*--------------------------------------------------------------------------------------------------------------------------------------    
*下面是带面板的构造函数构建屏幕
*-------------------------------------------------------------------------------------------------------------------------------------- 
*/
公共主机(字符串计算代码,字符串TeksMainPanel)
{
字符串calculationCodeVoorFrameTitel=calculationCode;
/*--------------------------------------------------------------------------------------------------------------------------------------    
*负荷等级SCHERMCONSTANTEN,用于调整尺寸
* --------------------------------------------------------------------------------------------------------------------------------------
*/
SchermConstanten SchermConstanten=新SchermConstanten();
int schermistellingen[]=schermConstanten.getschermConstanten();
Font Font=新字体(“Arial”,Font.PLAIN,Schermistellingen[16]);
Font fontBold=新字体(“Arial”,Font.BOLD,Schermistellingen[16]);
/*--------------------------------------------------------------------------------------------------------------------------------------
*取消框架/内容窗格设置
* --------------------------------------------------------------------------------------------------------------------------------------
*/
setTitle(calculationCodeVoorFrameTitel);
设置最小尺寸(新尺寸(1900、1200));
setMaximumSize(新尺寸(scherminstellingen[0],scherminstellingen[1]+35));
立根(scherminstellingen[2],scherminstellingen[3],scherminstellingen[0],scherminstellingen[1]+35);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
contentPane=newjpanel();
contentPane.setBackground(Color.decode(#dcdc”);
contentPane.setLayout(null);
/*--------------------------------------------------------------------------------------------------------------------------------------    
*设置面板
* --------------------------------------------------------------------------------------------------------------------------------------
*/  
JPanel linkerpanel=新的JPanel();
setLayout(新的BoxLayout(LinkerPaneel,BoxLayout.Y_轴));
LinkerPanel.setPreferredSize(新维度(scherminstellingen[8],scherminstellingen[9]);
LinkerPaneel.setBounds(10,scherminstellingen[5]+20,scherminstellingen[8],scherminstellingen[9]);
linkerPanel.setBorder(新的蚀刻边框(蚀刻边框.RAISED,null,null));
linkerPanel.setBackground(彩色解码(“#d3”);
LinkerPaneel.set不透明(false);
linkerPanel.setVisible(true);
JPanel MiddenPaneel=新的JPanel();
setLayout(新的FlowLayout(FlowLayout.LEFT));
设置首选尺寸(新尺寸(scherminstellingen[12],scherminstellingen[9]);
MiddenPaneel.setBounds(scherminstellingen[8]+20,scherminstellingen[5]+20,scherminstellingen[12],scherminstellingen[9]);
MiddenPaneel.setboorder(新的蚀刻边框(蚀刻边框.RAISED,null,null));
中盘。背景(颜色。解码(#d3”);
中盘鳗。设置不透明(真);
MiddenPaneel.setVisible(真);
JPanel RechterPaneel