algorithms-for-computing-li.../LinearRegressionTool/src/main/java/de/wwwu/awolf/view/listener/GenerateDataListener.java

71 lines
2.4 KiB
Java

package de.wwwu.awolf.view.listener;
import de.wwwu.awolf.presenter.Presenter;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.util.Locale;
/**
* Implementierung verschiedener Algorithmen zur Berechnung von Ausgleichsgeraden.
*
* @Author: Armin Wolf
* @Email: a_wolf28@uni-muenster.de
* @Date: 10.09.2017.
*/
public class GenerateDataListener implements ActionListener {
private Presenter presenter;
private JDialog dialog;
/**
* Konstruktor
*
* @param presenter Presenter
*/
public GenerateDataListener(Presenter presenter) {
this.presenter = presenter;
}
@Override
public void actionPerformed(ActionEvent e) {
SwingUtilities.invokeLater(() -> {
if (dialog == null || !dialog.isVisible()) {
dialog = new JDialog();
dialog.setTitle("generiere Datensatz");
dialog.setAlwaysOnTop(true);
NumberFormat numberFormat = NumberFormat.getNumberInstance(Locale.getDefault());
DecimalFormat decimalFormat = (DecimalFormat) numberFormat;
decimalFormat.setGroupingUsed(false);
JTextField textField = new JFormattedTextField(decimalFormat);
textField.setColumns(10);
textField.setText("20");
JButton aproveButton = new JButton("start");
String[] options = {"Punktwolke", "Gerade", "Kreis und Gerade"};
JComboBox<String> datasetTypeComboBox = new JComboBox<>(options);
dialog.setSize(350, 70);
dialog.setLayout(new FlowLayout());
dialog.setResizable(false);
dialog.setLocationRelativeTo(presenter.getView());
dialog.add(datasetTypeComboBox);
dialog.add(textField);
dialog.add(aproveButton);
aproveButton.addActionListener(e1 -> {
int n = Integer.parseInt(textField.getText());
int type = datasetTypeComboBox.getSelectedIndex();
Thread t = new Thread(() -> presenter.generateDataset(n, type));
t.start();
dialog.dispose();
});
dialog.setVisible(true);
}
});
}
}