Von der Datenbank zum Textfield

Hey Leute, ich hab folgendes problem ? ich möchte von einer ausgewählten Reihe eines JTables die Daten aus der Datenbank holen und sie einem Textfield hinzufügen. jetzt ist das Problem das egal welche reihe ich auswähle er mir immer die daten der ersten ausgibt und ich weiß einfach nicht woran das liegt ??

Java:
try {
                String beschreibung = (String) Auftragstabelle.getValueAt(row, 3);
                Label2.setVisible(false);
                Class.forName("org.sqlite.JDBC");
                Connection con = DriverManager.getConnection("jdbc:sqlite:meineDB.db");                
                String sql = "SELECT * FROM Auftrag WHERE Auftragsbeschreibung=?";
                PreparedStatement pst = con.prepareStatement(sql);   
                pst.setString(1, beschreibung);
                ResultSet rst = pst.executeQuery();
                String vereinsname = rst.getString(7);
                System.out.println(vereinsname);

                
                
                
                con.close();
                 
                jDadd.setVisible(true);
            } catch (ClassNotFoundException ex) {
                Logger.getLogger(Aufträgeverwalten.class.getName()).log(Level.SEVERE, null, ex);
            } catch (SQLException ex) {
                Logger.getLogger(Aufträgeverwalten.class.getName()).log(Level.SEVERE, null, ex);
            }
 
Erstmal ist es ziemlich komisch, dass du eindeutige (?) Datensätze anhand eines Beschreibungstextes auslesen willst, aber gut.

Bist du sicher, dass dein Code so überhaupt ausgeführt wird? Eigentlich sollte da sowas fliegen wie:
java.sql.SQLException: Before start of result set
Falls das wirklich nicht der Fall sein sollte: Hast du mal überprüft, ob in deiner Variablen "beschreibung" sich der Wert auch ändert, je nachdem welche Zeile zu auswählst?
 
Des sql exception ist weiter oben ich hab nur den wichtigen teil gepostet aber ich habs grad gelöst indem ich die auftragsnummer überprüf =)

Java:
            try {
               
                int A = (int) Auftragstabelle.getValueAt(row, 0);
               
                Label2.setVisible(false);
                Class.forName("org.sqlite.JDBC");
                Connection con = DriverManager.getConnection("jdbc:sqlite:meineDB.db");               
                String sql = "SELECT * FROM Auftrag ";
                Statement st = con.createStatement();
                ResultSet rst = st.executeQuery(sql);
               
                while (rst.next()) {
                    int auftragsnummer = rst.getInt(2);
                   
                    if(A==auftragsnummer){
                        Auftragsbeschreibung.setText(rst.getString(3));                       
                        Vereinsname.setText(rst.getString(7));
                        String auftraggeber = rst.getString(8);
                        String[] split = auftraggeber.split(" ");
                        Nachname.setText(split[0]);
                        if(Nachname.getText().equals("-")){
                            Nachname.setText(null);
                        }
                        Vorname.setText(split[1]);
                        Telefonnummer.setText(rst.getString(9));
                        Handynummer.setText(rst.getString(10));
                        Email.setText(rst.getString(11));
                        Strasse.setText(rst.getString(12));
                        PLZ.setText(rst.getString(13));
                        Ort.setText(rst.getString(14));
                        Land.setText(rst.getString(15));
                        int string = rst.getInt(16);
                        Fertigungsdauer.setText(Integer.toString(string));
                        string = rst.getInt(17);
                        Lieferzeit.setText(Integer.toString(string));
                        double wert = rst.getDouble(30);
                        Lieferkosten.setText(Double.toString(wert));
                        String b = rst.getString(20);
                        if(!(b.equals("-"))){
                           bildEinfügen(b);
                        }
                       
                        wert = rst.getDouble(30);
                       
                       
                    }
                }
ich weiß das es code technische nicht ganz ausgereift ist aber ich hab noch nicht so viel erfahrung mit Datenbanken
 
So sollte das klappen (Hatte jetzt keine Lust mir ein vernünftiges Datenmodell auszudenken):
Java:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Arrays;

public class App {
	public static void main(String[] args) throws Exception {
		MyCon m = new MyCon();
		try {
			m.addRow(new String[] { "test1", "test2", "test3", "test4", "test5" });
		} catch (SQLException e) {
			System.out.println("Auftraege.one (test1) already exists.");
		}
		System.out.println(m.getRow("test-1"));
		System.out.println(Arrays.toString(m.getRow("test1")));
	}
}

class MyCon {
	Connection con = null;

	MyCon() throws Exception {
		Class.forName("org.sqlite.JDBC");
		con = DriverManager.getConnection("jdbc:sqlite:meineDB.db");
		try (Statement s = con.createStatement()) {
			s.execute("CREATE TABLE IF NOT EXISTS Auftraege (id integer PRIMARY KEY, one text NOT NULL UNIQUE, two text, three text, four text, five text);");
		}
	}

	void closeCon() throws SQLException {
		con.close();
	}

	int addRow(String[] row) throws SQLException {
		try (PreparedStatement pre = con.prepareStatement("insert into Auftraege (one, two, three, four, five) values(?,?,?,?,?)")) {
			pre.setString(1, row[0]);
			pre.setString(2, row[1]);
			pre.setString(3, row[2]);
			pre.setString(4, row[3]);
			pre.setString(5, row[4]);
			return pre.executeUpdate();
		}
	}

	String[] getRow(String whereOne) throws SQLException {
		try (PreparedStatement pre = con.prepareStatement("select * from Auftraege where one = ?")) {
			pre.setString(1, whereOne);
			try (ResultSet s = pre.executeQuery()) {
				if (s.next()) {
					return new String[] { s.getString(2), s.getString(3), s.getString(4), s.getString(5), s.getString(6) };
				} else {
					return null;
				}
			}
		}
	}
}

Merke: Die Indexes beginnen (bei ResultSet s) mit 1 und nicht mit 0.
 
@max514 Also verwendest du gar kein PreparedStatement mehr?

Deine Klasse heißt Aufträgeverwalten? Ich empfehle dir, bei Variablennamen und bei Klassennamen keine Umlaute zu verwenden.
 
Ja das war erst mal nur n versuch ob es funktioniert der string ist schon längst umgeschrieben und wieso keine Umlaute ???
 
Ok jetzt wo ich mir die Data Scientist seite mal angesehen hab muss ich einiges an meinem Programm ändern o_O
 
ich hab jetzt mal meine Bestandsverwaltung umgeschreiben ist die so ok oder muss ich noch irgendwas beachten ??

Java:
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                   
}
und vielen dank für die hilfe
 
