Java 如何从其他面板获取JTextField的输入

Java 如何从其他面板获取JTextField的输入,java,swing,textarea,Java,Swing,Textarea,我对使用JTextFields很陌生,对如何从3个不同的面板获取输入很好奇。小组将从输入中获取数字并平均分数。为此,我想访问所有3个面板进行计算。我有一个三个不同的人的分数,我想平均。所以我想得到mattsTotalScore并将其与timsTotalScore和BensTotalScore相加,使平均值出现在第四个面板上的按钮后 import javax.swing.*; 导入java.awt.*; 公共类MattPanel扩展了JPanel{ 公共事务委员会(){ 维度大小=getPrefe

我对使用JTextFields很陌生,对如何从3个不同的面板获取输入很好奇。小组将从输入中获取数字并平均分数。为此,我想访问所有3个面板进行计算。我有一个三个不同的人的分数,我想平均。所以我想得到mattsTotalScore并将其与timsTotalScore和BensTotalScore相加,使平均值出现在第四个面板上的按钮后

import javax.swing.*;
导入java.awt.*;
公共类MattPanel扩展了JPanel{
公共事务委员会(){
维度大小=getPreferredSize();
尺寸.宽度=250;
设置首选大小(大小);
SetBordOrder(BorderFactory.createTitledBorder(“Matt的分数”);
JLabel memMatt=新JLabel(“可记忆性”);
JTextField textmattpane=新的JTextField(10);
JLabel comMatt=新JLabel(“组合:”);
JTextField textcomattpane=新的JTextField(10);
JLabel mixmart=新JLabel(“混合/主控:”);
JTextField textMixMattPane=新的JTextField(10);
JLabel soundMatt=新JLabel(“声音设计:”);
JTextField textSoundMattPane=新的JTextField(10);
JLabel enjoymart=新JLabel(“享受”);
JTextField textEnjoyMattPane=新的JTextField(10);
setLayout(新的GridBagLayout());
GridBagConstraints gc=新的GridBagConstraints();
///第一列///////////////////////
gc.anchor=GridBagConstraints.LINE\u END;
gc.weightx=0.5;gc.weighty=0.5;
gc.gridx=0;gc.gridy=0;
添加(memMatt,gc);
gc.gridx=0;gc.gridy=1;
添加(通信、gc);
gc.gridx=0;gc.gridy=2;
添加(Mixmart,gc);
gc.gridx=0;gc.gridy=3;
添加(soundMatt,gc);
gc.gridx=0;gc.gridy=4;
添加(Enjoymat,gc);
//第二列//////////////////////
gc.anchor=GridBagConstraints.LINE\u START;
gc.gridx=1;gc.gridy=0;
添加(textMemMattPane,gc);
gc.gridx=1;gc.gridy=1;
添加(textComMattPane,gc);
gc.gridx=1;gc.gridy=2;
添加(textMixMattPane,gc);
gc.gridx=1;gc.gridy=3;
添加(textSoundMattPane,gc);
gc.gridx=1;gc.gridy=4;
添加(textEnjoyMattPane,gc);
}
}

您可以尝试使用JPanel中的
getComponents()
方法获取所有组件,尽管您必须以某种方式标识文本字段,如:

MattPanel=new MattPanel();
整数和=0;
int nr=0;
对于(组件组件:panel.getComponents()){
if(JTextField的comp instanceof){
字符串文本=((JTextField)comp.getText();
sum+=Integer.parseInt(文本);
nr++;
}
}
平均双倍=总和/个;

你这样做是不行的。所有字段都是本地字段。在类级别声明它们,您可以为它们和它们的值创建setter好的,这很有意义。我将尝试一下
。MattPanel扩展JPanel
除非实际需要,否则不要扩展GUI组件。它会导致类似这样的难题。这是一个试图解释糟糕设计的黑客。要通过修改设计来进行修改。