This is the code I have so far:
package graphischeOberfläche;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.EventQueue;
import java.awt.List;
import java.sql.*;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.data.xy.XYDataset;
import org.jfree.data.xy.XYSeries;
import org.jfree.data.xy.XYSeriesCollection;
import javax.swing.JList;
import javax.swing.JOptionPane;
import javax.swing.JScrollPane;
import javax.swing.BorderFactory;
import javax.swing.DefaultListModel;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JTextField;
import javax.swing.JLabel;
@SuppressWarnings("serial")
public class Graphische_Oberfläche extends JFrame {
private JPanel contentPane;
DefaultListModel<String> model = new DefaultListModel<String>();
Map<Integer, ArtikelDurationStatistic> myStat = new HashMap<>();
JList list = new JList();
private Connection conn;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Graphische_Oberfläche frame = new Graphische_Oberfläche();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public Graphische_Oberfläche() {
gui();
}
public void gui() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 821, 611);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
JButton verbindenbtn = new JButton("Verbinden");
verbindenbtn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
datenabfrage();
verbinden();
}
});
verbindenbtn.setBounds(44, 10, 96, 21);
contentPane.add(verbindenbtn);
JScrollPane scrollPane = new JScrollPane();
scrollPane.setBounds(25, 42, 748, 253);
contentPane.add(scrollPane);
scrollPane.setViewportView(list);
}
private void verbinden() {
datenabfrage();
}
private Connection getConnection() {
String connString = "jdbc:sqlserver://localhost\\sqlexpress;databaseName=FFC";
String user = "sa";
String password = "hsvs12";
try {
if (conn == null || conn.isClosed()) {
conn = DriverManager.getConnection(connString, user, password);
System.out.println("DB connection OK");
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("ERROR on DB connection");
}
return conn;
}
public void datenabfrage() {
String query = " SELECT DISTINCT * FROM [FFC].[dbo].[PRODUKTIONAUFTRAGPROTOKOLL] WHERE PRODANLAGEID = 1";
try {
myStat.clear();
conn = getConnection();
Statement stmt = (Statement) conn.createStatement();
ResultSet rs = stmt.executeQuery(query);
while (rs.next()) {
int artikelNr = rs.getInt("ARTIKELNR");
String artikelBez = rs.getString("ARTIKELBEZ");
double sollMenge = rs.getDouble("SOLLMENGE");
double istMenge = rs.getDouble("ISTMENGE");
int chargenSoll = rs.getInt("CHARGENSOLL");
int chargenIst = rs.getInt("CHARGENIST");
Date startZeit = rs.getDate("STARTZEIT");
Date endeZeit = rs.getDate("ENDEZEIT");
int prodAnlageId = rs.getInt("PRODANLAGEID");
int rezeptVersion = rs.getInt("REZEPTVERSION");
Date predictedProddDuration = rs.getDate("PREDICTEDPRODDURATION");
if (predictedProddDuration != null) {
ArtikelDurationStatistic tmp = null;
if (!myStat.containsKey(artikelNr)) {
tmp = new ArtikelDurationStatistic();
tmp.artikelNr = artikelNr;
tmp.artikelBez = artikelBez;
myStat.put(artikelNr, tmp);
String artikel = "" + artikelNr + " - " + artikelBez;
model.addElement(artikel);
}
tmp = myStat.get(artikelNr);
Long statistic = (endeZeit.getTime() - startZeit.getTime()) - predictedProddDuration.getTime();
tmp.statisticEntries.add(statistic);
}
}
list.setListData(model.toArray());
} catch (Exception e) {
// TODO: handle exception
}
}
}