Вывод не в консоли, а в TextArea
Имеется такой код:
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class MainWindow extends JFrame {
private JPanel panel;
private JButton button1;
private JTextField textField1;
private JTextArea textArea1;
public class MyButtonListener implements ActionListener {
public void actionPerformed(ActionEvent actionEvent) {
double a = -7.213, b = -3.8, Xn = -2, Xk = 2, dX = 0.4, z = 0;
double x = Xn;
System.out.println("x z");
while (x <= Xk) {
if (a * x * x - b < 0) {
z = Math.sin(x);
} else if ((a * x * x - b >= 0) & (Math.abs(a) >= x * x * x)) {
z = (Math.cos(Math.abs(a * x / b)));
} else if ((a * x * x - b >= 0) & (Math.abs(a) < x * x * x)) {
z = (x * x - a * x + b * x * b * x * Math.abs(x - a));
}
System.out.println(x);
System.out.println(" " + z);
x += dX;
}
}
}
public MainWindow(){
this.getContentPane().add(panel);
this.button1.addActionListener(new MyButtonListener());
}
}
И имеется такой GUI.
Как сделать, чтобы при нажатии на кнопку button, вычисления выводились не в консоли, а в textArea? или в TextLabel, главное чтобы вычисления появлялись в графическом интерфейсе программы
Ответы (1 шт):
Автор решения: Jeka_FRIZZ
→ Ссылка
public class MainWindow extends JFrame {
private JPanel panel;
private JButton button1;
private JTextField textField1;
private JTextArea textArea1;
private DefaultListModel<String> listX = new DefaultListModel<>();
private DefaultListModel<String> listZ = new DefaultListModel();
public class MyButtonListener implements ActionListener {
public void actionPerformed(ActionEvent actionEvent) {
double a = -7.213, b = -3.8, Xn = -2, Xk = 2, dX = 0.4, z = 0;
double x = Xn;
System.out.println("x z");
while (x <= Xk) {
if (a * x * x - b < 0) {
z = Math.sin(x);
} else if ((a * x * x - b >= 0) & (Math.abs(a) >= x * x * x)) {
z = (Math.cos(Math.abs(a * x / b)));
} else if ((a * x * x - b >= 0) & (Math.abs(a) < x * x * x)) {
z = (x * x - a * x + b * x * b * x * Math.abs(x - a));
}
listX.addElement(String.valueOf(x));
listZ.addElement(" " + String.valueOf(z));
System.out.println(x);
System.out.println(" " + z);
x += dX;
}
}
}
public MainWindow(){
this.getContentPane().add(panel);
this.button1.addActionListener(new MyButtonListener());
add(new JList(listX));
add(new JList(listZ));
}
}
}
