ERLEDIGT
NEIN
NEIN
ANTWORTEN
2
2
ZUGRIFFE
238
238
EMPFEHLEN
-
Hi liebe COm,
ich bin neu hier und dachte ich fange gleich mal an eure Weißheit zu nutzen *g*.
Ich bin noch mehr oder weniger ein völliger Anfänger in Java (Kenntnisse nur durch Informatikunterricht und googln) und habe mich einfach mal rangesetzt eine kleine "Datenbank" zu schreiben.Wobei der Begriff Datenbank noch völlig falsch ist.
Zur Zeit ist das kleine Programm nur in der Lage Datensätze in eine "Tabelle" zu schreiben.Aber ich wollte mal fragen ob ihr euch den Code mal ansehen könntet,um mir zu helfen meine Form und meinen Programmierstil zu verbessern.
Kurze Rede und hoffentlich langer Sinn ist hier der Code:
PS: Die sache mit dem Geschlecht ist gerade in Bearbeitung und funktioniert noch absolut nicht
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399
import java.awt.*; //Importe import java.awt.event.*; import java.awt.datatransfer.*; public class Oberflaeche extends Frame implements TextListener,KeyListener,ActionListener,MouseListener //Klasse 'Oberflaeche' wird initialisiert { // Anfang Variablen Panel grund = new Panel(new BorderLayout()); //Deklarieren der GUI Panel links = new Panel(null); Panel mitte = new Panel(null); Panel rechts = new Panel(null); TextField Name =new TextField("Name"); TextField Vorname =new TextField("Vorname"); TextField Geschlecht =new TextField("Geschlecht"); TextField Geburtsdatum =new TextField("Geburtsdatum"); TextField Wohnort =new TextField("Wohnort"); TextField Augenfarbe =new TextField("Augenfarbe"); Button gendb= new Button("DB erzeugen!!"); Button eintragen =new Button("In DB eintragen!"); VPanel datenfeld[][] = new VPanel[6][11]; Label werte[] = new Label[30]; Label labname=new Label("Name"); Label labvorname=new Label("Vorname"); Label labgesch=new Label("Geschlecht"); Label labgeb=new Label("Geburtsdatum"); Label labwohn=new Label("Wohnort"); Label labauge=new Label("Augenfarbe"); Checkbox m=new Checkbox("m",false); Checkbox w=new Checkbox("w",false); int y; int mann=0; int frau=0; // Ende Variablen public Oberflaeche (String title) //Obj Oberflaeche --> GUI { super(title); int x; //Hauptframe this.setSize(1106, 532); this.setVisible(true); this.addWindowListener(new fensterzu()); this.addKeyListener(this); this.add(grund); //grund,links,rechts => Panel als Border grund.setSize(1006, 532); grund.add(links, BorderLayout.WEST); grund.add(mitte, BorderLayout.CENTER); grund.add(rechts, BorderLayout.EAST); links.setSize(250, 532); links.setBackground(new Color(150, 150, 150)); mitte.setSize(600, 532); mitte.setLocation(350, 100); mitte.setBackground(new Color(200, 200, 200)); rechts.setSize(250, 532); rechts.setBackground(new Color(150, 150, 150)); rechts.add(Name); rechts.add(Vorname); rechts.add(Geschlecht); rechts.add(Geburtsdatum); rechts.add(Wohnort); rechts.add(Augenfarbe); rechts.add(eintragen); rechts.add(gendb); rechts.add(m); rechts.add(w); m.setLocation(151,61); //Checkboxen für das Geschlecht m.setSize(50,20); m.setVisible(true); m.addKeyListener(this); m.addMouseListener(this); w.setLocation(201,61); w.setSize(50,20); w.setVisible(true); w.addKeyListener(this); w.addMouseListener(this); Name.setLocation(0,21); //Textfelder für DB-Eingabe Name.setSize(150,20); Name.setVisible(true); Name.addTextListener(this); Name.addKeyListener(this); Vorname.setLocation(0,41); Vorname.setSize(150,20); Vorname.setVisible(true); Vorname.addTextListener(this); Vorname.addKeyListener(this); Geschlecht.setLocation(0,61); Geschlecht.setSize(150,20); Geschlecht.setVisible(true); Geschlecht.addTextListener(this); Geschlecht.addKeyListener(this); Geburtsdatum.setLocation(0,81); Geburtsdatum.setSize(150,20); Geburtsdatum.setVisible(true); Geburtsdatum.addTextListener(this); Geburtsdatum.addKeyListener(this); Wohnort.setLocation(0,101); Wohnort.setSize(150,20); Wohnort.setVisible(true); Wohnort.addTextListener(this); Wohnort.addKeyListener(this); Augenfarbe.setLocation(0,121); Augenfarbe.setSize(150,20); Augenfarbe.setVisible(true); Augenfarbe.addTextListener(this); Augenfarbe.addKeyListener(this); eintragen.setVisible(true); //Buttons für DB-Erzeugen und Werte eintragen eintragen.setLocation(0,161); eintragen.setSize(100,80); eintragen.addActionListener(this); eintragen.addMouseListener(this); gendb.setVisible(true); gendb.setLocation(0,261); gendb.setSize(100,80); gendb.addActionListener(this); gendb.addMouseListener(this); //Schleife zum erstellen des DatenbankLayouts for (x = 0; x < 6; x++) { for (y = 0;y <= 10 ;y++) { datenfeld[x][y] = new VPanel(); mitte.add(datenfeld[x][y]); datenfeld[x][y].setLocation(x*100,y*53); datenfeld[x][y].setSize(100,53); datenfeld[x][y].setBackground(new Color(0, 177, 195)); } } y=1; //Resetten des y-Wertes -> Sonst Fehlermeldung (class voll) } //Beginn der Methodendeklarierung der implementierten Listener // Anfang Ereignisprozeduren public void textValueChanged(TextEvent tvt) //Textwertänderung { } public void keyPressed(KeyEvent kev) //Taste wird gedrückt... { } public void keyReleased(KeyEvent kre) //...und wieder losgelassen { } public void mouseClicked(MouseEvent mcl) //Event bei Mausklick { if (mcl.getSource() == m) { mann = 1; } if (mcl.getSource() == w) { frau= 1; } if (mcl.getSource() == gendb) //Aktivierung bei Klick auf "DB-Erzeugen" (gendb-Button) { labname.setVisible(true); //Erzeugen der Kopfzeile labname.setText("Name"); labname.setBounds(0, 0, 100, 53); labname.setFont(new Font("Arial", Font.BOLD, 15)); labname.setBackground(new Color(22,100,43)); datenfeld[0][0].add(labname); labvorname.setVisible(true); labvorname.setText("Vorname"); labvorname.setBounds(0, 0, 100, 53); labvorname.setFont(new Font("Arial", Font.BOLD, 15)); labvorname.setBackground(new Color(22,100,43)); datenfeld[1][0].add(labvorname); labgesch.setVisible(true); labgesch.setText("Geschlecht"); labgesch.setBounds(0, 0, 100, 53); labgesch.setFont(new Font("Arial", Font.BOLD, 15)); labgesch.setBackground(new Color(22,100,43)); datenfeld[2][0].add(labgesch); labgeb.setVisible(true); labgeb.setText("Geb.dat."); labgeb.setBounds(0, 0, 100, 53); labgeb.setFont(new Font("Arial", Font.BOLD, 15)); labgeb.setBackground(new Color(22,100,43)); datenfeld[3][0].add(labgeb); labwohn.setText("Wohnort"); labwohn.setBounds(0, 0, 100, 53); labwohn.setFont(new Font("Arial", Font.BOLD, 15)); labwohn.setBackground(new Color(22,100,43)); datenfeld[4][0].add(labwohn); labauge.setText("Augenfarbe"); labauge.setBounds(0, 0, 100, 53); labauge.setFont(new Font("Arial", Font.BOLD, 15)); labauge.setBackground(new Color(22,100,43)); datenfeld[5][0].add(labauge); } } public void mouseEntered(MouseEvent men) //Maus über Objekt { } public void mouseExited(MouseEvent mex) //Maus von Objekt weg { } public void mousePressed(MouseEvent mpr) //Maustaste wird gedrückt --> passiert noch VOR dem wieder loslassen { if (mpr.getSource() == eintragen) //Event für "Eintragen" { int x=0; werte[x] = new Label(); //Einlesen der Textfelder und eintragen in Datenbank werte[x].setText(Name.getText()); werte[x].setBounds(0, 0, 100, 53); werte[x].setFont(new Font("Arial", Font.BOLD, 15)); werte[x].setBackground(new Color(22,100,43)); datenfeld[x][y].add(werte[x]); werte[x+1] = new Label(); werte[x+1].setText(Vorname.getText()); werte[x+1].setBounds(0, 0, 100, 53); werte[x+1].setFont(new Font("Arial", Font.BOLD, 15)); werte[x+1].setBackground(new Color(22,100,43)); datenfeld[x+1][y].add(werte[x+1]); werte[x+2] = new Label(); if (mann==1) { mann = 0; werte[x+2].setText("männlich"); } else { if (frau==1) { frau = 0; werte[x+2].setText("weiblich"); } else { if (frau==1 && mann == 1) { frau = 0; mann = 0; werte[x+2].setText("transsexuell"); } else { frau = 0; mann = 0; werte[x+2].setText("asexuell"); } } } werte[x+2].setBounds(0, 0, 100, 53); werte[x+2].setFont(new Font("Arial", Font.BOLD, 15)); werte[x+2].setBackground(new Color(22,100,43)); datenfeld[x+2][y].add(werte[x+2]); werte[x+3] = new Label(); werte[x+3].setText(Geburtsdatum.getText()); werte[x+3].setBounds(0, 0, 100, 53); werte[x+3].setFont(new Font("Arial", Font.BOLD, 15)); werte[x+3].setBackground(new Color(22,100,43)); datenfeld[x+3][y].add(werte[x+3]); werte[x+4] = new Label(); werte[x+4].setText(Wohnort.getText()); werte[x+4].setBounds(0, 0, 100, 53); werte[x+4].setFont(new Font("Arial", Font.BOLD, 15)); werte[x+4].setBackground(new Color(22,100,43)); datenfeld[x+4][y].add(werte[x+4]); werte[x+5] = new Label(); werte[x+5].setText(Augenfarbe.getText()); werte[x+5].setBounds(0, 0, 100, 53); werte[x+5].setFont(new Font("Arial", Font.BOLD, 15)); werte[x+5].setBackground(new Color(22,100,43)); datenfeld[x+5][y].add(werte[x+5]); } } public void mouseReleased(MouseEvent mre) //Maustaste wird gedrückt --> passiert WÄHREND wieder losgelassen wird { if (mre.getSource() == eintragen) { if (y<=10) //Bedingung { y++; } else { voll v =new voll("MITTEILUNG!!"); } } } public void keyTyped(KeyEvent kty) { } public void actionPerformed(ActionEvent evt) { } public static void main(String[]args) //Starten des "Hauptprogramms" durch Erzeugung des Hauptframes { Oberflaeche o = new Oberflaeche("Datenbank"); } // Ende Ereignisprozeduren } class voll extends Frame //Erzeugung eines Info-Frame falls DB voll ist { Label b=new Label("Datenbank ist leider voll!!"); public voll (String title) { super(title); this.setSize(250, 150); this.setVisible(true); this.addWindowListener(new fensterzu()); this.setBackground(new Color(0, 150, 150)); this.add(b); } } class VPanel extends Panel { public VPanel() { super(null); } public void paint (Graphics g) { } } class fensterzu extends WindowAdapter { public void windowClosing(final WindowEvent wevt) { wevt.getWindow().dispose(); } }
Liebe Grüße Kooki
-
Gut, ich leg dann einfach mal los

