Hi Leute!
Habe ein kleines Problem mit der letzten Class "DataBaseUpdate" (Zeilen 374 - 416): Nach eintragen der Daten in
die Datenbank soll das Label "eingabeLabel" neu geschrieben, bzw. alle Eingaben gelöscht werden.
Scheinbar habe ich dabei etwas übersehen, oder wieso bekomme ich kein "frisches" Label ohne Daten?
THX schon im Vorraus!
Dom
P.S.:Wenn jemand Tips hat, um den Code zu verkürzen: auch schreiben!
Habe ein kleines Problem mit der letzten Class "DataBaseUpdate" (Zeilen 374 - 416): Nach eintragen der Daten in
die Datenbank soll das Label "eingabeLabel" neu geschrieben, bzw. alle Eingaben gelöscht werden.
Scheinbar habe ich dabei etwas übersehen, oder wieso bekomme ich kein "frisches" Label ohne Daten?
Code:
package dvddatabase;
import java.awt.*;
import java.awt.event.*;
import java.awt.Dimension;
import javax.swing.*;
import java.sql.*;
public class DVDHauptpanel extends JFrame {
JPanel contentPane;
JLabel eingabeLabel = new JLabel();
JButton cover1Button = new JButton("Cover einfügen");
JButton label1Button = new JButton("Label einfügen");
JButton cover2Button = new JButton("Cover einfügen");
JButton label2Button = new JButton("Label einfügen");
JButton cover3Button = new JButton("Cover einfügen");
JButton label3Button = new JButton("Label einfügen");
JButton cover4Button = new JButton("Cover einfügen");
JButton label4Button = new JButton("Label einfügen");
JButton cover5Button = new JButton("Cover einfügen");
JButton label5Button = new JButton("Label einfügen");
JButton cover6Button = new JButton("Cover einfügen");
JButton label6Button = new JButton("Label einfügen");
JButton sendButton = new JButton("Datensatz speichern");
JComboBox sprache1Combo = new JComboBox();
JComboBox format1_1Combo = new JComboBox();
JComboBox format1_2Combo = new JComboBox();
JComboBox format1_3Combo = new JComboBox();
JComboBox sprache2Combo = new JComboBox();
JComboBox format2_1Combo = new JComboBox();
JComboBox format2_2Combo = new JComboBox();
JComboBox format2_3Combo = new JComboBox();
JComboBox sprache3Combo = new JComboBox();
JComboBox format3_1Combo = new JComboBox();
JComboBox format3_2Combo = new JComboBox();
JComboBox format3_3Combo = new JComboBox();
JComboBox sprache4Combo = new JComboBox();
JComboBox format4_1Combo = new JComboBox();
JComboBox format4_2Combo = new JComboBox();
JComboBox format4_3Combo = new JComboBox();
JComboBox sprache5Combo = new JComboBox();
JComboBox format5_1Combo = new JComboBox();
JComboBox format5_2Combo = new JComboBox();
JComboBox format5_3Combo = new JComboBox();
JComboBox sprache6Combo = new JComboBox();
JComboBox format6_1Combo = new JComboBox();
JComboBox format6_2Combo = new JComboBox();
JComboBox format6_3Combo = new JComboBox();
JTextField titel1Field = new JTextField("Titel eingeben",25);
JTextField titel2Field = new JTextField("Titel eingeben",25);
JTextField titel3Field = new JTextField("Titel eingeben",25);
JTextField titel4Field = new JTextField("Titel eingeben",25);
JTextField titel5Field = new JTextField("Titel eingeben",25);
JTextField titel6Field = new JTextField("Titel eingeben",25);
JTextField laufzeit = new JTextField("0:00:00",15);
BorderLayout borderLayout1 = new BorderLayout();
GridBagLayout gridbag = new GridBagLayout();
GridBagConstraints constraints = new GridBagConstraints();
JComboBox dvdFormat = new JComboBox();
public DVDHauptpanel() {
try {
setDefaultCloseOperation(EXIT_ON_CLOSE);
jbInit();
} catch (Exception exception) {
exception.printStackTrace();
}
}
private void jbInit() throws Exception {
contentPane = (JPanel) getContentPane();
contentPane.setLayout(borderLayout1);
setSize(new Dimension(510, 500));
setTitle("DVDMainPanel");
ImageIcon suchen = new ImageIcon(dvddatabase.DVDHauptpanel.class.getResource("Suchen.gif"));
ImageIcon add = new ImageIcon(dvddatabase.DVDHauptpanel.class.getResource("Add.gif"));
ImageIcon deutsch = new ImageIcon(dvddatabase.DVDHauptpanel.class.getResource("Deutschland.gif"));
ImageIcon englisch = new ImageIcon(dvddatabase.DVDHauptpanel.class.getResource("England.gif"));
ImageIcon spanisch = new ImageIcon(dvddatabase.DVDHauptpanel.class.getResource("Spanien.gif"));
ImageIcon französisch = new ImageIcon(dvddatabase.DVDHauptpanel.class.getResource("Frankreich.gif"));
ImageIcon italienisch = new ImageIcon(dvddatabase.DVDHauptpanel.class.getResource("Italien.gif"));
JButton suchenButton = new JButton(suchen);
suchenButton.setToolTipText("Suchen");
JButton addButton = new JButton(add);
addButton.setToolTipText("Hinzufügen");
addButton.addActionListener(new EingabePanel(this));
JButton deButton = new JButton(deutsch);
deButton.setToolTipText("Deutsch");
JButton enButton = new JButton(englisch);
enButton.setToolTipText("English");
JButton esButton = new JButton(spanisch);
esButton.setToolTipText("Español");
JButton frButton = new JButton(französisch);
frButton.setToolTipText("France");
JButton itButton = new JButton(italienisch);
itButton.setToolTipText("Italiano");
JToolBar bar = new JToolBar();
bar.add(suchenButton);
bar.add(addButton);
bar.add(deButton);
bar.add(enButton);
bar.add(esButton);
bar.add(frButton);
bar.add(itButton);
contentPane.add("North", bar);
sendButton.addActionListener(new datenSpeichern(this));
eingabeLabel.setLayout(gridbag);
contentPane.add("Center", eingabeLabel);
}
void submitData() {
int last = new DataBaseAccessLast().getLast();
String form = (String)dvdFormat.getSelectedItem();
String zeit = laufzeit.getText();
String[][] sprachen = new String[6][7];
// Sprache
sprachen[0][0] = (String)sprache1Combo.getSelectedItem();
sprachen[1][0] = (String)sprache2Combo.getSelectedItem();
sprachen[2][0] = (String)sprache3Combo.getSelectedItem();
sprachen[3][0] = (String)sprache4Combo.getSelectedItem();
sprachen[4][0] = (String)sprache5Combo.getSelectedItem();
sprachen[5][0] = (String)sprache6Combo.getSelectedItem();
// Titel
sprachen[0][1] = titel1Field.getText();
sprachen[1][1] = titel2Field.getText();
sprachen[2][1] = titel3Field.getText();
sprachen[3][1] = titel4Field.getText();
sprachen[4][1] = titel5Field.getText();
sprachen[5][1] = titel6Field.getText();
// Cover
sprachen[0][2] = (String)cover1Button.getName();
sprachen[1][2] = (String)cover2Button.getName();
sprachen[2][2] = (String)cover3Button.getName();
sprachen[3][2] = (String)cover4Button.getName();
sprachen[4][2] = (String)cover5Button.getName();
sprachen[5][2] = (String)cover6Button.getName();
// Label
sprachen[0][3] = (String)label1Button.getName();
sprachen[1][3] = (String)label2Button.getName();
sprachen[2][3] = (String)label3Button.getName();
sprachen[3][3] = (String)label4Button.getName();
sprachen[4][3] = (String)label5Button.getName();
sprachen[5][3] = (String)label6Button.getName();
// Format
sprachen[0][4] = (String)format1_1Combo.getSelectedItem();
sprachen[0][5] = (String)format1_2Combo.getSelectedItem();
sprachen[0][6] = (String)format1_3Combo.getSelectedItem();
sprachen[1][4] = (String)format2_1Combo.getSelectedItem();
sprachen[1][5] = (String)format2_2Combo.getSelectedItem();
sprachen[1][6] = (String)format2_3Combo.getSelectedItem();
sprachen[2][4] = (String)format3_1Combo.getSelectedItem();
sprachen[2][5] = (String)format3_2Combo.getSelectedItem();
sprachen[2][6] = (String)format3_3Combo.getSelectedItem();
sprachen[3][4] = (String)format4_1Combo.getSelectedItem();
sprachen[3][5] = (String)format4_2Combo.getSelectedItem();
sprachen[3][6] = (String)format4_3Combo.getSelectedItem();
sprachen[4][4] = (String)format5_1Combo.getSelectedItem();
sprachen[4][5] = (String)format5_2Combo.getSelectedItem();
sprachen[4][6] = (String)format5_3Combo.getSelectedItem();
sprachen[5][4] = (String)format6_1Combo.getSelectedItem();
sprachen[5][5] = (String)format6_2Combo.getSelectedItem();
sprachen[5][6] = (String)format6_3Combo.getSelectedItem();
// Datenbank(en) öffnen und Daten darin speichern
new DataBaseAccessUpdate(this, last, form, zeit, sprachen);
}
void titelFieldBuilder(JTextField field, int x, int y) {
buildConstraints(constraints, x, y, 4, 1, 50, 0);
constraints.fill = GridBagConstraints.NONE;
constraints.anchor = GridBagConstraints.EAST;
gridbag.setConstraints(field, constraints);
eingabeLabel.add(field);
eingabeLabel.validate();
}
void formatComboBoxBuilder(JComboBox combo, int x, int y) {
combo.addItem("");
combo.addItem("2.0");
combo.addItem("5.1");
combo.addItem("DTS");
buildConstraints(constraints, x, y, 1, 1, 10, 0);
constraints.fill = GridBagConstraints.NONE;
constraints.anchor = GridBagConstraints.CENTER;
gridbag.setConstraints(combo, constraints);
eingabeLabel.add(combo);
eingabeLabel.validate();
}
void spracheComboBoxBuilder(JComboBox combo, int x, int y) {
combo.addItem("");
combo.addItem("Deutsch");
combo.addItem("Englisch");
combo.addItem("Spanisch");
combo.addItem("Italienisch");
combo.addItem("Französisch");
combo.addItem("Koreanisch");
buildConstraints(constraints, x, y, 1, 1, 20, 0);
constraints.fill = GridBagConstraints.NONE;
constraints.anchor = GridBagConstraints.CENTER;
gridbag.setConstraints(combo, constraints);
eingabeLabel.add(combo);
eingabeLabel.validate();
}
void buttonBuilder(JButton button, int x, int y) {
button.removeAll();
buildConstraints(constraints, x, y, 1, 2, 25, 100);
constraints.fill = GridBagConstraints.BOTH;
constraints.anchor = GridBagConstraints.CENTER;
gridbag.setConstraints(button, constraints);
eingabeLabel.add(button);
eingabeLabel.validate();
button.addActionListener(new iconEinfuegenButton(this, button));
}
void iconEinfuegenButton_actionPerformed(ActionEvent actionEvent, JButton button) {
FileDialog fdg = new FileDialog(this, "Cover einfügen", FileDialog.LOAD);
fdg.setSize(300, 200);
fdg.show();
String dir = fdg.getDirectory();
String file = fdg.getFile();
button.removeAll();
button.setText("");
ImageIcon neuesIcon = new ImageIcon(""+dir+file);
int x = neuesIcon.getIconWidth();
int y = neuesIcon.getIconHeight();
int z = (int)(y*100)/x;
neuesIcon.setImage(neuesIcon.getImage().getScaledInstance(100,z,0));
button.setIcon(neuesIcon);
button.setName(""+dir+file);
button.validate();
}
void buildConstraints(GridBagConstraints gbc, int gx, int gy, int gw, int gh, int wx, int wy) {
gbc.gridx = gx;
gbc.gridy = gy;
gbc.gridwidth = gw;
gbc.gridheight = gh;
gbc.weightx = wx;
gbc.weighty = wy;
}
void eingabePanelErstellen() {
eingabeLabel.removeAll();
// Der Senden-Button
contentPane.add("South", sendButton);
contentPane.validate();
// Cover-Buttons erstellen
buttonBuilder(cover1Button, 0, 0);
buttonBuilder(cover2Button, 0, 2);
buttonBuilder(cover3Button, 0, 4);
buttonBuilder(cover4Button, 0, 6);
buttonBuilder(cover5Button, 0, 8);
buttonBuilder(cover6Button, 0, 10);
// Label-Buttons erstellen
buttonBuilder(label1Button, 1, 0);
buttonBuilder(label2Button, 1, 2);
buttonBuilder(label3Button, 1, 4);
buttonBuilder(label4Button, 1, 6);
buttonBuilder(label5Button, 1, 8);
buttonBuilder(label6Button, 1, 10);
// spracheComboBox erstellen
spracheComboBoxBuilder(sprache1Combo, 2, 0);
spracheComboBoxBuilder(sprache2Combo, 2, 2);
spracheComboBoxBuilder(sprache3Combo, 2, 4);
spracheComboBoxBuilder(sprache4Combo, 2, 6);
spracheComboBoxBuilder(sprache5Combo, 2, 8);
spracheComboBoxBuilder(sprache6Combo, 2, 10);
// formatComboBox erstellen
formatComboBoxBuilder(format1_1Combo, 3, 0);
formatComboBoxBuilder(format1_2Combo, 4, 0);
formatComboBoxBuilder(format1_3Combo, 5, 0);
formatComboBoxBuilder(format2_1Combo, 3, 2);
formatComboBoxBuilder(format2_2Combo, 4, 2);
formatComboBoxBuilder(format2_3Combo, 5, 2);
formatComboBoxBuilder(format3_1Combo, 3, 4);
formatComboBoxBuilder(format3_2Combo, 4, 4);
formatComboBoxBuilder(format3_3Combo, 5, 4);
formatComboBoxBuilder(format4_1Combo, 3, 6);
formatComboBoxBuilder(format4_2Combo, 4, 6);
formatComboBoxBuilder(format4_3Combo, 5, 6);
formatComboBoxBuilder(format5_1Combo, 3, 8);
formatComboBoxBuilder(format5_2Combo, 4, 8);
formatComboBoxBuilder(format5_3Combo, 5, 8);
formatComboBoxBuilder(format6_1Combo, 3, 10);
formatComboBoxBuilder(format6_2Combo, 4, 10);
formatComboBoxBuilder(format6_3Combo, 5, 10);
// titelTextField erstellen
titelFieldBuilder(titel1Field, 2, 1);
titelFieldBuilder(titel2Field, 2, 3);
titelFieldBuilder(titel3Field, 2, 5);
titelFieldBuilder(titel4Field, 2, 7);
titelFieldBuilder(titel5Field, 2, 9);
titelFieldBuilder(titel6Field, 2, 11);
// Combobox DVD-Format
dvdFormat.addItem("4.7");
dvdFormat.addItem("8.5");
buildConstraints(constraints, 0, 12, 2, 1, 10, 10);
constraints.fill = GridBagConstraints.NONE;
constraints.anchor = GridBagConstraints.CENTER;
gridbag.setConstraints(dvdFormat, constraints);
eingabeLabel.add(dvdFormat);
// TextField Laufzeit
buildConstraints(constraints, 2, 12, 4, 1, 0, 0);
constraints.fill = GridBagConstraints.NONE;
constraints.anchor = GridBagConstraints.CENTER;
gridbag.setConstraints(laufzeit, constraints);
eingabeLabel.add(laufzeit);
eingabeLabel.validate();
}
}
class datenSpeichern implements ActionListener {
DVDHauptpanel adaptee;
datenSpeichern(DVDHauptpanel adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent actionEvent) {
adaptee.submitData();
}
}
class EingabePanel implements ActionListener {
DVDHauptpanel adaptee;
EingabePanel(DVDHauptpanel adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent actionEvent) {
adaptee.eingabePanelErstellen();
}
}
class iconEinfuegenButton implements ActionListener {
DVDHauptpanel adaptee;
JButton button;
iconEinfuegenButton(DVDHauptpanel adaptee, JButton button) {
this.adaptee = adaptee;
this.button = button;
}
public void actionPerformed(ActionEvent actionEvent) {
adaptee.iconEinfuegenButton_actionPerformed(actionEvent, button);
}
}
class DataBaseAccessLast {
int letzte;
DataBaseAccessLast() {
String data = "jdbc:odbc:DVD-Database";
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection conn = DriverManager.getConnection(data);
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM DVDTitel");
while (rs.next()) {
this.letzte = rs.getInt(1);
}
stmt.close();
conn.close();
} catch (SQLException s) {
JOptionPane.showMessageDialog(null, "SQLException"+s, "Fehler", JOptionPane.ERROR_MESSAGE);
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "SQLException"+e, "Fehler", JOptionPane.ERROR_MESSAGE);
}
}
public int getLast() {
return letzte;
}
}
class DataBaseAccessSelect {
DataBaseAccessSelect() {
String data = "jdbc:odbc:DVD-Database";
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection conn = DriverManager.getConnection(data);
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM DVD-Titel");
} catch (SQLException s) {
} catch (Exception e) {
}
}
}
class DataBaseAccessUpdate {
DVDHauptpanel adaptee;
int dvdNr;
String laufzeit;
String dvdFormat;
String[][] sprachen;
DataBaseAccessUpdate(DVDHauptpanel adaptee, int dvdNr, String dvdFormat, String laufzeit, String[][] sprachen) {
this.adaptee = adaptee;
this.dvdNr = dvdNr;
this.laufzeit = laufzeit;
this.dvdFormat = dvdFormat;
this.sprachen = sprachen;
String data = "jdbc:odbc:DVD-Database";
try {
dvdNr++;
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection conn = DriverManager.getConnection(data);
Statement stmt = conn.createStatement();
stmt.executeUpdate("INSERT into DVDTitel values('"+dvdNr+"', '"+dvdFormat+"', '"+laufzeit+"')");
for (int i = 0; i<sprachen.length; i++) {
String lang = sprachen[i][0];
if (lang.equals(null)||lang.equals(""))
break;
stmt.executeUpdate("INSERT into "+lang+" values('" + dvdNr +
"', '" + sprachen[i][1] + "', '" + sprachen[i][2] +
"', '" + sprachen[i][3] + "', '" + sprachen[i][4] +
"', '" + sprachen[i][5] + "', '" + sprachen[i][6] +
"')");
}
stmt.close();
conn.close();
JOptionPane.showMessageDialog(null, "Fertig!", "Keine Fehler", JOptionPane.INFORMATION_MESSAGE);
this.PanelNeuErstellen();
} catch (SQLException s) {
JOptionPane.showMessageDialog(null, "SQLException"+s, "Fehler", JOptionPane.ERROR_MESSAGE);
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "SQLException"+e, "Fehler", JOptionPane.ERROR_MESSAGE);
}
}
void PanelNeuErstellen() {
adaptee.eingabePanelErstellen();
}
}
THX schon im Vorraus!
Dom
P.S.:Wenn jemand Tips hat, um den Code zu verkürzen: auch schreiben!