public PanelBranchesDomestic (BranchRepository branchRepo) {
this.branchRepo = branchRepo;
initComponents();
jTableFilialen_Deutschland.setModel(new BranchModel(branchRepo, Location.DOMESTIC));
}
public EditData() {
initComponents();
ConnectDb();
branchRepos = new BranchRepository(conn);
}
Connection conn = null;
BranchRepository branchRepos = null;
private Connection ConnectDb() {
try {
conn = DriverManager.getConnection("jdbc:sqlite:" + System.getProperty("user.home") + "/Desktop/Standorte_Adressen.db");
return conn;
} catch (SQLException ex) {
JOptionPane.showMessageDialog(null, ex);
return null;
}
}
public BranchModel(BranchRepository branches, Branch.Location location) {
this.branches = branches;
this.location = location;
try {
data = branches.findAll(location);
} catch (SQLException e) {
data = new ArrayList<>();
e.printStackTrace();
}
}
public BranchRepository(Connection conn) {
this.conn = conn;
}
public List<Branch> findAll(Location where) throws SQLException {
String sql = LOCATION.get(where);
try(PreparedStatement pst = conn.prepareStatement(sql)) {
try(ResultSet rs = pst.executeQuery()){
List<Branch> result = new ArrayList<>();
while(rs.next()) {
result.add(readBranch(rs));
}
return result;
}
}
}
private Branch readBranch(ResultSet rs) throws SQLException {
return new Branch(rs.getInt(1), rs.getString(2), rs.getString(3), rs.getString(4), rs.getString(5), rs.getInt(6), rs.getLong(7), rs.getString(8), rs.getInt(9), rs.getString(10), rs.getString(11));
}
Ach so, dann schreiben wir die ganze Zeit aneinander vorbeiSo wird beim Start des Programms nur noch das Hauptfenster geladen, was dann hoffentlich schneller geht, und das Fenster EditData kann man öffnen, wenn man Einträge in der Datenbank editieren möchte.
Mache ich das nicht schon im Panel hiermit?Ok, dann musst Du die JTable mit dem BranchModel irgendwo initialisieren.
jTableFilialen_Deutschland.setModel(new BranchModel(branchRepos, Location.DOMESTIC));
public PanelBranchesDomestic(BranchRepository branchRepos, BranchModel branchModel) {
this.branchRepos = branchRepos;
this.branchModel = new BranchModel(branchRepos, Location.DOMESTIC);
initComponents();
jTableFilialen_Deutschland.setModel(branchModel);
}
BranchRepository branchRepos = null;
BranchModel branchModel = null;
panelBranchesDomestic = new UserInterface.PanelBranchesDomestic(branchRepos);
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jButton5 = new javax.swing.JButton();
jTabbedPane = new javax.swing.JTabbedPane();
panelBranchesDomestic = new UserInterface.PanelBranchesDomestic();
panelBranchesForeign = new UserInterface.PanelBranchesForeign();
panelCompanyNames = new UserInterface.PanelCompanyNames();
panelTitels = new UserInterface.PanelTitels();
panelRoles1 = new UserInterface.PanelRoles();
jButton8 = new javax.swing.JButton();
jLabelDBPath = new javax.swing.JLabel();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setPreferredSize(new java.awt.Dimension(1082, 587));
addWindowListener(new java.awt.event.WindowAdapter() {
public void windowClosing(java.awt.event.WindowEvent evt) {
formWindowClosing(evt);
}
});
jButton5.setIcon(new javax.swing.ImageIcon("C:\\Users\\david\\Documents\\back-icon.png")); // NOI18N
jButton5.setText("Zurück zum Hauptfenster");
jButton5.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton5ActionPerformed(evt);
}
});
jTabbedPane.addTab("Filialen_Deutschland", panelBranchesDomestic);
jTabbedPane.addTab("Filialen_Ausland", panelBranchesForeign);
jTabbedPane.addTab("Firmierungen", panelCompanyNames);
jTabbedPane.addTab("Titel", panelTitels);
jTabbedPane.addTab("Funktionen", panelRoles1);
jButton8.setIcon(new javax.swing.ImageIcon("C:\\Users\\david\\Documents\\My-Documents-icon.png")); // NOI18N
jButton8.setText("Datenbank laden");
jButton8.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton8ActionPerformed(evt);
}
});
jLabelDBPath.setText(" ");
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jButton5)
.addGap(18, 18, 18)
.addComponent(jButton8)
.addGap(121, 121, 121)
.addComponent(jLabelDBPath)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addComponent(jTabbedPane)
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jButton5)
.addComponent(jButton8)
.addComponent(jLabelDBPath))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jTabbedPane, javax.swing.GroupLayout.PREFERRED_SIZE, 534, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap())
);
pack();
}// </editor-fold>
// Variables declaration - do not modify
private javax.swing.JButton jButton5;
private javax.swing.JButton jButton8;
private javax.swing.JLabel jLabelDBPath;
private javax.swing.JTabbedPane jTabbedPane;
private UserInterface.PanelBranchesDomestic panelBranchesDomestic;
private UserInterface.PanelBranchesForeign panelBranchesForeign;
private UserInterface.PanelCompanyNames panelCompanyNames;
private UserInterface.PanelRoles panelRoles1;
private UserInterface.PanelTitels panelTitels;
// End of variables declaration
Jawoll. Du kannst im UI Builder in den Properties bei "custom creation" (oder so ähnlich) angeben, wie die Komponente erstellt werden solll. Dort schreibst Du "new UserInterface.PanelBranchesDomestic(branch, branches);" rein (hoffe, die Namen stimmen noch). Dann sollte das so in initComponents übernommen werden.Kann es sein, dass ich den Allgemeinen aufrufen muss, mit unseren Anpassungen?
//Klasse des Panels
public class PanelBranchesDomestic extends javax.swing.JPanel {
public PanelBranchesDomestic() {
initComponents();
}
public PanelBranchesDomestic(BranchRepository branchRepos) {
this.branchRepos = branchRepos;
initComponents();
jTableFilialen_Deutschland.setModel(new BranchModel(branchRepos, Location.DOMESTIC));
}
BranchRepository branchRepos = null;
private void initComponents() {
//...
}
//Variable declaration ...
}
//Klasse des EditData Fensters
public class EditData extends javax.swing.JFrame {
public EditData() {
branchRepos = new BranchRepository(conn);
initComponents();
setLocationRelativeTo(null);
setResizable(false);
ConnectDb();
}
Connection conn = null;
BranchRepository branchRepos = null;
private Connection ConnectDb() {
try {
conn = DriverManager.getConnection("jdbc:sqlite:" + System.getProperty("user.home") + "/Desktop/KERN_Standorte_Adressen.db");
return conn;
} catch (SQLException ex) {
JOptionPane.showMessageDialog(null, ex);
return null;
}
}
private void initComponents() {
panelBranchesDomestic = new UserInterface.PanelBranchesDomestic(branchRepos);
//...
}
private UserInterface.PanelCompanyNames panelCompanyNames;
//..
}
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at RepositoryClasses.BranchRepository.findAll(BranchRepository.java:75)
at ModelClasses.BranchModel.<init>(BranchModel.java:42)
at UserInterface.PanelBranchesDomestic.<init>(PanelBranchesDomestic.java:29)
at UserInterface.EditData.initComponents(EditData.java:70)
at UserInterface.EditData.<init>(EditData.java:25)
at UserInterface.EditData$4.run(EditData.java:188)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
//at RepositoryClasses.BranchRepository.findAll(BranchRepository.java:75)
try(PreparedStatement pst = conn.prepareStatement(sql)) {
//at ModelClasses.BranchModel.<init>(BranchModel.java:42)
data = branches.findAll(location);
//at UserInterface.PanelBranchesDomestic.<init>(PanelBranchesDomestic.java:29)
jTableFilialen_Deutschland.setModel(new BranchModel(branchRepos, Location.DOMESTIC));
//at UserInterface.EditData.initComponents(EditData.java:70)
panelBranchesDomestic = new UserInterface.PanelBranchesDomestic(branchRepos);
//at UserInterface.EditData.<init>(EditData.java:25)
initComponents();
//at UserInterface.EditData$4.run(EditData.java:188)
new EditData().setVisible(true);
Nein, nein, passt.Oder müssen da wirklich zwei Parameter rein?
Du musst in EditData ConnectDB schon aufrufen, bevor Du die conn verwendest.Bekomme so aber leider wieder eine Nullpointer:
private JTable createTable() {
JTable table = new JTable(persons);
table.getSelectionModel().addListSelectionListener(e -> {
if (e.getValueIsAdjusting()) {
return;
}
int row = table.getSelectedRow();
setCurrent(row != -1 ? persons.getElementAt(row) : null);
});
setCurrent(null);
return table;
}
Mal eine doofe Frage: unterscheiden sich BranchViewDomestic und BranchViewForeign irgendwie (mal von der Location abgesehen)? Wenn nein, wäre es Zeit für ein Refactoring: BranchView mit Location als ParameterAlso in der Klasse BranchViewDomestic habe ich die setCurent drin, wo die entsprechenden Texfelder gesetzt werden
Im Prinzip nicht, allerdings gibt es für DOMESTIC und FOREIGN jeweils eine andere JTabel (jTableFilialen_Deutschland und jTableFilialen_Ausland). Das heißt in der setCurrent Methode setze ich ja String Werte für die die 11 JTextFields. In den jTableFilialen_Deutschland heißen die Felder jTextFieldD1 bis jTextFieldD11 und bei jTableFilialen_Ausland dann jTextFieldA1 bis jTextFieldA11. Alternativ könnte ich mir die setCurrent Methode auch sparen und mir in die GUI Methode schreiben, aber dann kann hab ich ja nicht mehr diese schöne Verschachtelung ^^Mal eine doofe Frage: unterscheiden sich BranchViewDomestic und BranchViewForeign irgendwie (mal von der Location abgesehen)? Wenn nein, wäre es Zeit für ein Refactoring: BranchView mit Location als Parameter![]()
Ja genau, aber wie bekomme ich jetzt an das Branch Objekt ran? Mache ich das mit SelectedRow von der JTable?Ansonsten: setCurrent bekommt ein Branch-Objekt und setzt die Textfelder. Was willst Du da noch basteln?
Nachtrag: habe gerade BranchView mit den Panels verwechselt. Wenn ich mich recht entsinne, war das die Klasse, deren Methode Du ins Panel übernehmen kannst.
Das versteht ich nicht, geht sowas?In dem Panel heißen die Felder dann neutral
private void jTableFilialen_DeutschlandKeyReleased(java.awt.event.KeyEvent evt) {
if(evt.getKeyCode() == KeyEvent.VK_UP || evt.getKeyCode() == KeyEvent.VK_DOWN) {
int row = jTableFilialen_Deutschland.getSelectedRow();
Branch branch = branchModel.getElementAt(row);
branchView.setCurrent(branch);
}
}
Weil ich keine anderen Möglichkeit kenne, um die Texfelder mit den Werten zu belegen, wenn man mit den Pfeiltasten hoch und runter geht. Es ist auch noch ein MouseClicked vorgesehen, oder hast du eine andere Idee?1. warum willst Du einen KeyListener verwenden?
import javax.swing.*;
import javax.swing.table.*;
public class Test {
public void run() {
TableModel dataModel = new AbstractTableModel() {
public int getColumnCount() { return 10; }
public int getRowCount() { return 10;}
public Object getValueAt(int row, int col) { return new Integer(row*col); }
};
JTable table = new JTable(dataModel);
table.setRowSelectionAllowed(true);
table.getSelectionModel().addListSelectionListener(e -> {
if (e.getValueIsAdjusting()) {
return;
}
System.out.println(table.getSelectedRow());
});
JScrollPane scrollpane = new JScrollPane(table);
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
frame.add(scrollpane);
frame.pack();
frame.setVisible(true);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(() -> new Test().run());
}
}
private void tableListener() {
table.setRowSelectionAllowed(true);
table.getSelectionModel().addListSelectionListener(e -> {
if (e.getValueIsAdjusting()) {
return;
}
//System.out.println(table.getSelectedRow() + 1);
int row = table.getSelectedRow() + 1;
branch = branchModel.getElementAt(row);
branchView.setCurrent(branch);
});
}
public void setCurrent(Branch branch) {
this.current = branch;
boolean valid = current != null;
if (valid) {
panel.jTextFieldD1.setText("" + current.getId());
panel.jTextFieldD2.setText(current.getLabel());
panel.jTextFieldD3.setText(current.getStrasze());
panel.jTextFieldD4.setText(current.getPlzort());
panel.jTextFieldD5.setText(current.getOrt());
panel.jTextFieldD8.setText("" + current.getVorwahl());
panel.jTextFieldD6.setText("" + current.getTelStartNum());
panel.jTextFieldD7.setText(current.getTelStartTxt());
panel.jTextFieldD9.setText("" + current.getTelEndDefault());
panel.jTextFieldD10.setText(current.getFaxStartTxt());
panel.jTextFieldD11.setText(current.getFaxEndTxt());
} else {
panel.jTextFieldD1.setText("");
panel.jTextFieldD2.setText("");
panel.jTextFieldD3.setText("");
panel.jTextFieldD4.setText("");
panel.jTextFieldD5.setText("");
panel.jTextFieldD8.setText("");
panel.jTextFieldD6.setText("");
panel.jTextFieldD9.setText("");
panel.jTextFieldD10.setText("");
panel.jTextFieldD11.setText("");
}
panel.jTextFieldD1.setEnabled(valid);
panel.jTextFieldD2.setEnabled(valid);
panel.jTextFieldD3.setEnabled(valid);
panel.jTextFieldD4.setEnabled(valid);
panel.jTextFieldD5.setEnabled(valid);
panel.jTextFieldD8.setEnabled(valid);
panel.jTextFieldD6.setEnabled(valid);
panel.jTextFieldD7.setEnabled(valid);
panel.jTextFieldD9.setEnabled(valid);
panel.jTextFieldD10.setEnabled(valid);
panel.jTextFieldD11.setEnabled(valid);
panel.jButtonUpdateD.setEnabled(valid);
panel.jButtonSaveD.setEnabled(valid);
panel.jButtonDeleteD.setEnabled(valid);
}
Wie meinst Du das? Die Indizes beginnen wie üblich mit 0, erste Zeile ist also 0.komischerweise ist die Zahl immer um 1 zu klein gewesen.
Wenn Du in der Zeile eine NPE bekommst, muss branchView == null gelten.In der Zeile branchView.setCurrent(branch); bekomme ich aber wieder eine NullPointer Ex.
naja bei dem System.out.printLine.. kommt immer eine Zahl die sonst um 1 zu klein ist.Wie meinst Du das? Die Indizes beginnen wie üblich mit 0, erste Zeile ist also 0.
Jo, das geht aber gar nicht eigentlich. Sonst müsste auch ja schon das Anzeigen der Werte in der Tabelle nicht klappen. Gut, dort habe ich BranchViewDomestic gar nicht benutzt. Aber auch durch setzen vonWenn Du in der Zeile eine NPE bekommst, muss branchView == null gelten.
BranchViewDomestic branchView = new BranchViewDomestic(branchModel);
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at ModelClasses.BranchViewDomestic.setCurrent(BranchViewDomestic.java:40)
at UserInterface.PanelBranchesDomestic.lambda$tableListener$0(PanelBranchesDomestic.java:61)
panel.jTextFieldD1.setText("" + current.getId());
Eine NPE entsteht immer dadurch, dass eine Referenz null ist. Du weißt also in welcher Zeile und meist auch sofort welche Referenz. Insofern ist das sehr einfach zu beheben.Wobei ich inzwischen am überlegen bin mein alten Code wieder zu nehmen. Der ist zwar viel schlechter, aber er funktioniert wenigstens und ich habe nicht ständig NPEs.
naja das ist eigentlich nach deinem Modell erstell. Nur das du halt kein GUI Builder benutzt hast und die Tabelle in der selben Klasse erstellst hast, wo du auch die Textfelder belegt hast. Ich habe jetzt halt ein View Klasse und eine Klasse wo die Texfelder deklariert sind. Um Zugriff auf diese zu haben muss ich also die Felder public machen und eine Object aus der GUI Klasse in meiner View Klasse erzeugen und dann habe ich erst Zugriff.seltsamen View-Klassen
import UserInterface.PanelBranchesDomestic;
public class BranchViewDomestic {
private PanelBranchesDomestic panel;
//...
public void setCurrent(Branch branch) {
//...
panel.jTextFieldD1.setText("" + current.getId());
//..
}
}
Die Namen machen nicht das Modellnaja das ist eigentlich nach deinem Modell erstell.
Und genau das ist falsch. Du hebst jegliche Kapselung auf, weil Du Dinge trennst, die zusammengehören (Google mal nach Kopplung und Kohäsion).Ich habe jetzt halt ein View Klasse und eine Klasse wo die Texfelder deklariert sind. Um Zugriff auf diese zu haben muss ich also die Felder public machen und eine Object aus der GUI Klasse in meiner View Klasse erzeugen und dann habe ich erst Zugriff.
Das lässt sich auf Grundlage des Schnipsels nicht sagen. Das Einzige, was sicher ist: wenn in einer Zeile (originär) eine NPE auftritt, dann wird auf eine null-Referenz zugegriffen. In der Zeile panel.jTextFieldD1.setText("" + current.getId()); kann eine NPE nur auftreten, wenn panel, jTextFieldD1 oder current null ist. Du brauchst Dir ja nur mal die Werte ausgeben zu lassen (System.out.println(panel); ...)Ist das etwas falsch?
Das heißt die Klasse ViewBranchDomestic würdest du löschen und den Code lieber direkt in mein Panel schreiben? Das kann ich auch machen, dann habe ich halt keine View Klasse mehr und die Methode setCurrent, add, update, delete etc. müsste ich dann alle in mein Panel, also dann für jedes Panel die gleichen Methoden.Du hebst jegliche Kapselung auf, weil Du Dinge trennst, die zusammengehören
Ja, das schreibe ich schon die ganze ZeitDas heißt die Klasse ViewBranchDomestic würdest du löschen und den Code lieber direkt in mein Panel schreiben?
Nein, wenn Du's richtig machst, hast Du wahrscheinlich nur noch eine Panel-Klasse (s. Kommentar #169).Das kann ich auch machen, dann habe ich halt keine View Klasse mehr und die Methode setCurrent, add, update, delete etc. müsste ich dann alle in mein Panel, also dann für jedes Panel die gleichen Methoden.
Jein. Es geht darum, halbwegs vernünftige Abstraktionen zu finden, dadurch vermeidet man Copy & Paste. Wenn unterschiedliche Konzepte gleiche Eigenschaften besitzen, dann ist das eben so. Wenn ich Deine zwei Panels nehme (s. #169), dann schaut es so aus, als wären die identisch. Dann schreibt man eine Panel-Klasse und verwendet diese öfter (in Form mehrerer Objekte).Aber dachte ich sollte solche Sachen immer trennen und copy & paste vermeiden :O
public void save() {
if (this.current == null) {
return;
}
current.setId(Integer.parseInt(jTextFieldBranch1.getText()));
current.setLabel(jTextFieldBranch2.getText());
current.setStrasze(jTextFieldBranch3.getText());
current.setPlzort(jTextFieldBranch4.getText());
current.setOrt(jTextFieldBranch5.getText());
current.setVorwahl(Integer.parseInt(jTextFieldBranch8.getText()));
current.setTelStartNum(Long.parseLong(jTextFieldBranch6.getText()));
current.setTelStartTxt(jTextFieldBranch7.getText());
current.setTelEndDefault(Integer.parseInt(jTextFieldBranch9.getText()));
current.setFaxEndTxt(jTextFieldBranch10.getText());
current.setFaxEndTxt(jTextFieldBranch11.getText());
if (current.getId() == 0L) {
branchModel.add(current);
} else {
//branchModel.update(current); // was wolltest du hier eigentlich machen? Wieso die Verzweigung hier?
}
jTableBranch.setModel(branchModel); // hiermit wollte ich die JTable nach eine Änderunge aktualiseren, geht noch nicht
}
Indem Du die if-Abfrage unten rausnimmst und immer branchModel.add() aufrufst. Die letzte Zeile (jTableBranch.setModel) ebenfalls entfernen. Das JTable wird jetzt automatisch aktualisiertwie kann ich mit meiner save/insert Methode eine neues Branch Object in meiner Liste erzeugen? Im Moment funktioniert meine save Methode ungewollt wie eine update Methode
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package UserInterface;
import java.awt.Color;
import ObjectClasses.Branch;
import ObjectClasses.Branch.Location;
import ModelClasses.BranchModel;
import RepositoryClasses.BranchRepository;
/**
*
* @author david
*/
public class PanelBranches extends javax.swing.JPanel {
/**
* Creates new form BranchesDomestic
*/
public PanelBranches() {
initComponents();
}
public PanelBranches(BranchRepository branchRepos, Location location) {
this.branchRepos = branchRepos;
branchModel = new BranchModel(branchRepos, location);
initComponents();
adjustAppearance();
tableListener();
/*
Model wird in initComponents gesetzt
branchModel = new BranchModel(branchRepos, location);
jTableBranch.setModel(branchModel);
*/
}
BranchModel branchModel = null;
BranchRepository branchRepos = null;
Branch branch, current = null;
private void adjustAppearance() {
setBackground(new Color(0,0,0,0));
jTableBranch.getTableHeader().setOpaque(false);
jTableBranch.getTableHeader().setBackground(new Color(128, 128, 128));
jTableBranch.getTableHeader().setForeground(Color.WHITE);
}
private void setCaretPositions() {
jTextFieldBranch1.setCaretPosition(0);
jTextFieldBranch2.setCaretPosition(0);
jTextFieldBranch3.setCaretPosition(0);
jTextFieldBranch4.setCaretPosition(0);
jTextFieldBranch5.setCaretPosition(0);
jTextFieldBranch8.setCaretPosition(0);
jTextFieldBranch6.setCaretPosition(0);
jTextFieldBranch9.setCaretPosition(0);
jTextFieldBranch10.setCaretPosition(0);
jTextFieldBranch11.setCaretPosition(0);
}
private void tableListener() {
jTableBranch.setRowSelectionAllowed(true);
jTableBranch.getSelectionModel().addListSelectionListener(e -> {
if (e.getValueIsAdjusting()) {
return;
}
int row = jTableBranch.getSelectedRow();
branch = branchModel.getElementAt(row);
setCurrent(branch);
setCaretPositions();
});
}
private void setCurrent(Branch branch) {
this.current = branch;
boolean valid = current != null;
if (valid) {
jTextFieldBranch1.setText("" + current.getId());
jTextFieldBranch2.setText(current.getLabel());
jTextFieldBranch3.setText(current.getStrasze());
jTextFieldBranch4.setText(current.getPlzort());
jTextFieldBranch5.setText(current.getOrt());
jTextFieldBranch8.setText("" + current.getVorwahl());
jTextFieldBranch6.setText("" + current.getTelStartNum());
jTextFieldBranch7.setText(current.getTelStartTxt());
jTextFieldBranch9.setText("" + current.getTelEndDefault());
jTextFieldBranch10.setText(current.getFaxStartTxt());
jTextFieldBranch11.setText(current.getFaxEndTxt());
} else {
jTextFieldBranch1.setText("");
jTextFieldBranch2.setText("");
jTextFieldBranch3.setText("");
jTextFieldBranch4.setText("");
jTextFieldBranch5.setText("");
jTextFieldBranch8.setText("");
jTextFieldBranch6.setText("");
jTextFieldBranch9.setText("");
jTextFieldBranch10.setText("");
jTextFieldBranch11.setText("");
}
jTextFieldBranch1.setEnabled(valid);
jTextFieldBranch2.setEnabled(valid);
jTextFieldBranch3.setEnabled(valid);
jTextFieldBranch4.setEnabled(valid);
jTextFieldBranch5.setEnabled(valid);
jTextFieldBranch8.setEnabled(valid);
jTextFieldBranch6.setEnabled(valid);
jTextFieldBranch7.setEnabled(valid);
jTextFieldBranch9.setEnabled(valid);
jTextFieldBranch10.setEnabled(valid);
jTextFieldBranch11.setEnabled(valid);
jButtonUpdateBranch.setEnabled(valid);
jButtonSaveBranch.setEnabled(valid);
jButtonDeleteBranch.setEnabled(valid);
}
private void update(Branch branch) {
this.current = branch;
if(this.current == null) {
return;
}
current.setId(Integer.parseInt(jTextFieldBranch1.getText()));
current.setLabel(jTextFieldBranch2.getText());
current.setStrasze(jTextFieldBranch3.getText());
current.setPlzort(jTextFieldBranch4.getText());
current.setOrt(jTextFieldBranch5.getText());
current.setVorwahl(Integer.parseInt(jTextFieldBranch8.getText()));
current.setTelStartNum(Long.parseLong(jTextFieldBranch6.getText()));
current.setTelStartTxt(jTextFieldBranch7.getText());
current.setTelEndDefault(Integer.parseInt(jTextFieldBranch9.getText()));
current.setFaxEndTxt(jTextFieldBranch10.getText());
current.setFaxEndTxt(jTextFieldBranch11.getText());
branchModel.update(current);
}
private void save() {
this.current = branch;
if (this.current == null) {
return;
}
current.setId(Integer.parseInt(jTextFieldBranch1.getText()));
current.setLabel(jTextFieldBranch2.getText());
current.setStrasze(jTextFieldBranch3.getText());
current.setPlzort(jTextFieldBranch4.getText());
current.setOrt(jTextFieldBranch5.getText());
current.setVorwahl(Integer.parseInt(jTextFieldBranch8.getText()));
current.setTelStartNum(Long.parseLong(jTextFieldBranch6.getText()));
current.setTelStartTxt(jTextFieldBranch7.getText());
current.setTelEndDefault(Integer.parseInt(jTextFieldBranch9.getText()));
current.setFaxEndTxt(jTextFieldBranch10.getText());
current.setFaxEndTxt(jTextFieldBranch11.getText());
branchModel.add(current);
}
private void delete() {
if(this.current == null) {
return;
}
// do something
}
private void search() {
if(this.current == null) {
return;
}
// do something
}
/**
* 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() {
jTextFieldBranch1 = new javax.swing.JTextField();
jTextFieldBranch2 = new javax.swing.JTextField();
jTextFieldBranch3 = new javax.swing.JTextField();
jTextFieldBranch4 = new javax.swing.JTextField();
jTextFieldBranch5 = new javax.swing.JTextField();
jTextFieldBranch6 = new javax.swing.JTextField();
jTextFieldBranch7 = new javax.swing.JTextField();
jTextFieldBranch8 = new javax.swing.JTextField();
jTextFieldBranch9 = new javax.swing.JTextField();
jTextFieldBranch10 = new javax.swing.JTextField();
jTextFieldBranch11 = new javax.swing.JTextField();
jLabelBranch1 = new javax.swing.JLabel();
jLabelBranch2 = new javax.swing.JLabel();
jLabelBranch3 = new javax.swing.JLabel();
jLabelBranch4 = new javax.swing.JLabel();
jLabeBranch5 = new javax.swing.JLabel();
jLabelBranch6 = new javax.swing.JLabel();
jLabelBranch7 = new javax.swing.JLabel();
jLabelBranch8 = new javax.swing.JLabel();
jLabelBranch9 = new javax.swing.JLabel();
jLabelBranch10 = new javax.swing.JLabel();
jLabelBranch11 = new javax.swing.JLabel();
jScrollPaneBranch = new javax.swing.JScrollPane();
jTableBranch = new javax.swing.JTable();
jButtonUpdateBranch = new javax.swing.JButton();
jButtonSaveBranch = new javax.swing.JButton();
jButtonDeleteBranch = new javax.swing.JButton();
jButtonClearBranch = new javax.swing.JButton();
jTextFieldSearchBranch = new javax.swing.JTextField();
jLabelSearchBranch = new javax.swing.JLabel();
jSeparatorBranch = new javax.swing.JSeparator();
setPreferredSize(new java.awt.Dimension(1077, 479));
jLabelBranch1.setText("id:");
jLabelBranch2.setText("LABEL:");
jLabelBranch3.setText("STRASZE:");
jLabelBranch4.setText("PLZ_ORT:");
jLabeBranch5.setText("ORT (E-Mail):");
jLabelBranch6.setText("TEL_LAND:");
jLabelBranch7.setText("TEL_ANFANG_INT:");
jLabelBranch8.setText("TEL_ANFANG_TXT:");
jLabelBranch9.setText("TEL_ENDE_DEFAULT:");
jLabelBranch10.setText("FAX_ANFANG_TXT:");
jLabelBranch11.setText("FAX_ENDE_TXT:");
jTableBranch.setModel(branchModel);
jTableBranch.setOpaque(false);
jTableBranch.setRowHeight(20);
jTableBranch.getTableHeader().setResizingAllowed(false);
jTableBranch.getTableHeader().setReorderingAllowed(false);
jScrollPaneBranch.setViewportView(jTableBranch);
jButtonUpdateBranch.setIcon(new javax.swing.ImageIcon("C:\\Users\\david\\Documents\\Actions-view-refresh-icon.png")); // NOI18N
jButtonUpdateBranch.setText("Aktualisieren");
jButtonUpdateBranch.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButtonUpdateBranchActionPerformed(evt);
}
});
jButtonSaveBranch.setIcon(new javax.swing.ImageIcon("C:\\Users\\david\\Documents\\Database-Add-icon.png")); // NOI18N
jButtonSaveBranch.setText("Hinzufügen");
jButtonSaveBranch.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButtonSaveBranchActionPerformed(evt);
}
});
jButtonDeleteBranch.setIcon(new javax.swing.ImageIcon("C:\\Users\\david\\Documents\\Actions-edit-delete-icon.png")); // NOI18N
jButtonDeleteBranch.setText("Löschen");
jButtonDeleteBranch.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButtonDeleteBranchActionPerformed(evt);
}
});
jButtonClearBranch.setIcon(new javax.swing.ImageIcon("C:\\Users\\david\\Documents\\Actions-edit-clear-icon.png")); // NOI18N
jButtonClearBranch.setText("Felder leeren");
jButtonClearBranch.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButtonClearBranchActionPerformed(evt);
}
});
jTextFieldSearchBranch.setForeground(java.awt.Color.lightGray);
jTextFieldSearchBranch.setText(" mit Enter bestätigen...");
jTextFieldSearchBranch.addFocusListener(new java.awt.event.FocusAdapter() {
public void focusLost(java.awt.event.FocusEvent evt) {
jTextFieldSearchBranchFocusLost(evt);
}
});
jTextFieldSearchBranch.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
jTextFieldSearchBranchMouseClicked(evt);
}
});
jTextFieldSearchBranch.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jTextFieldSearchBranchActionPerformed(evt);
}
});
jTextFieldSearchBranch.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyReleased(java.awt.event.KeyEvent evt) {
jTextFieldSearchBranchKeyReleased(evt);
}
});
jLabelSearchBranch.setText("Suche:");
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
this.setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabelBranch11)
.addGroup(layout.createSequentialGroup()
.addComponent(jLabelBranch10)
.addGap(27, 27, 27)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jTextFieldBranch11, javax.swing.GroupLayout.PREFERRED_SIZE, 130, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jTextFieldBranch10, javax.swing.GroupLayout.PREFERRED_SIZE, 130, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabelBranch9)
.addComponent(jLabelBranch8)
.addComponent(jLabelBranch7)
.addComponent(jLabelBranch6)
.addComponent(jLabeBranch5)
.addComponent(jLabelBranch4)
.addComponent(jLabelBranch3)
.addComponent(jLabelBranch2)
.addComponent(jLabelBranch1))
.addGap(18, 18, 18)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jTextFieldBranch1, javax.swing.GroupLayout.PREFERRED_SIZE, 130, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jTextFieldBranch2, javax.swing.GroupLayout.PREFERRED_SIZE, 130, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jTextFieldBranch3, javax.swing.GroupLayout.PREFERRED_SIZE, 130, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jTextFieldBranch4, javax.swing.GroupLayout.PREFERRED_SIZE, 130, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jTextFieldBranch5, javax.swing.GroupLayout.PREFERRED_SIZE, 130, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jTextFieldBranch6, javax.swing.GroupLayout.PREFERRED_SIZE, 130, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jTextFieldBranch7, javax.swing.GroupLayout.PREFERRED_SIZE, 130, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jTextFieldBranch8, javax.swing.GroupLayout.PREFERRED_SIZE, 130, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jTextFieldBranch9, javax.swing.GroupLayout.PREFERRED_SIZE, 130, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
.addGroup(layout.createSequentialGroup()
.addComponent(jLabelSearchBranch)
.addGap(18, 18, 18)
.addComponent(jTextFieldSearchBranch))
.addComponent(jSeparatorBranch, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.PREFERRED_SIZE, 251, javax.swing.GroupLayout.PREFERRED_SIZE))))
.addGroup(layout.createSequentialGroup()
.addGap(78, 78, 78)
.addComponent(jButtonClearBranch)))
.addGap(24, 24, 24)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jScrollPaneBranch, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE)
.addGroup(layout.createSequentialGroup()
.addComponent(jButtonUpdateBranch)
.addGap(18, 18, 18)
.addComponent(jButtonSaveBranch)
.addGap(18, 18, 18)
.addComponent(jButtonDeleteBranch)
.addGap(0, 0, Short.MAX_VALUE)))
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addComponent(jScrollPaneBranch, javax.swing.GroupLayout.PREFERRED_SIZE, 409, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(14, 14, 14)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jButtonUpdateBranch)
.addComponent(jButtonSaveBranch)
.addComponent(jButtonDeleteBranch))
.addGap(20, 20, 20))
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jTextFieldSearchBranch, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabelSearchBranch))
.addGap(10, 10, 10)
.addComponent(jSeparatorBranch, javax.swing.GroupLayout.PREFERRED_SIZE, 10, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(2, 2, 2)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jTextFieldBranch1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabelBranch1))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jTextFieldBranch2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabelBranch2))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jTextFieldBranch3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabelBranch3))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jTextFieldBranch4, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabelBranch4))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jTextFieldBranch5, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabeBranch5))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jTextFieldBranch6, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabelBranch6))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jTextFieldBranch7, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabelBranch7))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jTextFieldBranch8, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabelBranch8))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jTextFieldBranch9, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabelBranch9))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jTextFieldBranch10, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabelBranch10))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jTextFieldBranch11, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabelBranch11))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jButtonClearBranch)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))))
);
}// </editor-fold>
private void jButtonUpdateBranchActionPerformed(java.awt.event.ActionEvent evt) {
int row = jTableBranch.getSelectedRow();
branch = branchModel.getElementAt(row);
update(branch);
}
private void jButtonSaveBranchActionPerformed(java.awt.event.ActionEvent evt) {
save();
}
private void jButtonDeleteBranchActionPerformed(java.awt.event.ActionEvent evt) {
//delete();
}
private void jButtonClearBranchActionPerformed(java.awt.event.ActionEvent evt) {
jTextFieldBranch1.setText("");
jTextFieldBranch2.setText("");
jTextFieldBranch3.setText("");
jTextFieldBranch4.setText("");
jTextFieldBranch5.setText("");
jTextFieldBranch6.setText("");
jTextFieldBranch7.setText("");
jTextFieldBranch8.setText("");
jTextFieldBranch9.setText("");
jTextFieldBranch10.setText("");
jTextFieldBranch11.setText("");
}
private void jTextFieldSearchBranchFocusLost(java.awt.event.FocusEvent evt) {
if (jTextFieldSearchBranch.getText().equals("")) {
jTextFieldSearchBranch.setForeground(Color.lightGray);
jTextFieldSearchBranch.setText(" mit Enter bestätigen...");
}
}
private void jTextFieldSearchBranchMouseClicked(java.awt.event.MouseEvent evt) {
jTextFieldSearchBranch.setForeground(Color.BLACK);
// TODO add your handling code here:
}
private void jTextFieldSearchBranchActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
private void jTextFieldSearchBranchKeyReleased(java.awt.event.KeyEvent evt) {
// TODO add your handling code here:
}
// Variables declaration - do not modify
private javax.swing.JButton jButtonClearBranch;
public javax.swing.JButton jButtonDeleteBranch;
public javax.swing.JButton jButtonSaveBranch;
public javax.swing.JButton jButtonUpdateBranch;
private javax.swing.JLabel jLabeBranch5;
private javax.swing.JLabel jLabelBranch1;
private javax.swing.JLabel jLabelBranch10;
private javax.swing.JLabel jLabelBranch11;
private javax.swing.JLabel jLabelBranch2;
private javax.swing.JLabel jLabelBranch3;
private javax.swing.JLabel jLabelBranch4;
private javax.swing.JLabel jLabelBranch6;
private javax.swing.JLabel jLabelBranch7;
private javax.swing.JLabel jLabelBranch8;
private javax.swing.JLabel jLabelBranch9;
private javax.swing.JLabel jLabelSearchBranch;
private javax.swing.JScrollPane jScrollPaneBranch;
private javax.swing.JSeparator jSeparatorBranch;
public javax.swing.JTable jTableBranch;
public javax.swing.JTextField jTextFieldBranch1;
public javax.swing.JTextField jTextFieldBranch10;
public javax.swing.JTextField jTextFieldBranch11;
public javax.swing.JTextField jTextFieldBranch2;
public javax.swing.JTextField jTextFieldBranch3;
public javax.swing.JTextField jTextFieldBranch4;
public javax.swing.JTextField jTextFieldBranch5;
public javax.swing.JTextField jTextFieldBranch6;
public javax.swing.JTextField jTextFieldBranch7;
public javax.swing.JTextField jTextFieldBranch8;
public javax.swing.JTextField jTextFieldBranch9;
private javax.swing.JTextField jTextFieldSearchBranch;
// End of variables declaration
}
LOL - Du sprichst in Rätseln. Erstens wo bekommst Du Nullpointer (meinst Du null oder NPEs?). Mit dem Rest kann ich irgendwie nichts anfangen. Nur so viel: wenn Du ein neues Branch-Objekt willst, musst Du auch ein neues erzeugen (new).Also grad bekomme ich wieder Nullpointer, ich bin mir bei den Übergabeparametern oder keine ziemlich unsicher. Z.B. wenn ich eine Filiale hinzufügen möchte, dann soll es ja nicht über die Selection ausgewählt werden, sondern ein komplett neues branch Object zu geordnet werden, wenn die id eine neue ist, also wenn schon dieselbe vorhanden ist soll es aktualisiert werden.
Von oben die erste Zeile, die eine Deiner Klassen betrifft.Es stehen wieder alle Aufrufzeilen im Panel, Model und Repo Klasse.
Du meinst ein Suchfeld? Kann man machen. Dann durchforstet man das TableModel, d. h. ermittelt den Index der betreffenden Zeile und setzt diesen als ausgewählt.Also wenn man eine id setzt, die schon vorhanden ist, dann soll die Branch durch die gesetzte id ausgewählt werden. Aber wie macht man das und sollte man das so machen?
Da steht das hier:Von oben die erste Zeile, die eine Deiner Klassen betrifft.
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at org.sqlite.core.DB.prepare(DB.java:222)
at org.sqlite.core.CorePreparedStatement.<init>(CorePreparedStatement.java:41)
at org.sqlite.jdbc3.JDBC3PreparedStatement.<init>(JDBC3PreparedStatement.java:30)
at org.sqlite.jdbc4.JDBC4PreparedStatement.<init>(JDBC4PreparedStatement.java:19)
at org.sqlite.jdbc4.JDBC4Connection.prepareStatement(JDBC4Connection.java:48)
at org.sqlite.jdbc3.JDBC3Connection.prepareStatement(JDBC3Connection.java:263)
at org.sqlite.jdbc3.JDBC3Connection.prepareStatement(JDBC3Connection.java:235)
at RepositoryClasses.BranchRepository.updateBranch(BranchRepository.java:102)
at ModelClasses.BranchModel.update(BranchModel.java:64)
at UserInterface.PanelBranches.update(PanelBranches.java:137)
at UserInterface.PanelBranches.jButtonUpdateBranchActionPerformed(PanelBranches.java:433)
at UserInterface.PanelBranches.access$000(PanelBranches.java:18)
at UserInterface.PanelBranches$1.actionPerformed(PanelBranches.java:249)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6533)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
at java.awt.Component.processEvent(Component.java:6298)
at java.awt.Container.processEvent(Container.java:2236)
at java.awt.Component.dispatchEventImpl(Component.java:4889)
at java.awt.Container.dispatchEventImpl(Container.java:2294)
at java.awt.Component.dispatchEvent(Component.java:4711)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4525)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466)
at java.awt.Container.dispatchEventImpl(Container.java:2280)
at java.awt.Window.dispatchEventImpl(Window.java:2746)
at java.awt.Component.dispatchEvent(Component.java:4711)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.awt.EventQueue$4.run(EventQueue.java:731)
at java.awt.EventQueue$4.run(EventQueue.java:729)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
try(PreparedStatement pst = conn.prepareStatement(sql)) {
Keine Ahnung wie du das meinstDu meinst ein Suchfeld? Kann man machen. Dann durchforstet man das TableModel, d. h. ermittelt den Index der betreffenden Zeile und setzt diesen als ausgewählt.
private void jButtonUpdateBranchActionPerformed(java.awt.event.ActionEvent evt) {
int id = Integer.parseInt(jTextFieldBranch1.getText());
// "get branch where id = ? (schematisch)
update(branch);
}
Doch, da Du ggf. das selbe Objekt bearbeitest, das in der Tabelle steckt. D. h. selbst ohne update würden Dir die Änderungen in der Tabelle angezeigt, sobald die betreffende Zeile neu gezeichnet wird.Macht sinn ... nicht!
Wie meinst Du das?!? Das SQL-Befehl kennt keine Objekte.Der SQL Befehl in der Repository sieht kein Branch Objekt vor.
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package UserInterface;
import java.awt.Color;
import ObjectClasses.Branch;
import ObjectClasses.Branch.Location;
import ModelClasses.BranchModel;
import RepositoryClasses.BranchRepository;
import javax.swing.JOptionPane;
/**
*
* @author david
*/
public class PanelBranches extends javax.swing.JPanel {
/**
* Creates new form BranchesDomestic
*/
public PanelBranches() {
initComponents();
}
public PanelBranches(BranchRepository branchRepos, Location location) {
this.branchRepos = branchRepos;
branchModel = new BranchModel(branchRepos, location);
initComponents();
adjustAppearance();
tableListener();
// Model wird in initComponents gesetzt
// jTableBranch.setModel(branchModel);
}
BranchModel branchModel = null;
BranchRepository branchRepos = null;
private Branch branch, current = null;
private int id, vorwahl, telEndDefault;
private long telStartNum;
private String label, strasze, plzOrt, ort, telStartTxt, faxStartTxt, faxEndTxt;
private void adjustAppearance() {
setBackground(new Color(0,0,0,0));
jTableBranch.getTableHeader().setOpaque(false);
jTableBranch.getTableHeader().setBackground(new Color(128, 128, 128));
jTableBranch.getTableHeader().setForeground(Color.WHITE);
}
private void initVariables() {
id = Integer.parseInt(jTextFieldBranch1.getText());
label = jTextFieldBranch2.getText();
strasze = jTextFieldBranch3.getText();
plzOrt = jTextFieldBranch4.getText();
ort = jTextFieldBranch5.getText();
vorwahl= Integer.parseInt(jTextFieldBranch6.getText());
telStartNum = Long.parseLong(jTextFieldBranch7.getText());
telStartTxt = jTextFieldBranch8.getText();
telEndDefault = Integer.parseInt(jTextFieldBranch9.getText());
faxStartTxt = jTextFieldBranch10.getText();
faxEndTxt = jTextFieldBranch11.getText();
}
private void setCaretPositions() {
jTextFieldBranch1.setCaretPosition(0);
jTextFieldBranch2.setCaretPosition(0);
jTextFieldBranch3.setCaretPosition(0);
jTextFieldBranch4.setCaretPosition(0);
jTextFieldBranch5.setCaretPosition(0);
jTextFieldBranch6.setCaretPosition(0);
jTextFieldBranch7.setCaretPosition(0);
jTextFieldBranch8.setCaretPosition(0);
jTextFieldBranch9.setCaretPosition(0);
jTextFieldBranch10.setCaretPosition(0);
jTextFieldBranch11.setCaretPosition(0);
}
private void tableListener() {
jTableBranch.setRowSelectionAllowed(true);
jTableBranch.getSelectionModel().addListSelectionListener(e -> {
if (e.getValueIsAdjusting()) {
return;
}
int row = jTableBranch.getSelectedRow();
branch = branchModel.getElementAt(row);
setCurrent(branch);
setCaretPositions();
});
}
private void setCurrent(Branch branch) {
this.current = branch;
boolean valid = current != null;
if (valid) {
jTextFieldBranch1.setText("" + current.getId());
jTextFieldBranch2.setText(current.getLabel());
jTextFieldBranch3.setText(current.getStrasze());
jTextFieldBranch4.setText(current.getPlzort());
jTextFieldBranch5.setText(current.getOrt());
jTextFieldBranch6.setText("" + current.getVorwahl());
jTextFieldBranch7.setText("" + current.getTelStartNum());
jTextFieldBranch8.setText(current.getTelStartTxt());
jTextFieldBranch9.setText("" + current.getTelEndDefault());
jTextFieldBranch10.setText(current.getFaxStartTxt());
jTextFieldBranch11.setText(current.getFaxEndTxt());
} else {
jTextFieldBranch1.setText("");
jTextFieldBranch2.setText("");
jTextFieldBranch3.setText("");
jTextFieldBranch4.setText("");
jTextFieldBranch5.setText("");
jTextFieldBranch8.setText("");
jTextFieldBranch6.setText("");
jTextFieldBranch9.setText("");
jTextFieldBranch10.setText("");
jTextFieldBranch11.setText("");
}
jTextFieldBranch1.setEnabled(valid);
jTextFieldBranch2.setEnabled(valid);
jTextFieldBranch3.setEnabled(valid);
jTextFieldBranch4.setEnabled(valid);
jTextFieldBranch5.setEnabled(valid);
jTextFieldBranch8.setEnabled(valid);
jTextFieldBranch6.setEnabled(valid);
jTextFieldBranch7.setEnabled(valid);
jTextFieldBranch9.setEnabled(valid);
jTextFieldBranch10.setEnabled(valid);
jTextFieldBranch11.setEnabled(valid);
jButtonUpdateBranch.setEnabled(valid);
jButtonSaveBranch.setEnabled(valid);
jButtonDeleteBranch.setEnabled(valid);
}
private void update(Branch branch) {
this.current = branch;
if(this.current == null) {
return;
}
current.setId(Integer.parseInt(jTextFieldBranch1.getText()));
current.setLabel(jTextFieldBranch2.getText());
current.setStrasze(jTextFieldBranch3.getText());
current.setPlzort(jTextFieldBranch4.getText());
current.setOrt(jTextFieldBranch5.getText());
current.setVorwahl(Integer.parseInt(jTextFieldBranch6.getText()));
current.setTelStartNum(Long.parseLong(jTextFieldBranch7.getText()));
current.setTelStartTxt(jTextFieldBranch8.getText());
current.setTelEndDefault(Integer.parseInt(jTextFieldBranch9.getText()));
current.setFaxStartTxt(jTextFieldBranch10.getText());
current.setFaxEndTxt(jTextFieldBranch11.getText());
branchModel.update(current);
}
private void save(Branch branch) {
this.current = branch;
if (this.current == null) {
return;
}
current.setId(Integer.parseInt(jTextFieldBranch1.getText()));
current.setLabel(jTextFieldBranch2.getText());
current.setStrasze(jTextFieldBranch3.getText());
current.setPlzort(jTextFieldBranch4.getText());
current.setOrt(jTextFieldBranch5.getText());
current.setVorwahl(Integer.parseInt(jTextFieldBranch6.getText()));
current.setTelStartNum(Long.parseLong(jTextFieldBranch7.getText()));
current.setTelStartTxt(jTextFieldBranch8.getText());
current.setTelEndDefault(Integer.parseInt(jTextFieldBranch9.getText()));
current.setFaxStartTxt(jTextFieldBranch10.getText());
current.setFaxEndTxt(jTextFieldBranch11.getText());
branchModel.add(current);
}
private void delete(Branch branch) {
this.current = branch;
if(this.current == null) {
return;
}
branchModel.delete(branch);
}
private void search() {
if(this.current == null) {
return;
}
// do something
}
/**
* 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() {
jTextFieldBranch1 = new javax.swing.JTextField();
jTextFieldBranch2 = new javax.swing.JTextField();
jTextFieldBranch3 = new javax.swing.JTextField();
jTextFieldBranch4 = new javax.swing.JTextField();
jTextFieldBranch5 = new javax.swing.JTextField();
jTextFieldBranch6 = new javax.swing.JTextField();
jTextFieldBranch7 = new javax.swing.JTextField();
jTextFieldBranch8 = new javax.swing.JTextField();
jTextFieldBranch9 = new javax.swing.JTextField();
jTextFieldBranch10 = new javax.swing.JTextField();
jTextFieldBranch11 = new javax.swing.JTextField();
jLabelBranch1 = new javax.swing.JLabel();
jLabelBranch2 = new javax.swing.JLabel();
jLabelBranch3 = new javax.swing.JLabel();
jLabelBranch4 = new javax.swing.JLabel();
jLabeBranch5 = new javax.swing.JLabel();
jLabelBranch6 = new javax.swing.JLabel();
jLabelBranch7 = new javax.swing.JLabel();
jLabelBranch8 = new javax.swing.JLabel();
jLabelBranch9 = new javax.swing.JLabel();
jLabelBranch10 = new javax.swing.JLabel();
jLabelBranch11 = new javax.swing.JLabel();
jScrollPaneBranch = new javax.swing.JScrollPane();
jTableBranch = new javax.swing.JTable();
jButtonUpdateBranch = new javax.swing.JButton();
jButtonSaveBranch = new javax.swing.JButton();
jButtonDeleteBranch = new javax.swing.JButton();
jButtonClearBranch = new javax.swing.JButton();
jTextFieldSearchBranch = new javax.swing.JTextField();
jLabelSearchBranch = new javax.swing.JLabel();
jSeparatorBranch = new javax.swing.JSeparator();
setPreferredSize(new java.awt.Dimension(1077, 479));
jLabelBranch1.setText("id:");
jLabelBranch2.setText("LABEL:");
jLabelBranch3.setText("STRASZE:");
jLabelBranch4.setText("PLZ_ORT:");
jLabeBranch5.setText("ORT (E-Mail):");
jLabelBranch6.setText("TEL_LAND:");
jLabelBranch7.setText("TEL_ANFANG_INT:");
jLabelBranch8.setText("TEL_ANFANG_TXT:");
jLabelBranch9.setText("TEL_ENDE_DEFAULT:");
jLabelBranch10.setText("FAX_ANFANG_TXT:");
jLabelBranch11.setText("FAX_ENDE_TXT:");
jTableBranch.setModel(branchModel);
jTableBranch.setOpaque(false);
jTableBranch.setRowHeight(20);
jTableBranch.getTableHeader().setResizingAllowed(false);
jTableBranch.getTableHeader().setReorderingAllowed(false);
jScrollPaneBranch.setViewportView(jTableBranch);
jButtonUpdateBranch.setIcon(new javax.swing.ImageIcon("C:\\Users\\david\\Documents\\Actions-view-refresh-icon.png")); // NOI18N
jButtonUpdateBranch.setText("Aktualisieren");
jButtonUpdateBranch.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButtonUpdateBranchActionPerformed(evt);
}
});
jButtonSaveBranch.setIcon(new javax.swing.ImageIcon("C:\\Users\\david\\Documents\\Database-Add-icon.png")); // NOI18N
jButtonSaveBranch.setText("Hinzufügen");
jButtonSaveBranch.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButtonSaveBranchActionPerformed(evt);
}
});
jButtonDeleteBranch.setIcon(new javax.swing.ImageIcon("C:\\Users\\david\\Documents\\Actions-edit-delete-icon.png")); // NOI18N
jButtonDeleteBranch.setText("Löschen");
jButtonDeleteBranch.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButtonDeleteBranchActionPerformed(evt);
}
});
jButtonClearBranch.setIcon(new javax.swing.ImageIcon("C:\\Users\\david\\Documents\\Actions-edit-clear-icon.png")); // NOI18N
jButtonClearBranch.setText("Felder leeren");
jButtonClearBranch.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButtonClearBranchActionPerformed(evt);
}
});
jTextFieldSearchBranch.setForeground(java.awt.Color.lightGray);
jTextFieldSearchBranch.setText(" mit Enter bestätigen...");
jTextFieldSearchBranch.addFocusListener(new java.awt.event.FocusAdapter() {
public void focusLost(java.awt.event.FocusEvent evt) {
jTextFieldSearchBranchFocusLost(evt);
}
});
jTextFieldSearchBranch.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
jTextFieldSearchBranchMouseClicked(evt);
}
});
jTextFieldSearchBranch.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jTextFieldSearchBranchActionPerformed(evt);
}
});
jTextFieldSearchBranch.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyReleased(java.awt.event.KeyEvent evt) {
jTextFieldSearchBranchKeyReleased(evt);
}
});
jLabelSearchBranch.setText("Suche:");
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
this.setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabelBranch11)
.addGroup(layout.createSequentialGroup()
.addComponent(jLabelBranch10)
.addGap(27, 27, 27)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jTextFieldBranch11, javax.swing.GroupLayout.PREFERRED_SIZE, 130, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jTextFieldBranch10, javax.swing.GroupLayout.PREFERRED_SIZE, 130, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabelBranch9)
.addComponent(jLabelBranch8)
.addComponent(jLabelBranch7)
.addComponent(jLabelBranch6)
.addComponent(jLabeBranch5)
.addComponent(jLabelBranch4)
.addComponent(jLabelBranch3)
.addComponent(jLabelBranch2)
.addComponent(jLabelBranch1))
.addGap(18, 18, 18)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jTextFieldBranch1, javax.swing.GroupLayout.PREFERRED_SIZE, 130, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jTextFieldBranch2, javax.swing.GroupLayout.PREFERRED_SIZE, 130, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jTextFieldBranch3, javax.swing.GroupLayout.PREFERRED_SIZE, 130, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jTextFieldBranch4, javax.swing.GroupLayout.PREFERRED_SIZE, 130, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jTextFieldBranch5, javax.swing.GroupLayout.PREFERRED_SIZE, 130, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jTextFieldBranch6, javax.swing.GroupLayout.PREFERRED_SIZE, 130, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jTextFieldBranch7, javax.swing.GroupLayout.PREFERRED_SIZE, 130, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jTextFieldBranch8, javax.swing.GroupLayout.PREFERRED_SIZE, 130, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jTextFieldBranch9, javax.swing.GroupLayout.PREFERRED_SIZE, 130, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
.addGroup(layout.createSequentialGroup()
.addComponent(jLabelSearchBranch)
.addGap(18, 18, 18)
.addComponent(jTextFieldSearchBranch))
.addComponent(jSeparatorBranch, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.PREFERRED_SIZE, 251, javax.swing.GroupLayout.PREFERRED_SIZE))))
.addGroup(layout.createSequentialGroup()
.addGap(78, 78, 78)
.addComponent(jButtonClearBranch)))
.addGap(24, 24, 24)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jScrollPaneBranch, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE)
.addGroup(layout.createSequentialGroup()
.addComponent(jButtonUpdateBranch)
.addGap(18, 18, 18)
.addComponent(jButtonSaveBranch)
.addGap(18, 18, 18)
.addComponent(jButtonDeleteBranch)
.addGap(0, 0, Short.MAX_VALUE)))
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addComponent(jScrollPaneBranch, javax.swing.GroupLayout.PREFERRED_SIZE, 409, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(14, 14, 14)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jButtonUpdateBranch)
.addComponent(jButtonSaveBranch)
.addComponent(jButtonDeleteBranch))
.addGap(20, 20, 20))
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jTextFieldSearchBranch, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabelSearchBranch))
.addGap(10, 10, 10)
.addComponent(jSeparatorBranch, javax.swing.GroupLayout.PREFERRED_SIZE, 10, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(2, 2, 2)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jTextFieldBranch1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabelBranch1))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jTextFieldBranch2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabelBranch2))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jTextFieldBranch3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabelBranch3))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jTextFieldBranch4, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabelBranch4))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jTextFieldBranch5, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabeBranch5))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jTextFieldBranch6, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabelBranch6))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jTextFieldBranch7, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabelBranch7))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jTextFieldBranch8, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabelBranch8))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jTextFieldBranch9, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabelBranch9))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jTextFieldBranch10, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabelBranch10))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jTextFieldBranch11, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabelBranch11))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jButtonClearBranch)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))))
);
}// </editor-fold>
private void jButtonUpdateBranchActionPerformed(java.awt.event.ActionEvent evt) {
int row = jTableBranch.getSelectedRow();
branch = branchModel.getElementAt(row);
update(branch);
}
private void jButtonSaveBranchActionPerformed(java.awt.event.ActionEvent evt) {
initVariables();
branch = new Branch(id, label, strasze, plzOrt, ort, vorwahl, telStartNum, telStartTxt, telEndDefault, faxStartTxt, faxEndTxt);
save(branch);
}
private void jButtonDeleteBranchActionPerformed(java.awt.event.ActionEvent evt) {
int row = jTableBranch.getSelectedRow();
branch = branchModel.getElementAt(row);
if (JOptionPane.showConfirmDialog(null, "Filiale wirklich löschen?", "Filiale löschen",JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE) == JOptionPane.YES_OPTION){
delete(branch);
}
}
private void jButtonClearBranchActionPerformed(java.awt.event.ActionEvent evt) {
jTextFieldBranch1.setText("");
jTextFieldBranch2.setText("");
jTextFieldBranch3.setText("");
jTextFieldBranch4.setText("");
jTextFieldBranch5.setText("");
jTextFieldBranch6.setText("");
jTextFieldBranch7.setText("");
jTextFieldBranch8.setText("");
jTextFieldBranch9.setText("");
jTextFieldBranch10.setText("");
jTextFieldBranch11.setText("");
}
private void jTextFieldSearchBranchFocusLost(java.awt.event.FocusEvent evt) {
if (jTextFieldSearchBranch.getText().equals("")) {
jTextFieldSearchBranch.setForeground(Color.lightGray);
jTextFieldSearchBranch.setText(" mit Enter bestätigen...");
}
}
private void jTextFieldSearchBranchMouseClicked(java.awt.event.MouseEvent evt) {
jTextFieldSearchBranch.setForeground(Color.BLACK);
// TODO add your handling code here:
}
private void jTextFieldSearchBranchActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
private void jTextFieldSearchBranchKeyReleased(java.awt.event.KeyEvent evt) {
// TODO add your handling code here:
}
// Variables declaration - do not modify
private javax.swing.JButton jButtonClearBranch;
public javax.swing.JButton jButtonDeleteBranch;
public javax.swing.JButton jButtonSaveBranch;
public javax.swing.JButton jButtonUpdateBranch;
private javax.swing.JLabel jLabeBranch5;
private javax.swing.JLabel jLabelBranch1;
private javax.swing.JLabel jLabelBranch10;
private javax.swing.JLabel jLabelBranch11;
private javax.swing.JLabel jLabelBranch2;
private javax.swing.JLabel jLabelBranch3;
private javax.swing.JLabel jLabelBranch4;
private javax.swing.JLabel jLabelBranch6;
private javax.swing.JLabel jLabelBranch7;
private javax.swing.JLabel jLabelBranch8;
private javax.swing.JLabel jLabelBranch9;
private javax.swing.JLabel jLabelSearchBranch;
private javax.swing.JScrollPane jScrollPaneBranch;
private javax.swing.JSeparator jSeparatorBranch;
public javax.swing.JTable jTableBranch;
public javax.swing.JTextField jTextFieldBranch1;
public javax.swing.JTextField jTextFieldBranch10;
public javax.swing.JTextField jTextFieldBranch11;
public javax.swing.JTextField jTextFieldBranch2;
public javax.swing.JTextField jTextFieldBranch3;
public javax.swing.JTextField jTextFieldBranch4;
public javax.swing.JTextField jTextFieldBranch5;
public javax.swing.JTextField jTextFieldBranch6;
public javax.swing.JTextField jTextFieldBranch7;
public javax.swing.JTextField jTextFieldBranch8;
public javax.swing.JTextField jTextFieldBranch9;
private javax.swing.JTextField jTextFieldSearchBranch;
// End of variables declaration
}
Stracktrace?Im Moment bekomme ich wieder NullpointerExceptions