为学校项目做一个小应用,除了这一件事我基本上已经完成了。在我的第一个面板中,人们可以填写每天的时间。文本字段中的这些数字需要相加,结果显示在第二个面板的文本字段中。
这里输入被添加到 Action 监听器中:
public class knopHandler implements ActionListener
{
public void actionPerformed ( ActionEvent e )
{
JFrame frame2 = new JFrame ( "Total Hours" );
frame2.setSize ( 600, 500 );
JPanel uitvoerpanel = new uitvoerpanel();
frame2.setContentPane( uitvoerpanel );
frame2.setVisible( true );
String invoerstring1 = maandaginvoer.getText();
int getal1 = Integer.parseInt( invoerstring1 );
String invoerstring2 = dinsdaginvoer.getText();
int getal2 = Integer.parseInt( invoerstring2 );
String invoerstring3 = woensdaginvoer.getText();
int getal3 = Integer.parseInt( invoerstring3 );
String invoerstring4 = donderdaginvoer.getText();
int getal4 = Integer.parseInt( invoerstring4 );
String invoerstring5 = vrijdaginvoer.getText();
int getal5 = Integer.parseInt( invoerstring5 );
String invoerstring6 = zaterdaginvoer.getText();
int getal6 = Integer.parseInt( invoerstring6 );
String invoerstring7 = zondaginvoer.getText();
int getal7 = Integer.parseInt( invoerstring7 );
int resultaat = getal1 + getal2 + getal3 + getal4 + getal5 + getal6
+ getal7;
现在 int resultaat
需要显示在新面板的 totaalurenvak
中
totaalurenvak = new JTextField ( 20 );
totaalurenvak.setHorizontalAlignment ( JTextField.LEFT );
totaalurenvak.setEditable ( false );
totaalurenvak.setText(Integer.toString( resultaat) );
现在这是我尝试过的最新代码行,我也尝试过 totaalurenvak.setText(""+ resultaat);
或 totaalurenvak.setText(Integer.parseInt ( resultaat) ) ;
可能值得注意的是,来自其他两个文本字段的输入确实显示在第二个面板中,只是这个没有显示,那么这里到底出了什么问题?无论我尝试什么代码行,编译器都会告诉我“找不到符号”。
最佳答案
您可以将 totaalurenvak
的创建留给代码不同部分的 init 函数。但是,在事件处理程序中,您必须为新的 JTextField
int resultaat = getal1 + getal2 + getal3 + getal4 + getal5 + getal6 + getal7;
totaalurenvak.setText(Integer.toString(resultaat));
这是因为您尝试更改类变量之一的值。您必须在该变量上显式调用函数 setText(value)
。
顺便说一句,将 totaalurenvak
设为 JLabel
而不是无法编辑的 JTextField
会更简洁,因为这在语义上更清晰正确。
关于java - 计算结果未显示在文本字段中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44736082/