Hi folks,
ich bin Neuling in diesem Forum. Also erstmal ein herzliches HALLO an alle.
Zur Zeit probier ich mich am programmieren eines JFrame, dessen Layout ich mit einem JPanel nach folgendem Schema erstellt habe. Eine Klasse beschreibt den Container, eine weitere KlassennameHandler die ActionEvents. Dazu kommt noch eine Klasse Dbconnect für den Datenbankzugriff und Vektorklassen für die Datenbanken.
Nun soll eine Combobox mit Inhalten aus einer Datenbank gefüllt werden. Dazu habe ich schon viele Threads gelesen, auch hier im Forum wurde das thematisiert, nur bekomme ich die Funktionen nicht implementiert und zerschiesse mir ständig den Quellcode. Hier mal der Quellcode:
NewJFrame
DBconnect
ComboFill
Soweit so gut, die Hilfe die ich bisher gefunden hatte, bozog sich immer auf EINE Klasse, in der die ComboBox, der DBconnect und addItem stattfand. Da ich es aber sauber trennen möchte, denke ich ich komm nur weiter wenn andere sich den Quellcode ansehen, denn ich seh den Wald vor lauter Bäumen nicht mehr
Gruß Chriss
ich bin Neuling in diesem Forum. Also erstmal ein herzliches HALLO an alle.
Zur Zeit probier ich mich am programmieren eines JFrame, dessen Layout ich mit einem JPanel nach folgendem Schema erstellt habe. Eine Klasse beschreibt den Container, eine weitere KlassennameHandler die ActionEvents. Dazu kommt noch eine Klasse Dbconnect für den Datenbankzugriff und Vektorklassen für die Datenbanken.
Nun soll eine Combobox mit Inhalten aus einer Datenbank gefüllt werden. Dazu habe ich schon viele Threads gelesen, auch hier im Forum wurde das thematisiert, nur bekomme ich die Funktionen nicht implementiert und zerschiesse mir ständig den Quellcode. Hier mal der Quellcode:
NewJFrame
Java:
public class NewJFrame extends JFrame {
private static final long serialVersionUID = 1L;
private JPanel panelContent = null;
private JTextField numberJTF;
private JLabel titelLb1;
private JLabel titelLb2;
private JLabel titelLb3;
static String nummer;
private JButton catchBT;
private JButton deleteBT;
private JButton calendarBT;
private JComboBox fromCB;
private JTable auftragTbl;
DefaultTableModel defaultTableModel;
public NewJFrame() throws Exception {
NewJFrameHandler startHandler = new NewJFrameHandler(this);
addWindowListener(startHandler);
setSize( 600, 530 );
setResizable(true);
centerFrame();
catchBT = new JButton("Erfassen");
catchBT.setName("Erfassen");
catchBT.addActionListener(startHandler);
catchBT.setBounds(400, 100, 100, 30);
add(catchBT);
deleteBT = new JButton("Löschen");
deleteBT.setName("Löschen");
deleteBT.addActionListener(startHandler);
deleteBT.setBounds(400, 150, 100, 30);
add(deleteBT);
calendarBT = new JButton("Termine");
calendarBT.setName("Termine");
calendarBT.addActionListener(startHandler);
calendarBT.setBounds(400, 15, 100,30);
add(calendarBT);
titelLb1 = new JLabel("Von");
titelLb1.setBounds(50, 15, 30, 50);
add(titelLb1);
fromCB = new JComboBox();
fromCB.setBounds(15, 50, 200, 20);
add(fromCB);
defaultTableModel = new DefaultTableModel();
defaultTableModel.setColumnIdentifiers(COLUMN_IDENTIFIERS);
auftragTbl = new JTable(defaultTableModel);
TableRowSorter<TableModel> sorter = new TableRowSorter<TableModel> (defaultTableModel);
auftragTbl.setRowSorter(sorter);
auftragTbl.setBounds(15, 100, 350, 230);
auftragTbl.setEnabled(false);
add(auftragTbl);
JScrollPane scrollTable = new JScrollPane( JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED );
scrollTable.setViewportView(auftragTbl);
scrollTable.setBounds(15, 100, 350, 230);
add(scrollTable);
JLabel a = new JLabel();
a.setLayout(null);
a.setOpaque(false);
add(a, BorderLayout.CENTER);
setVisible( true );
}
public void centerFrame(){
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
int top = (screenSize.height - this.getSize().height) / 2;
int left = (screenSize.width - this.getSize().width) / 2;
this.setLocation(left, top);
}
public void setContent(JPanel content) {
if(this.isAncestorOf(panelContent)){
this.remove(panelContent);
}
this.panelContent = content;
add(panelContent);
this.validate();
}
public void Close() {
dispose();
}
public static void main(String[] args) throws Exception {
new NewJFrame().setVisible(true);
}
}
DBconnect
Java:
import dbmanager.ComboFill;
public class DBconnectdb {
public static Connection conn;
public DBconnectdb() {
}
/**
* - Öffnet Verbindung zur Datenbank ComboFill
*
*/
public static void openConnection() throws Exception {
try {
Class.forName("org.sqlite.JDBC");
DriverManager.registerDriver(new org.sqlite.JDBC());
conn = DriverManager.getConnection ("jdbc:sqlite:combo.db");
int level = Connection.TRANSACTION_SERIALIZABLE;
conn.setTransactionIsolation(level);
}catch (SQLException e) {
String msg = "Es konnte keine Verbindung zur Datenbank hergestellt werden.\n"
+ "Die Applikation wird nun geschlossen.";
JOptionPane.showMessageDialog(null, msg, "Datenbank nicht gefunden!", JOptionPane.WARNING_MESSAGE);
System.exit(0);
}
}
/**
* - Ort abfragen
*
*/
public ComboFill getWohnort(String ort) throws Exception {
ResultSet rs;
Statement stmnt;
ComboFill wohnort = new ComboFill();
try {
openUserConnection();
stmnt = conn.createStatement();
String sql = "SELECT * FROM ort";
System.out.println(sql);
rs = stmnt.executeQuery(sql);
rs.close();
stmnt.close();
disconnet();
} catch (SQLException e) {
return null;
}
disconnet();
return wohnort;
}
public static void disconnet() throws SQLException {
if(conn!=null)
conn.close();
}
ComboFill
Java:
import java.util.Vector;
public class ComboFill {
private String ort = "";
private Vector<ComboFill> position = new Vector<ComboFill>();
public String Ort() {
return ort;
}
public void setOrt(String ort) {
this.ort = ort;
}
public void getOrt(String ort) {
this.ort = ort;
}
public Vector<ComboFill> getAllPositionen() {
position.add(new ComboFill());
return position;
}
public ComboFill get(int row) {
// TODO Auto-generated method stub
return null;
}
public void addTour(ComboFill fill) {
// TODO Auto-generated method stub
}
}
Soweit so gut, die Hilfe die ich bisher gefunden hatte, bozog sich immer auf EINE Klasse, in der die ComboBox, der DBconnect und addItem stattfand. Da ich es aber sauber trennen möchte, denke ich ich komm nur weiter wenn andere sich den Quellcode ansehen, denn ich seh den Wald vor lauter Bäumen nicht mehr
Gruß Chriss