Member 10580483 Ответов: 1

Java JFrame делает кадр, чтобы получить сумму двух чисел. Не Работает!


пакет com.тестирование.Тест;
импорт java.awt.*;
импорт javax.swing.*;

тест открытого класса расширяет JFrame {
JLabel no1 = новый JLabel("номер 1");
JLabel no2 = новый JLabel("номер 2");
JLabel sum = new JLabel("Sum:",JLabel.ЦЕНТР);
JTextField F1 = новое JTextField(5);
JTextField F2 = новое JTextField(5);
Надписи nо3 = новые надписи();


публичный тест() {
супер("тест");
Контейнер контейнер = полностью();
container.setLayout(новый FlowLayout());
контейнер.добавить(нет1);
контейнер.добавить(Ф1);
контейнер.добавить(nо2);
контейнер.добавить(Ф2);
контейнер.добавить(сумма);
контейнер.добавить(nо3);
инт Н1 = целое число.parseInt((Ф1.с текстом()));
инт Н2 = целое число.parseInt((Ф2.с текстом()));
инт № 4 Дмитров = Н1 + Н2;
Строки S1 = строка.метод valueOf (№4 Дмитров);
nо3.помощью setText(С1);
}
публичный статический пустота главный(строка[] аргументы) {
Test test = новый тест();
тест.setDefaultCloseOperation(форму.EXIT_ON_CLOSE);
test.setSize(500, 400);
тест.функцию setvisible(истина);
}

}

Какие изменения я должен внести, чтобы метка " no3 " показывала сумму двух чисел, введенных в два текстовых поля?

1 Ответов

Рейтинг:
8

Xiao Ling

вы не задали никакого значения в JTextField. поэтому я добавил две строки, чтобы вы могли увидеть результаты. То

new JTextField(5);
не используется для установки значения поля 5.
public JTextField(int columns)
Constructs a new empty TextField with the specified number of columns. A default model is created and the initial string is set to null.
Parameters:
columns - the number of columns to use to calculate the preferred width; if columns is set to zero, the preferred width will be whatever naturally results from the component implementation


import java.awt.*;
import javax.swing.*;

public class Test extends JFrame {

	JLabel no1 = new JLabel("Number 1");
	JLabel no2 = new JLabel("Number 2");
	JLabel sum = new JLabel("Sum:", JLabel.CENTER);
	JTextField F1 = new JTextField(5);
	JTextField F2 = new JTextField(5);
	JLabel no3 = new JLabel();

	public Test() {
		super("Test");
		Container container = getContentPane();
		container.setLayout(new FlowLayout());
		container.add(no1);
		container.add(F1);
		container.add(no2);
		container.add(F2);
		container.add(sum);
		container.add(no3);
		F1.setText("5"); // set 5 in F1
		F2.setText("5"); // set 5 in F2
		int n1 = Integer.parseInt((F1.getText())); // 5
		int n2 = Integer.parseInt((F2.getText())); // 5
		int no4 = n1 + n2; // 10
		String s1 = String.valueOf(no4);
		no3.setText(s1);
	}

	public static void main(String[] args) {
		Test test = new Test();
		test.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		test.setSize(500, 400);
		test.setVisible(true);
	}

}