Ok jetzt wo ich mir die Data Scientist seite mal angesehen hab muss ich einiges an meinem Programm ändern o_O
Bezeichner für Variablen, Parameter und Methoden schreibt man in Java per Konvention in lowerCamelCase, Typnamen (Klassen etc.) in UpperCamelCase. Dein Code ist sonst schwer zu lesen, weil man beispielsweise bei Internettabelle.setModel(...) davon ausgeht, dass es eine Klasse Internettabelle gibt, die eine statische Methode setModel() besitzt. Außerdem solltest Du Umlaute vermeiden, das führt irgendwann zu Problemen, wie Du schon hier in der Code-Ansicht sehen kannst.

Den Code solltest Du aufteilen. Du verwendest anscheinend den GUI-Editor von NetBeans. Davon würde ich zwar aus diversen Gründen abraten, kann man aber machen. Nicht nur in dem Fall sollte Deine UI-Klasse aber so dumm wie möglich sein, d. h. konkret dass die Methoden, die von NetBeans in dieser Klasse zum Event-Handling angelegt werden nicht dazu benutzt werden sollten, um die Aktionen zu implementieren. Letzteres solltest Du in separate Klassen auslagern. Sonst blickst Du irgendwann nicht mehr durch und jede Änderung wird zur Qual.
 
ok vielen dank ich versuch das umzusetzen =) mit dem auslagern tue ich mich im moment halt noch ein bisschen schwer aufgrund der eigenen erfahrung aber ich versuch es =) wegen dem GUI - Editor was würdest du denn empfehlen ?
 
wegen dem GUI - Editor was würdest du denn empfehlen ?
Keinen GUI-Editor verwenden :)

Swing war nie darauf ausgelegt, GUIs deklarativ zu beschreiben. Daher müssen GUI-Editoren entweder Code zurückentwickeln (das dürfte an Grenzen stoßen) oder, wie es NetBeans macht, die deklarative Beschreibung separat speichern, in Code übersetzen und an spezieller Stelle in Deiner Datei einfügen. Damit bist Du abhängig vom GUI-Editor und falls Dir NB die Form zerschießt, was früher öfter mal vorkam, hattest Du zwei Möglichkeiten: a) mit dem hässlichen Code manuell weiterarbeiten oder b) die Form neu zu bauen.
 
Ah ok ich dachte am anfang halt das es leichter ist und bin dann dabei geblieben aber in dem fall arbeite ich mich mal in die codierung der oberflächen ein vielen dank für die kompetente hilfe =)
 
Passende Stellenanzeigen aus deiner Region:

Neue Themen

Oben