package auftragsverwaltung;
import java.awt.Color;
import java.awt.Component;
import java.awt.Desktop;
import java.awt.Image;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
import java.net.URL;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.ImageIcon;
import javax.swing.JTable;
import javax.swing.RowFilter;
import javax.swing.WindowConstants;
import javax.swing.event.TableModelEvent;
import javax.swing.event.TableModelListener;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableRowSorter;
/**
*
* @author xom
*/
public class Bestandsverwaltung extends javax.swing.JFrame {
Datenbank d = new Datenbank();
/**
* Creates new form Bestandsverwaltung
*/
public Bestandsverwaltung() {
initComponents();
this.setDefaultCloseOperation(WindowConstants.HIDE_ON_CLOSE);
DefaultTableModel dtm = new DefaultTableModel();
dtm = d.BestandstabelleLaden();
Bestandstabelle.setModel(dtm);
dtm = d.InternettabelleLaden();
Internettabelle.setModel(dtm);
Label.setVisible(false);
Internettabelle.setAutoCreateRowSorter(true);
Bestandstabelle.setAutoCreateRowSorter(true);
colourCell(Internettabelle);
updateTable(Bestandstabelle);
logo();
}
/**
* This method is called from within the constructor to initialize the form.
* WARNING: Do NOT modify this code. The content of this method is always
* regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jPanel1 = new javax.swing.JPanel();
jLabel11 = new javax.swing.JLabel();
Logo = new javax.swing.JLabel();
jLabel7 = new javax.swing.JLabel();
Suche = new javax.swing.JTextField();
jScrollPane1 = new javax.swing.JScrollPane();
Bestandstabelle = new javax.swing.JTable();
jLabel1 = new javax.swing.JLabel();
Artikelnummer = new javax.swing.JTextField();
jLabel2 = new javax.swing.JLabel();
Artikelbeschreibung = new javax.swing.JTextField();
jLabel3 = new javax.swing.JLabel();
Einheit = new javax.swing.JTextField();
jLabel4 = new javax.swing.JLabel();
Mindestmenge = new javax.swing.JTextField();
jLabel5 = new javax.swing.JLabel();
AktuellerBestand = new javax.swing.JTextField();
jScrollPane2 = new javax.swing.JScrollPane();
Internettabelle = new javax.swing.JTable();
jLabel6 = new javax.swing.JLabel();
Internetadresse = new javax.swing.JTextField();
Hinzufügen = new javax.swing.JButton();
Löschen = new javax.swing.JButton();
HinzufügenI = new javax.swing.JButton();
LöschenI = new javax.swing.JButton();
Label = new javax.swing.JLabel();
plus = new javax.swing.JButton();
minus = new javax.swing.JButton();
Bestandsänderung = new javax.swing.JTextField();
jLabel8 = new javax.swing.JLabel();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setMinimumSize(new java.awt.Dimension(1607, 830));
jPanel1.setBackground(new java.awt.Color(0, 0, 0));
jPanel1.setMaximumSize(new java.awt.Dimension(755, 128));
jLabel11.setBackground(new java.awt.Color(0, 0, 0));
jLabel11.setFont(new java.awt.Font("Tahoma", 3, 48)); // NOI18N
jLabel11.setForeground(new java.awt.Color(255, 255, 255));
jLabel11.setText("Bestandsverwaltung");
jLabel7.setFont(new java.awt.Font("Tahoma", 3, 14)); // NOI18N
jLabel7.setForeground(new java.awt.Color(255, 255, 255));
jLabel7.setText("Suche: ");
Suche.setFont(new java.awt.Font("Tahoma", 3, 12)); // NOI18N
Suche.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
SucheActionPerformed(evt);
}
});
Suche.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyReleased(java.awt.event.KeyEvent evt) {
SucheKeyReleased(evt);
}
});
javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
jPanel1.setLayout(jPanel1Layout);
jPanel1Layout.setHorizontalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGap(190, 190, 190)
.addComponent(jLabel11, javax.swing.GroupLayout.PREFERRED_SIZE, 514, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addGroup(jPanel1Layout.createSequentialGroup()
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jLabel7)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(Suche, javax.swing.GroupLayout.PREFERRED_SIZE, 179, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(296, 296, 296)))
.addComponent(Logo, javax.swing.GroupLayout.PREFERRED_SIZE, 191, javax.swing.GroupLayout.PREFERRED_SIZE))
);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGap(49, 49, 49)
.addComponent(jLabel11)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 21, Short.MAX_VALUE)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(Suche, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel7))
.addContainerGap())
.addComponent(Logo, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
);
Bestandstabelle.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
},
new String [] {
"Artikelnummer", "Artikelbeschreibung", "Einheit", "Mindestmenge", "Aktueller Bestand", "Nachbestellt"
}
) {
Class[] types = new Class [] {
java.lang.Object.class, java.lang.Object.class, java.lang.Object.class, java.lang.Object.class, java.lang.Object.class, java.lang.Boolean.class
};
public Class getColumnClass(int columnIndex) {
return types [columnIndex];
}
});
Bestandstabelle.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
BestandstabelleMouseClicked(evt);
}
});
jScrollPane1.setViewportView(Bestandstabelle);
jLabel1.setFont(new java.awt.Font("Tahoma", 3, 14)); // NOI18N
jLabel1.setText("Artikelnummer:");
Artikelnummer.setFont(new java.awt.Font("Tahoma", 3, 12)); // NOI18N
Artikelnummer.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
ArtikelnummerActionPerformed(evt);
}
});
Artikelnummer.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyPressed(java.awt.event.KeyEvent evt) {
ArtikelnummerKeyPressed(evt);
}
});
jLabel2.setFont(new java.awt.Font("Tahoma", 3, 14)); // NOI18N
jLabel2.setText("Artikelbeschreibung:");
Artikelbeschreibung.setFont(new java.awt.Font("Tahoma", 3, 12)); // NOI18N
Artikelbeschreibung.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
ArtikelbeschreibungActionPerformed(evt);
}
});
jLabel3.setFont(new java.awt.Font("Tahoma", 3, 14)); // NOI18N
jLabel3.setText("Einheit:");
Einheit.setFont(new java.awt.Font("Tahoma", 3, 12)); // NOI18N
Einheit.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
EinheitActionPerformed(evt);
}
});
jLabel4.setFont(new java.awt.Font("Tahoma", 3, 14)); // NOI18N
jLabel4.setText("Mindestmenge:");
Mindestmenge.setFont(new java.awt.Font("Tahoma", 3, 12)); // NOI18N
Mindestmenge.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
MindestmengeActionPerformed(evt);
}
});
jLabel5.setFont(new java.awt.Font("Tahoma", 3, 14)); // NOI18N
jLabel5.setText("Aktueller Bestand:");
AktuellerBestand.setFont(new java.awt.Font("Tahoma", 3, 12)); // NOI18N
AktuellerBestand.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
AktuellerBestandActionPerformed(evt);
}
});
Internettabelle.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
},
new String [] {
"Artikelbeschreibung", "Internetadresse"
}
));
Internettabelle.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
InternettabelleMouseClicked(evt);
}
});
jScrollPane2.setViewportView(Internettabelle);
jLabel6.setFont(new java.awt.Font("Tahoma", 3, 14)); // NOI18N
jLabel6.setText("Internetadresse:");
Internetadresse.setFont(new java.awt.Font("Tahoma", 3, 12)); // NOI18N
Internetadresse.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
InternetadresseActionPerformed(evt);
}
});
Internetadresse.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyPressed(java.awt.event.KeyEvent evt) {
InternetadresseKeyPressed(evt);
}
});
Hinzufügen.setBackground(new java.awt.Color(0, 0, 0));
Hinzufügen.setFont(new java.awt.Font("Tahoma", 3, 18)); // NOI18N
Hinzufügen.setForeground(new java.awt.Color(255, 255, 255));
Hinzufügen.setText("Hinzufügen");
Hinzufügen.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
HinzufügenActionPerformed(evt);
}
});
Löschen.setBackground(new java.awt.Color(0, 0, 0));
Löschen.setFont(new java.awt.Font("Tahoma", 3, 18)); // NOI18N
Löschen.setForeground(new java.awt.Color(255, 255, 255));
Löschen.setText("Löschen");
Löschen.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
LöschenActionPerformed(evt);
}
});
HinzufügenI.setBackground(new java.awt.Color(0, 0, 0));
HinzufügenI.setFont(new java.awt.Font("Tahoma", 3, 14)); // NOI18N
HinzufügenI.setForeground(new java.awt.Color(255, 255, 255));
HinzufügenI.setText("Hinzufügen");
HinzufügenI.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
HinzufügenIActionPerformed(evt);
}
});
LöschenI.setBackground(new java.awt.Color(0, 0, 0));
LöschenI.setFont(new java.awt.Font("Tahoma", 3, 14)); // NOI18N
LöschenI.setForeground(new java.awt.Color(255, 255, 255));
LöschenI.setText("Löschen");
LöschenI.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
LöschenIActionPerformed(evt);
}
});
Label.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
Label.setForeground(new java.awt.Color(255, 0, 0));
Label.setText("Label");
plus.setBackground(new java.awt.Color(0, 0, 0));
plus.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
plus.setForeground(new java.awt.Color(255, 255, 255));
plus.setText("+");
plus.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
plusActionPerformed(evt);
}
});
minus.setBackground(new java.awt.Color(0, 0, 0));
minus.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
minus.setForeground(new java.awt.Color(255, 255, 255));
minus.setText("-");
minus.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
minusActionPerformed(evt);
}
});
jLabel8.setFont(new java.awt.Font("Tahoma", 3, 14)); // NOI18N
jLabel8.setText("Bestandsänderung:");
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(315, 315, 315)
.addComponent(plus))
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel8, javax.swing.GroupLayout.PREFERRED_SIZE, 145, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel5))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addComponent(minus, javax.swing.GroupLayout.PREFERRED_SIZE, 43, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(Bestandsänderung, javax.swing.GroupLayout.PREFERRED_SIZE, 109, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(49, 49, 49))
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(Einheit, javax.swing.GroupLayout.PREFERRED_SIZE, 179, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(Artikelnummer, javax.swing.GroupLayout.PREFERRED_SIZE, 179, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(AktuellerBestand, javax.swing.GroupLayout.PREFERRED_SIZE, 179, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))))
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addGroup(layout.createSequentialGroup()
.addComponent(jLabel2)
.addGap(18, 18, 18)
.addComponent(Artikelbeschreibung, javax.swing.GroupLayout.PREFERRED_SIZE, 179, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(layout.createSequentialGroup()
.addComponent(jLabel4)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(Mindestmenge, javax.swing.GroupLayout.PREFERRED_SIZE, 179, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addComponent(Hinzufügen, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 145, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(Löschen, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 145, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel3)
.addGroup(layout.createSequentialGroup()
.addComponent(jLabel1)
.addGap(50, 50, 50)
.addComponent(Label)))
.addGap(0, 0, Short.MAX_VALUE)))
.addGap(0, 29, Short.MAX_VALUE))
.addGroup(layout.createSequentialGroup()
.addComponent(jLabel6)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addComponent(LöschenI, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(HinzufügenI, javax.swing.GroupLayout.DEFAULT_SIZE, 188, Short.MAX_VALUE)
.addComponent(Internetadresse))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE)))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 851, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(Artikelnummer, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel1)
.addComponent(Artikelbeschreibung, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel2))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(Einheit, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel3)
.addComponent(Mindestmenge, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel4))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(AktuellerBestand, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel5))
.addGap(13, 13, 13)
.addComponent(Hinzufügen, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(plus)
.addComponent(minus)
.addComponent(Bestandsänderung, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel8, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(Löschen, javax.swing.GroupLayout.PREFERRED_SIZE, 23, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(140, 140, 140)
.addComponent(Label)
.addGap(77, 77, 77)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 265, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(Internetadresse, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel6))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(HinzufügenI)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(LöschenI))))
.addComponent(jScrollPane1))
.addContainerGap())
);
pack();
}// </editor-fold>
private void ArtikelnummerActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
private void ArtikelbeschreibungActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
private void EinheitActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
private void MindestmengeActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
private void AktuellerBestandActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
private void InternetadresseActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
private void HinzufügenActionPerformed(java.awt.event.ActionEvent evt) {
Bestand b = new Bestand();
DefaultTableModel dtm = (DefaultTableModel) Bestandstabelle.getModel();
if (Artikelnummer.getText().length() == 0) {
Label.setText("Bitte Artikelnummer angeben");
d.visible(Label);
} else if (Artikelbeschreibung.getText().length() == 0) {
Label.setText("Bitte Artikelbeschreibung angeben");
d.visible(Label);
} else {
b.setArtikelnummer(Artikelnummer.getText());
if (Artikelbeschreibung.getText().length() == 0) {
b.setArtikelbeschreibung("-");
} else {
b.setArtikelbeschreibung(Artikelbeschreibung.getText());
}
if (Einheit.getText().length() == 0) {
b.setEinheit("stk");
} else {
b.setEinheit(Einheit.getText());
}
if (Mindestmenge.getText().length() == 0) {
int m = 0;
b.setMindestmenge(m);
} else {
int m = Integer.parseInt(Mindestmenge.getText());
b.setMindestmenge(m);
}
if (AktuellerBestand.getText().length() == 0) {
int m = 0;
b.setAktuellerBestand(m);
} else {
int m = Integer.parseInt(AktuellerBestand.getText());
b.setAktuellerBestand(m);
}
b.setNachbestellte(false);
String artikelNummer;
String artikelBeschreibung;
boolean schonDa = false;
for (int i = 0; i < Bestandstabelle.getRowCount(); i++) {
artikelNummer = Bestandstabelle.getValueAt(i, 0).toString().trim();
artikelBeschreibung = Bestandstabelle.getValueAt(i, 1).toString().trim();
if (Artikelnummer.getText().equals(artikelNummer) || Artikelbeschreibung.getText().equals(artikelBeschreibung)) {
schonDa = true;
break;
}
}
if (!schonDa) {
dtm.addRow(new Object[]{b.getArtikelnummer(), b.getArtikelbeschreibung(), b.getEinheit(),
b.getMindestmenge(), b.getAktuellerBestand(), b.getNachbestellte()});
Label.setVisible(false);
Artikelnummer.setText(null);
Artikelbeschreibung.setText(null);
Einheit.setText(null);
Mindestmenge.setText(null);
AktuellerBestand.setText(null);
try {
d.BestandHinzufügen(b);
} catch (SQLException ex) {
Logger.getLogger(Bestandsverwaltung.class.getName()).log(Level.SEVERE, null, ex);
}
} else {
Label.setText("Artikel schon vorhanden");
d.visible(Label);
}
}
}
private void LöschenActionPerformed(java.awt.event.ActionEvent evt) {
DefaultTableModel dtm = (DefaultTableModel) Bestandstabelle.getModel();
Datenbank d = new Datenbank();
int x = Bestandstabelle.getSelectedRow();
String artikelnummer = (String) Bestandstabelle.getValueAt(x, 0);
dtm.removeRow(x);
try {
d.BestandLöschen(x, artikelnummer);
} catch (SQLException ex) {
Logger.getLogger(Bestandsverwaltung.class.getName()).log(Level.SEVERE, null, ex);
}
}
private void HinzufügenIActionPerformed(java.awt.event.ActionEvent evt) {
int x = Bestandstabelle.getSelectedRow();
if (x == -1) {
Label.setText("Bittel Artikel auswählen");
d.visible(Label);
} else if (Artikelbeschreibung.getText().length() == 0) {
Label.setText("Bitte Artikelbeschreibung angeben");
d.visible(Label);
} else if (Internetadresse.getText().length() == 0) {
Label.setText("Bitte Internetadresse angeben");
d.visible(Label);
} else if (Internetadresse.getText().length() != 0 && Artikelbeschreibung.getText().length() != 0) {
String url = Internetadresse.getText();
if (!(website(url))) {
Label.setText("keine gültige Internetadresse");
d.visible(Label);
} else {
String A = Artikelbeschreibung.getText();
String I = Internetadresse.getText();
DefaultTableModel dtm = (DefaultTableModel) Internettabelle.getModel();
Datenbank d = new Datenbank();
dtm.addRow(new Object[]{A, I});
try {
d.InternetHinzufügen(A, I);
} catch (SQLException ex) {
Logger.getLogger(Bestandsverwaltung.class.getName()).log(Level.SEVERE, null, ex);
}
Internetadresse.setText(null);
}
}
}
private void LöschenIActionPerformed(java.awt.event.ActionEvent evt) {
DefaultTableModel dtm = (DefaultTableModel) Internettabelle.getModel();
Datenbank d = new Datenbank();
int x = Internettabelle.getSelectedRow();
String internetadresse = (String) Internettabelle.getValueAt(x, 1);
dtm.removeRow(x);
try {
d.InternetLöschen(x, internetadresse);
} catch (SQLException ex) {
Logger.getLogger(Bestandsverwaltung.class.getName()).log(Level.SEVERE, null, ex);
}
}
private void ArtikelnummerKeyPressed(java.awt.event.KeyEvent evt) {
Label.setVisible(false);
}
private void InternetadresseKeyPressed(java.awt.event.KeyEvent evt) {
Label.setVisible(false);
}
private void BestandstabelleMouseClicked(java.awt.event.MouseEvent evt) {
DefaultTableModel dtm = (DefaultTableModel) Bestandstabelle.getModel();
int i = Bestandstabelle.getSelectedRow();
String artikelNummer = (String) (Bestandstabelle.getModel().getValueAt(i, 0));
Artikelnummer.setText(artikelNummer);
String artikelBeschreibung = (String) (Bestandstabelle.getModel().getValueAt(i, 1));
if (artikelBeschreibung.equals("-")) {
artikelBeschreibung = "";
}
Artikelbeschreibung.setText(artikelBeschreibung);
String einheit = (String) (Bestandstabelle.getModel().getValueAt(i, 2));
Einheit.setText(einheit);
int mindestMenge = (int) (Bestandstabelle.getModel().getValueAt(i, 3));
String m = Integer.toString(mindestMenge);
Mindestmenge.setText(m);
int aktuellerBestand = (int) (Bestandstabelle.getModel().getValueAt(i, 4));
String a = Integer.toString(aktuellerBestand);
AktuellerBestand.setText(a);
}
private void SucheActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
private void SucheKeyReleased(java.awt.event.KeyEvent evt) {
DefaultTableModel dtm = (DefaultTableModel) Bestandstabelle.getModel();
DefaultTableModel model = (DefaultTableModel) Internettabelle.getModel();
TableRowSorter<DefaultTableModel> tr
= new TableRowSorter<DefaultTableModel>(dtm);
TableRowSorter<DefaultTableModel> trs
= new TableRowSorter<DefaultTableModel>(model);
String suche = Suche.getText();
Bestandstabelle.setRowSorter(tr);
Internettabelle.setRowSorter(trs);
tr.setRowFilter(RowFilter.regexFilter(suche));
trs.setRowFilter(RowFilter.regexFilter(suche));
}
private void InternettabelleMouseClicked(java.awt.event.MouseEvent evt) {
int x = Internettabelle.getSelectedRow();
cell();
}
private void plusActionPerformed(java.awt.event.ActionEvent evt) {
int row = Bestandstabelle.getSelectedRow();
if (row == -1) {
Label.setText("Bitte Artikel auswählen");
d.visible(Label);
} else {
int aktuellerBestand = (int) Bestandstabelle.getValueAt(row, 4);
int aenderung;
if (Bestandsänderung.getText().length() == 0) {
aenderung = 1;
} else {
aenderung = Integer.parseInt(Bestandsänderung.getText());
}
aktuellerBestand += aenderung;
String neu = Integer.toString(aktuellerBestand);
String artikelNummer = (String) Bestandstabelle.getValueAt(row, 0);
String artikelBeschreibung = (String) Bestandstabelle.getValueAt(row, 1);
String einheit = (String) Bestandstabelle.getValueAt(row, 2);
int mindestMenge = (int) Bestandstabelle.getValueAt(row, 3);
Boolean x = (Boolean) Bestandstabelle.getValueAt(row, 5);
AktuellerBestand.setText(neu);
DefaultTableModel dtm = (DefaultTableModel) Bestandstabelle.getModel();
dtm.removeRow(row);
dtm.addRow(new Object[]{artikelNummer, artikelBeschreibung, einheit, mindestMenge, aktuellerBestand, x});
updateTable(Bestandstabelle);
Label.setVisible(false);
Artikelnummer.setText(null);
Artikelbeschreibung.setText(null);
Einheit.setText(null);
Mindestmenge.setText(null);
AktuellerBestand.setText(null);
}
}
private void minusActionPerformed(java.awt.event.ActionEvent evt) {
int row = Bestandstabelle.getSelectedRow();
if (row == -1) {
Label.setText("Bitte Artikel auswählen");
d.visible(Label);
} else {
int aktuellerBestand = (int) Bestandstabelle.getValueAt(row, 4);
int aenderung;
if (Bestandsänderung.getText().length() == 0) {
aenderung = 1;
} else {
aenderung = Integer.parseInt(Bestandsänderung.getText());
}
aktuellerBestand -= aenderung;
String neu = Integer.toString(aktuellerBestand);
String artikelNummer = (String) Bestandstabelle.getValueAt(row, 0);
String artikelBeschreibung = (String) Bestandstabelle.getValueAt(row, 1);
String einheit = (String) Bestandstabelle.getValueAt(row, 2);
int mindestMenge = (int) Bestandstabelle.getValueAt(row, 3);
Boolean x = (Boolean) Bestandstabelle.getValueAt(row, 5);
AktuellerBestand.setText(neu);
DefaultTableModel dtm = (DefaultTableModel) Bestandstabelle.getModel();
dtm.removeRow(row);
dtm.addRow(new Object[]{artikelNummer, artikelBeschreibung, einheit, mindestMenge, aktuellerBestand, x});
updateTable(Bestandstabelle);
Artikelnummer.setText(null);
Artikelbeschreibung.setText(null);
Einheit.setText(null);
Mindestmenge.setText(null);
AktuellerBestand.setText(null);
}
}
private void cell() {
Internettabelle.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(final MouseEvent e) {
if (e.getClickCount() == 1) {
final JTable jTable = (JTable) e.getSource();
final int row = jTable.getSelectedRow();
final int column = jTable.getSelectedColumn();
final String web = (String) jTable.getValueAt(row, column);
Desktop d = Desktop.getDesktop();
try {
d.browse(new URI(web));
} catch (URISyntaxException ex) {
Logger.getLogger(Bestandsverwaltung.class.getName()).log(Level.SEVERE, null, ex);
} catch (IOException ex) {
Logger.getLogger(Bestandsverwaltung.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
});
}
private void colourCell(JTable Internettabelle) {
Internettabelle.setDefaultRenderer(Object.class, new DefaultTableCellRenderer() {
@Override
public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus, int row, int column) {
Component c = super.getTableCellRendererComponent(table, value,
isSelected, hasFocus, row, column);
if (column == 0) {
c.setForeground(Color.black);
return c;
}
if (column == 1) {
c.setForeground(Color.blue);
return c;
}
return null;
}
});
}
public JTable updateTable(JTable bestandstabelle) {
bestandstabelle.getModel().addTableModelListener(new TableModelListener() {
@Override
public void tableChanged(TableModelEvent e) {
for (int i = 0; i < bestandstabelle.getRowCount(); i++) {
String artikelNummer = (String) bestandstabelle.getValueAt(i, 0);
String artikelBeschreibung = (String) bestandstabelle.getValueAt(i, 1);
String einheit = (String) bestandstabelle.getValueAt(i, 2);
int mindestMenge = (int) bestandstabelle.getValueAt(i, 3);
int aktuellerBestand = (int) bestandstabelle.getValueAt(i, 4);
Boolean x = (Boolean) bestandstabelle.getValueAt(i, 5);
if (x == true) {
update(artikelNummer, artikelBeschreibung, einheit, mindestMenge, aktuellerBestand, x);
}
if (x == false) {
update(artikelNummer, artikelBeschreibung, einheit, mindestMenge, aktuellerBestand,x);
}
}
}
});
return bestandstabelle;
}
public void update(String artikelNummer, String artikelBeschreibung, String einheit, int mindestMenge, int aktuellerBestand, Boolean x) {
try {
Class.forName("org.sqlite.JDBC");
Connection con = DriverManager.getConnection("jdbc:sqlite:meineDB.db");
String sql = "Update Bestand SET Artikelbeschreibung =?, Einheit =? , Mindestmenge=?, AktuellerBestand=? , Nachbestellt =? WHERE Artikelnummer=?";
PreparedStatement pst = con.prepareStatement(sql);
pst.setString(1, artikelBeschreibung);
pst.setString(2, einheit);
pst.setInt(3, mindestMenge);
pst.setInt(4, aktuellerBestand);
pst.setBoolean(5, x);
pst.setString(6, artikelNummer);
pst.executeUpdate();
pst.close();
con.close();
} catch (ClassNotFoundException ex) {
Logger.getLogger(Bestandsverwaltung.class.getName()).log(Level.SEVERE, null, ex);
} catch (SQLException ex) {
Logger.getLogger(Bestandsverwaltung.class.getName()).log(Level.SEVERE, null, ex);
}
}
public void logo() {
ImageIcon icon = new ImageIcon("logo.png");
Image bild = icon.getImage().getScaledInstance(Logo.getWidth(), Logo.getHeight(), Image.SCALE_SMOOTH);
ImageIcon neu = new ImageIcon(bild);
Logo.setIcon(neu);
}
public void add(Bestand b) {
Datenbank d = new Datenbank();
try {
d.BestandHinzufügen(b);
} catch (SQLException ex) {
Logger.getLogger(Bestandsverwaltung.class.getName()).log(Level.SEVERE, null, ex);
}
}
public void delete(Bestand b) {
int row = Bestandstabelle.getSelectedRow();
String artikelnummer = (String) Bestandstabelle.getValueAt(row, 0);
Datenbank d = new Datenbank();
try {
d.BestandLöschen(row, artikelnummer);
} catch (SQLException ex) {
Logger.getLogger(Bestandsverwaltung.class.getName()).log(Level.SEVERE, null, ex);
}
}
private boolean website(String url) {
/* Try creating a valid URL */
try {
new URL(url).toURI();
return true;
} // If there was an Exception
// while creating URL object
catch (Exception e) {
return false;
}
}
/**
* @param args the command line arguments
*/
// Variables declaration - do not modify
private javax.swing.JTextField AktuellerBestand;
private javax.swing.JTextField Artikelbeschreibung;
private javax.swing.JTextField Artikelnummer;
private javax.swing.JTable Bestandstabelle;
private javax.swing.JTextField Bestandsänderung;
private javax.swing.JTextField Einheit;
private javax.swing.JButton Hinzufügen;
private javax.swing.JButton HinzufügenI;
private javax.swing.JTextField Internetadresse;
private javax.swing.JTable Internettabelle;
private javax.swing.JLabel Label;
private javax.swing.JLabel Logo;
private javax.swing.JButton Löschen;
private javax.swing.JButton LöschenI;
private javax.swing.JTextField Mindestmenge;
private javax.swing.JTextField Suche;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel11;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
private javax.swing.JLabel jLabel6;
private javax.swing.JLabel jLabel7;
private javax.swing.JLabel jLabel8;
private javax.swing.JPanel jPanel1;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JScrollPane jScrollPane2;
private javax.swing.JButton minus;
private javax.swing.JButton plus;
// End of variables declaration
}