Von der Datenbank zum Textfield

max514

Bekanntes Mitglied
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);
            }
 

Tarrew

Top Contributor
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?
 

max514

Bekanntes Mitglied
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
 
X

Xyz1

Gast
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.
 

krgewb

Top Contributor
@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.
 

max514

Bekanntes Mitglied
Ja das war erst mal nur n versuch ob es funktioniert der string ist schon längst umgeschrieben und wieso keine Umlaute ???
 

max514

Bekanntes Mitglied
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
 

mihe7

Top Contributor
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.
 

max514

Bekanntes Mitglied
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 ?
 

mihe7

Top Contributor
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.
 

max514

Bekanntes Mitglied
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 =)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
I Erste Schritte Einfache Datenbank-Webseite erstellen als Nicht-IT-lerin Java Basics - Anfänger-Themen 24
M Daten aus errechneter Methode in Datenbank(SQLite) schreiben Java Basics - Anfänger-Themen 60
S Best Practice Fragen zu Projektstruktur einer Datenbank-Abfrage-App (MVC) Java Basics - Anfänger-Themen 13
I Element n aus Datenbank Query (JPA / Hibernate) Java Basics - Anfänger-Themen 3
I Passwort in Datenbank speichern um später wieder auszulesen Java Basics - Anfänger-Themen 5
S OOP Java Eingabe in verschiedene Datenbank Tabellen eintragen Java Basics - Anfänger-Themen 7
I H2 Datenbank starten / Daten in File speichern Java Basics - Anfänger-Themen 25
E schneller von der Datenbank abfragen Java Basics - Anfänger-Themen 15
E Datenbank Spalte zusammenzählen Java Basics - Anfänger-Themen 2
R Datenbank Java Basics - Anfänger-Themen 1
I API Key´s in der Datenbank decrypt / encrypten? Java Basics - Anfänger-Themen 23
I Werte (u.a. Geldbeträge) in Datenbank speichern und Rundungen? Java Basics - Anfänger-Themen 8
M Mehrere Datenbank zugriffe über tomee.xml regeln? Java Basics - Anfänger-Themen 1
M Datenbank oder Textdatei? Java Basics - Anfänger-Themen 4
S Datenbank Befehl nach Login Java Basics - Anfänger-Themen 5
S Datenbank Tabelle eine Zeile an einer bestimmten Stelle einfügen Java Basics - Anfänger-Themen 2
R Best Practice Logik in der Datenbank oder in Java? Java Basics - Anfänger-Themen 3
R Datenbank-Werte dynamisch ausgeben Java Basics - Anfänger-Themen 19
B Frage zu Datenbank Design - Rechnungen, Angebote... und deren Positionen Java Basics - Anfänger-Themen 4
B Datenbank: Entity mit vielen Referenzen? Ansatz so ok? Java Basics - Anfänger-Themen 8
T Datenbank | Welche am Sinnvollsten? Java Basics - Anfänger-Themen 5
S Daten speichern, ohne Datenbank Java Basics - Anfänger-Themen 8
L Daten aus ArrayList in Datenbank durchsuchen Java Basics - Anfänger-Themen 5
M Datenbank in jTable Laden Java Basics - Anfänger-Themen 49
M Datenbank verbindung Java Basics - Anfänger-Themen 19
J Java Verbindung mit mysql Datenbank Java Basics - Anfänger-Themen 3
B Datenbank, aktuelle Ende als Zahl an Label übergeben Java Basics - Anfänger-Themen 7
T Collections Geeignete Collection/Liste/Datenbank Java Basics - Anfänger-Themen 17
B Treetable (rekursive Funktion) aufbauen von Datenbank Java Basics - Anfänger-Themen 4
R Input/Output Verbindung mit mySql-Datenbank Java Basics - Anfänger-Themen 9
D Compiler-Fehler Wert auf Datenbank übertragen und Sleep Thread Java Basics - Anfänger-Themen 3
N (Java) Regristrierung und Login System mit einer Datenbank Java Basics - Anfänger-Themen 5
J Datenbank Zugriff Java Basics - Anfänger-Themen 24
J Mit JSF Formular in Datenbank schreiben Java Basics - Anfänger-Themen 3
DaCrazyJavaExpert Verschiede Aktionen der Datenbank getrennt durchführen Java Basics - Anfänger-Themen 4
DaCrazyJavaExpert Datenbank wird nicht erstellt Java Basics - Anfänger-Themen 31
E Daten gehen nicht in Datenbank Java Basics - Anfänger-Themen 14
C JTable update mit MySQL Datenbank Java Basics - Anfänger-Themen 1
Meeresgott OOP Gui, Logik und Datenbank richtig aufbauen Java Basics - Anfänger-Themen 43
B Schreiben von zu vielen Einträgen in einer Datenbank Java Basics - Anfänger-Themen 9
S Datenbank auf Knopfdruck abfragen Java Basics - Anfänger-Themen 8
M Java als Webanwendung mit Datenbank abfrage Java Basics - Anfänger-Themen 3
N Datenbank mit GUI verbinden - Wie? Java Basics - Anfänger-Themen 5
1 Datenbank in Java Java Basics - Anfänger-Themen 1
M Erste Schritte Java Applet - HTML Seiten auslesen und in Access Datenbank schreiben? Java Basics - Anfänger-Themen 15
J Bücher Datenbank Java Basics - Anfänger-Themen 5
S Best Practice MVC und große Datenmengen aus einer mySQL - Datenbank Java Basics - Anfänger-Themen 24
J Datum und Uhrzeit in Datenbank falsch hinterlegt Java Basics - Anfänger-Themen 13
R Erstversuch Datenbank Java Basics - Anfänger-Themen 6
I Daten speichern ohne Datenbank Java Basics - Anfänger-Themen 20
A Erste Schritte Verbindung zu MySQL Datenbank herstellen Java Basics - Anfänger-Themen 7
T Sql Datenbank - variable übergeben? Java Basics - Anfänger-Themen 8
C Passwörter möglichst sicher in Datenbank speichern Java Basics - Anfänger-Themen 18
W Erste Schritte Exceltabelle in Datenbank übertragen mittels XDEV Java Basics - Anfänger-Themen 7
J GUI mit phpMyAdmin Datenbank verbinden Java Basics - Anfänger-Themen 0
K Erste Schritte Datenbank SQL erklärung Java Basics - Anfänger-Themen 15
B Lokale Datenbank Java Java Basics - Anfänger-Themen 2
B Klassen Doppelte werte Filtern XML, Datenbank und DOM Java Basics - Anfänger-Themen 3
Todesbote Int Array mit Hibernate in Datenbank speichern. Java Basics - Anfänger-Themen 2
U Datenbank in Java Java Basics - Anfänger-Themen 8
M Keine Datenbank verbindung Java Basics - Anfänger-Themen 14
N mit Werten aus einer mysql datenbank in java rechnen Java Basics - Anfänger-Themen 17
Q Datenbank nicht über separaten Server Java Basics - Anfänger-Themen 4
B Dateiname in Datenbank schreiben Java Basics - Anfänger-Themen 2
J fortlaufende Objekte durch Variable auswählen; Datenbank Java Basics - Anfänger-Themen 4
S ArrayList in mysql Datenbank speichern Java Basics - Anfänger-Themen 6
C Datenbank - Welche Java Basics - Anfänger-Themen 5
B Java Objektorientierte Datenbank - Assoziation Hilfe Java Basics - Anfänger-Themen 4
G Input/Output Serialisierung oder Datenbank Java Basics - Anfänger-Themen 6
J Erste Schritte Objekte in Datenbank speichern Java Basics - Anfänger-Themen 26
A Android Datenbank gaaanz einfaches Insert geht nicht - warum? Java Basics - Anfänger-Themen 4
L Erste Schritte Datenbank Zugangsdaten sicher? Java Basics - Anfänger-Themen 15
S Input/Output Primzahlen Datenbank Java Basics - Anfänger-Themen 11
B Mit Java-Programm Daten aus MySQL-Datenbank auslesen, lokal und nicht lokal. Java Basics - Anfänger-Themen 10
K Input/Output Datenbank Java Basics - Anfänger-Themen 27
M Datenbank in die Gui Java Basics - Anfänger-Themen 4
J JTable mit Daten aus Datenbank füllen Java Basics - Anfänger-Themen 3
F Erfassung von PCs in eine SQLite-Datenbank über JDBC Java Basics - Anfänger-Themen 9
T Datenbank Abfrage Exception Null Java Basics - Anfänger-Themen 2
M Brauche ich ein Datenbank oder nicht? Java Basics - Anfänger-Themen 6
D JDBC Datenbank fail?! Java Basics - Anfänger-Themen 20
A Problem beim einfügen in eine Datenbank Java Basics - Anfänger-Themen 2
F Classpath Datenbank ... nur wo? Java Basics - Anfänger-Themen 24
H Datenbank suche in kleine Schritte Java Basics - Anfänger-Themen 6
B Personalnummer aus Datenbank Java Basics - Anfänger-Themen 3
M Welche Datenbank? Java Basics - Anfänger-Themen 5
J RadioButtonInhalt in Datenbank übergeben Java Basics - Anfänger-Themen 3
R Datenbank bei Klassenverteilung führt zu NullPointerException Java Basics - Anfänger-Themen 7
J PW von Datenbank wie abspeichern? Java Basics - Anfänger-Themen 2
F Verbindung zu MySql Datenbank Java Basics - Anfänger-Themen 4
MU5T4NG JPasswordField als Hash in Datenbank abspeichern Java Basics - Anfänger-Themen 3
J Kleine Datenbank programmieren Java Basics - Anfänger-Themen 2
J Eigene kleine Datenbank programmieren Java Basics - Anfänger-Themen 2
F Collections Datenbankdaten in einer Map speichern, bearbeiten, sortieren und wieder in Datenbank schreiben Java Basics - Anfänger-Themen 20
T Zugangsdaten für Datenbank in Java-Programm speichern? Java Basics - Anfänger-Themen 5
S Schnittstelle für Datenbank bzw. Dateiformat Java Basics - Anfänger-Themen 2
C ComboBoxModel mit Daten der Datenbank verändern Java Basics - Anfänger-Themen 2
T Datenbank automatisch erzeugen beim ersten Start Java Basics - Anfänger-Themen 6
I Datenbank - nach erster Verbindung keine Verbindung mehr Java Basics - Anfänger-Themen 3
F Datenbank in eine Textdatei speichern Java Basics - Anfänger-Themen 13

Ähnliche Java Themen

Neue Themen


Oben