Als erstes von mir ein kleiner Rat den Stil betreffend: Theoretisch musst du dich an keinen wenn auch noch so hoch gepriesenen Programmierstil von irgendwem halten, sprich, keiner verbietet es dir deinen eigenen Stil zu haben. Wichtig ist dabei nur, dass du deinen Stil durchziehst und dass der auch verständlich ist für andere.
Das ist jetzt sehr allgemein gesagt, natürlich gibt es einige Punkte den Stil betreffend, die du auch oft in diversen Tutorien findest, die wirklich sinnvoll sind. Zum Beispiel finde ich(und nicht nur ich, sun z.B. auch
) es sehr wichtig Variablen- und Objektnamen mit einem Kleinbuchstaben zu beginnen und Klassen- und Interface-Namen mit einem Großbuchstaben. Dadurch werden diese zwei Bereiche ganz klar abgetrennt, und jeder Programmierer weiß sofort: aha, Objekt! oder aha, Klasse! Das ist zum Beispiel im Bezug auf statische Methoden sehr sinnvoll, z.B.:
In diesem Fall kann Name ein Objekt sein und tuIrgendwas() eine Methode der Klasse von Name. Aber name kann auch eine Klasse sein und tuIrgendwas() eine statische Methode. Ich würde jetzt als erstes von der zweiten Variante ausgehen, da ich anhand des Großbuchstabens von einer Klasse ausgehe.Code java:1
Name.tuIrgendwas();
Ich spreche dieses Beispiel an, weil mir das bei dir aufgefallen ist.
Im Gegensatz zu diesen schon-fast-Normen stehen Dinge, die jeder für sich entscheiden muss, wie er es tut. Ein kleines Beispiel, die geschweiften Klammern:
Das ist jetzt z.B. nur eine Kleinigkeit, aber solche Kleinigkeiten gibt es viele und da gibt es die Argumentation wie bei dem Anfangsbuchstaben nicht. Wichtig ist nur, wie gesagt, dass du es einheitlich machst, sprich im ganzen Code einen Stil durchziehst.Code java:1 2 3 4 5 6 7 8 9 10 11
//Eine Funktion kann so aussehen: public void tuIrgendwas() { //Er tut was } //Oder auch so: public void tuIrgendwas() { //Er tut was }
Noch ein paar Worte zum inhaltlichen.
Zuerst: Warum tust du dir AWT?
Ich persönlich bin ein starker Gegner von AWT, habe zwar nicht so viele technischen Erfahrungen damit, aber dafür umso mehr optische. Und außerdem habe ich viel Erfahrung mit Swing, womit es wirklich einfach es, eine vernünftige GUI zu basteln, die auch noch auf allen Betriebssystemen gleich aussieht.
Also dir als Anfänger würde ich raten, mich direkt mit Swing zu beschäftigen.
Außerdem habe ich auch eine Abneigung. Ich würde dir raten, guck dir lieber Collections an, damit hat man viel mehr und speziellere Möglichkeiten. Ein Vector oder eine ArrayList bieten mindestens die selbe Funktionalität wie ein Array, sind aber wesentlich leichter zu handeln.
Soviel erstmal von mir.
Gruß
MattGeändert von Matt297 (25.06.10 um 23:40 Uhr) Grund: Ausversehen vorzeitig abgeschickt
-
26.06.10 00:24 #3
Außerdem würde ich die Label und Fields wie Name, Vorname, Geschlecht, Geburtstag ect. in zu jeweils 2 Array machen. Die Dinge wie das Label oder die/den Bounds kannst du per Konstante(n) in einen 1- oder 2-D-Array festlegen, und das ganze per Schleife anlegen lassen.
Den direkten Zugriff auf ein Feld kannst du dann einfach per byte-Konstante die die Feld-Adresse angibt realisieren.
z. B.:
Code java:1 2 3 4 5 6
public static final byte PRE_NAME = 0; public static final byte SUF_NAME = 1; public static final byte SEX = 2; //Oder Gender, ich weiß nicht was wann gehört. public static final byte BIRTHDAY = 3; public static final byte LIVING_PLACE = 4; public static final byte EYES_COLOR = 5;
Kürzt die Klasse enorm und macht Änderungen wesendlich einfacher.Mein kleiner webstart Projektplaner:
http://178.77.101.236/ppws/
Ideen, Verbesserungsvorschläge, Bugsmeldungen und allg. Kritik erwünscht und erbeten.
Danke. :)
Ähnliche Themen
-
[mysql] Newsletter-user aus Datenbank in eine andere Datenbank
Von Scofields im Forum Relationale DatenbanksystemeAntworten: 8Letzter Beitrag: 11.06.08, 21:20 -
Eine Datenbank für jeden User oder nur 1 Datenbank
Von tequito im Forum Relationale DatenbanksystemeAntworten: 5Letzter Beitrag: 21.04.07, 14:50 -
datenbank abfrage in der datenbank funktioniert, aber in der ausgaben nicht
Von grillfleisch im Forum Relationale DatenbanksystemeAntworten: 2Letzter Beitrag: 29.12.06, 11:48 -
Tutorial für Verzeichniss / Datenbank Programmierung (bsp. Film Datenbank)?
Von SantaCruze im Forum PHPAntworten: 0Letzter Beitrag: 19.11.06, 12:49 -
Delphi: Integrierte Datenbank / Datenbank-Anbindungen
Von Mamphil im Forum Delphi, Kylix, PascalAntworten: 1Letzter Beitrag: 19.07.04, 13:01





Zitieren
Login





