Итак, я работал над этой программой, и я не могу получить входные данные из трех полей (a, b, c) для хранения в качестве переменных. Любая помощь будет оценена. Кажется, что все работает, и если кнопка нажата, она закрывает окно, но оно не будет продолжаться, потому что вход не сохраняется.Хранение текста из JTextField
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import javax.swing.JPanel;
import javax.swing.*;
import java.awt.*;
import java.util.Scanner;
import java.io.*;
import javax.swing.border.EmptyBorder;
import java.awt.event.*;
public class Herons extends JFrame implements ActionListener {
public static JTextField a;
public static JTextField b;
public static JTextField c;
public static String aa1;
public static String bb1;
public static String cc1;
public static JFrame main = new JFrame("Herons Formula");
public static JPanel myPanel = new JPanel(new GridLayout (0,1));
public static void main(String args[]){
Herons object = new Herons();
}
Herons(){
//JFrame main = new JFrame("Herons Formula");
main.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//JPanel myPanel = new JPanel(new GridLayout (0,1));
//JPanel pane = new JPanel(new GridLayout(0,1));
myPanel.setPreferredSize(new Dimension(250,300));
JTextField a = new JTextField(3);
JTextField b = new JTextField(3);
JTextField c = new JTextField(3);
JButton find = new JButton("Calculate!");
main.add(myPanel);
myPanel.add(new JLabel ("Input the lengh of each side:"));
main.add(myPanel);
myPanel.add(new JLabel ("A:"));
myPanel.add(a);
myPanel.add(new JLabel ("B:"));
myPanel.add(b);
myPanel.add(new JLabel ("C:"));
myPanel.add(c);
myPanel.add(find);
//find.setActionCommand("Calculate!");
find.addActionListener(this);
main.pack();
main.setVisible(true);
String aa = a.getText();
String bb = b.getText();
String cc = c.getText();
aa1 = aa;
bb1 = bb;
cc1 = cc;
//JOptionPane.showMessageDialog(null, myPanel);
}
public void actionPerformed(ActionEvent e) {
String actionCommand = ((JButton) e.getSource()).getActionCommand();
//System.out.println("Action command for pressed button: " + actionCommand);
if (actionCommand == "Calculate!") {
main.setVisible(false);
myPanel.setVisible(false);
main.dispose();
//String aa = a.getText();
//String bb = b.getText();
//String cc = c.getText();
double aaa = Double.parseDouble(aa1);
double bbb = Double.parseDouble(bb1);
double ccc = Double.parseDouble(cc1);
double s = 0.5 * (aaa + bbb + ccc);
double area = Math.sqrt(s*(s-aaa)*(s-bbb)*(s-ccc));
area = (int)(area*10000+.5)/10000.0;
if (area == 0){
area = 0;
}
JOptionPane.showMessageDialog(null, "The area of the triangle is: " + area);
}
}
}
Почему строки, где вы получаете текст из текстовых полей, закомментированы? Похоже, он должен работать, если вам просто нравится double aaa = Double.parseDouble (a.getText()); '. – Radiodef