ERLEDIGT
NEIN
NEIN
ANTWORTEN
26
26
ZUGRIFFE
434
434
EMPFEHLEN
-
16.08.11 09:44 #16
Setz doch in dem Objekt "main" Get-/Set-Methoden für die jeweiligen Variablen. Sprich:
Code java:1 2 3
public int[] getMatrix() { return matrix; }
Bitte die Code-Tags verwenden. Bei Java-Code: [java]...[/java]
Tutorials:
Automatisches erzeugen eines Inhaltsverzeichnisses (Javascript)
JAnimationPanel - Animationen für Swing/AWT
SWTRatingBar (Bewertungs-Composite) selbst programmieren
____________________________________________________________________________
Über eine Bewertung (Stern links unter dem Beitrag) oder ein Danke freue ich mich sehr.
-
Klingt interessant, aber wie meinst du "in" dem object setzten? einfach entsprechende Methoden in der Klasse schreiben in der ich die Variablen ändern will scheint nicht (so einfach zu Funktionieren).
habe jetzt in der Hauptklasse z.B:
Code java:1 2 3 4
public void setMatrix(char[] chars) { matrix = chars; }
und in Handler entsprechend:
Code java:1
main.setMatrix(irgendEinCharArray);
da meckert Eclipse wiederum: The method setMatrix(char[]) is undefined for the type Object
-
16.08.11 10:25 #18
Das funktioniert schon. Dein Problem ist nur, dass du hier...
...deine Variable als Object definierst. Wenn du aber auf die Get-/Set-Methoden zugreifen willst, musst du Object durch die jeweilige Klasse/Objekt tauschen, auf das zu zugreifen willst. Zum Beispiel:Code java:1
public static Object main;
Code java:1
public static DeineKlasse main;
Bitte die Code-Tags verwenden. Bei Java-Code: [java]...[/java]
Tutorials:
Automatisches erzeugen eines Inhaltsverzeichnisses (Javascript)
JAnimationPanel - Animationen für Swing/AWT
SWTRatingBar (Bewertungs-Composite) selbst programmieren
____________________________________________________________________________
Über eine Bewertung (Stern links unter dem Beitrag) oder ein Danke freue ich mich sehr.
-
ok, versuche ich aber den ausrdruck entsprechend zu ändern
also in Handler
Code java:1
public static Code main;
einfüge bekomme ich wieder: Code cannot be resolved to a type
-
16.08.11 10:41 #20
Kannst du bitte deinen aktuellen Code beider Klassen (Handler, Code) posten.
Bitte die Code-Tags verwenden. Bei Java-Code: [java]...[/java]
Tutorials:
Automatisches erzeugen eines Inhaltsverzeichnisses (Javascript)
JAnimationPanel - Animationen für Swing/AWT
SWTRatingBar (Bewertungs-Composite) selbst programmieren
____________________________________________________________________________
Über eine Bewertung (Stern links unter dem Beitrag) oder ein Danke freue ich mich sehr.
-
Der Vollständigkeit halber alle drei Klassen
1.code
2.GUI
3.Handler
(ich entschuldige mich jetzt schonmal fürs naming, habs noch nicht überarbeitet...
Code java: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
import javax.swing.*; import javax.swing.table.DefaultTableModel; import javax.swing.table.TableModel; import java.sql.*; import GUI.Frame; public class code { public static char[] matrix = new char[20]; public static int date = 0; public static char show[] = new char[10]; public static boolean wrong = false; public static String[][] rowData = new String[50][3]; public static String[] columnNames = {" ", " ", " "}; public static code main; public static void main ( String[] args ) { final GUI.Frame Frame = new GUI.Frame(); // src.Frame.run.inst.update(); String driver = "org.hsqldb.jdbcDriver"; String URL = "jdbc:hsqldb:hsql://localhost/xdb"; String tbstring = new String("CUSTOMER"); String heads[] = new String[50]; heads[0] = "ID"; heads[1] = "FIRSTNAME"; heads[2] = "LASTNAME"; TableModel jTable1Model = new DefaultTableModel( rowData, columnNames); GUI.Frame.table.setModel(jTable1Model); loaddriver(driver); Connection con = connect(URL); //liefert Connection aus URL Spaltenbeschriftung(con,GUI.Frame.table, tbstring, heads); //Liefert Spaltenbeschriftung für Tabel der Tabelle tbstring der Spalten heads showdb(tbstring, GUI.Frame.table, con); //zeige tabelle tbstring in table disconnect(con); //beendet Verbindung con Frame.runme(main); //UPDATE customer Set FIRSTNAME = 'Laura2' WHERE FIRSTNAME = 'Laura' while(true){} } public char[] getShow() { return show; } public void setWrong(boolean b) { wrong = b; } public boolean getWrong() { return wrong; } public void setMatrix(char[] chars) { matrix = chars; } public char[] getMatrix() { return matrix; } public static void showdb(String tbstring, JTable table, Connection con) //liefert gesamten inhalt der Tabelle tbstring für tabelle table { try { String query = "SELECT * FROM "; Statement stmt = con.createStatement(); ResultSet rs = stmt.executeQuery( query.concat(tbstring)); int count = 0; while ( rs.next() ) { Frame.table.setValueAt(rs.getString(1),count,0); table.setValueAt(rs.getString(2),count,1); table.setValueAt(rs.getString(3),count,2); count++; } } catch(SQLException e) { e.printStackTrace(); } finally { if ( con != null ) try { con.close(); } catch ( SQLException e ) { e.printStackTrace(); } } } public static void Spaltenbeschriftung(Connection con, JTable table, String tbstring, String heads[]) //Liefert Spaltenbeschriftung für Tabel der Tabelle tbstring der Spalten heads { try { DatabaseMetaData dbMetaData = con.getMetaData(); ResultSet columnsRS = dbMetaData.getColumns(con.getCatalog(), "%", tbstring, "%"); int i = 0; while(columnsRS.next()) { if(i!=(table.getColumnCount()+1)) { if(columnsRS.getString("COLUMN_NAME").equals(heads[i])) Frame.table.getColumnModel().getColumn(i++).setHeaderValue(columnsRS.getString("COLUMN_NAME")); } } columnsRS.close(); } catch(SQLException e) { e.printStackTrace(); } } public static Connection connect(String URL) //verbindet mit Datenbank { Connection con = null; try { con = DriverManager.getConnection(URL,"sa",""); } catch(SQLException e) { e.printStackTrace(); } return con; } public static void disconnect(Connection con) //beendet Verbindung { { if(con != null) try{con.close();} catch( SQLException e) {e.printStackTrace();} } } public static void loaddriver(String driver) // Läd Treiber { try{ Class.forName( driver );} catch ( ClassNotFoundException e ){ // Blöd: Treiber konnte nicht geladen werden. System.err.println( "Keine Treiber-Klasse!"); } } public static void wandle(int day, int year) //wandelt aus day year in day month year DD MM YYYY { int month = 1; boolean schaltjahr = false; boolean hit = false; int store = year; //filtere Datum aus Datamatrix Code -> Schreibe in date / year //Schaltjahres filter (-4 => 0 Schaltjahr) while(year>0) year = year - 4; if(year==0) schaltjahr = true; year = store; //year zurücksetzen if(day > 31) //januar { day = day - 31; month++; } else hit = true; if(day > 28 && schaltjahr == false && hit == false) { day = day - 28; month++; } else { if(schaltjahr == false) hit = true; if(day > 29 && schaltjahr == true && hit == false) { day = day - 29; month++; //februar } else { hit = true; } } if(day > 31 && hit == false) //märz { day = day - 31; month++; } else hit = true; if(day > 30 && hit == false) //april { day = day - 30; month++; } else hit = true; if(day > 31 && hit == false) // mai { day = day - 31; month++; } else hit = true; if(day > 30 && hit == false) // juni { day = day - 30; month++; } else hit = true; if(day > 31 && hit == false) // juli { day = day - 31; month++; } else hit = true; if(day > 31 && hit == false) { day = day - 31; //august month++; } else hit = true; if(day > 30 && hit == false) { day = day - 30; //september month++; } else hit = true; if(day > 31 && hit == false) { day = day - 31; //oktober month++; } else hit = true; if(day > 30 && hit == false) { day = day - 30; //november month++; } else hit = true; if(day <= 31 && hit == false) hit = true; if(day > 31 || month > 12 || year > 9999 || hit == false) { wrongformat(); } else format(day, month, year); }; public static void format(int day, int month, int year ) // Wandelt aus day month year in DD.MM.YYYY in show[] { int store; store = day; day = (day % 10); store = (store - day)/10 ; store = store +48; day = day + 48; show[0]= (char)store; show[1]= (char)day; show[2]= '.'; store = month; month = (month % 10); store = (store - month)/10 ; store = store +48; month = month + 48; show[3]= (char)store; show[4]= (char)month; show[5]= '.'; store = year; year = (year % 10); store = (store - year)/10 ; store = store +48; year = year + 48; show[6] = '2'; show[7] = '0'; show[8] = (char)store; show[9] = (char)year; } public static void wrongformat() //ausgabe bei falscheingabe! { Frame.result.setText("WRONG FORMAT"); wrong = true; } }
Code java: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
package GUI; import java.awt.BorderLayout; import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import java.awt.GridLayout; import java.awt.Insets; import javax.swing.JButton; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JScrollBar; import javax.swing.JTabbedPane; import javax.swing.JTable; import javax.swing.JTextField; import javax.swing.SwingUtilities; import javax.swing.WindowConstants; import handling.Handler; /** * This code was edited or generated using CloudGarden's Jigloo * SWT/Swing GUI Builder, which is free for non-commercial * use. If Jigloo is being used commercially (ie, by a corporation, * company or business for any purpose whatever) then you * should purchase a license for each developer using Jigloo. * Please visit [url]www.cloudgarden.com[/url] for details. * Use of Jigloo implies acceptance of these licensing terms. * A COMMERCIAL LICENSE HAS NOT BEEN PURCHASED FOR * THIS MACHINE, SO JIGLOO OR THIS CODE CANNOT BE USED * LEGALLY FOR ANY CORPORATE OR COMMERCIAL PURPOSE. */ public class Frame extends javax.swing.JFrame { private static final long serialVersionUID = 1L; public JTabbedPane sides; public JPanel tools; public static JButton dateconvknopf; public static JTextField result; private JScrollBar scroll; public JPanel DB; public static JButton dmconvknopf; public static JTextField dmconvtf; private JLabel dmconvlabel; public static JTextField dateconvtf; private JLabel dateconvlabel; public JPanel jPanel3; public JPanel panel1; public static JTable table = new JTable(); public static Object main; /** * Auto-generated main method to display this JFrame */ public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { public void run() { Frame inst = new Frame(); inst.setLocationRelativeTo(null); inst.setVisible(true); } }); } public Frame(){ super(); initGUI(); } public void runme(Object me) { main = me; Frame inst = new Frame(); inst.setLocationRelativeTo(null); inst.setVisible(true); } public void initGUI() { try { setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); { sides = new JTabbedPane(); getContentPane().add(sides, BorderLayout.CENTER); { tools = new JPanel(); GridLayout toolsLayout = new GridLayout(1, 1); toolsLayout.setHgap(5); toolsLayout.setVgap(5); toolsLayout.setColumns(1); tools.setLayout(toolsLayout); sides.addTab("Tools", null, tools, null); { panel1 = new JPanel(); GridBagLayout panel1Layout = new GridBagLayout(); panel1Layout.rowWeights = new double[] {0.0, 0.0, 0.0, 0.1}; panel1Layout.rowHeights = new int[] {40, 40, 40, 7}; panel1Layout.columnWeights = new double[] {0.0, 0.0, 0.1}; panel1Layout.columnWidths = new int[] {185, 240, 7}; panel1.setLayout(panel1Layout); /*GridLayout panel1Layout = new GridLayout(3, 1); panel1Layout.setHgap(5); panel1Layout.setVgap(5); panel1Layout.setColumns(1); panel1.setLayout(panel1Layout);*/ tools.add(panel1); { dateconvlabel = new JLabel(); panel1.add(dateconvlabel, new GridBagConstraints(0, 0, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0)); dateconvlabel.setText("DDDYY"); } { result = new JTextField("",21); panel1.add(result, new GridBagConstraints(1, 2, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0)); } { dmconvknopf = new JButton(); panel1.add(dmconvknopf, new GridBagConstraints(2, 1, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0)); dmconvknopf.setText("CONVERT DMX "); dmconvknopf.addActionListener(new Handler(1, main)); } { dateconvknopf = new JButton(); panel1.add(dateconvknopf, new GridBagConstraints(2, 0, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0)); dateconvknopf.setText("CONVERT DATE"); dateconvknopf.addActionListener(new Handler(2, main)); } { dateconvtf = new JTextField(" ", 21); panel1.add(dateconvtf, new GridBagConstraints(1, 0, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0)); } { dmconvtf = new JTextField("",21); panel1.add(dmconvtf, new GridBagConstraints(1, 1, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0)); } { dmconvlabel = new JLabel(); panel1.add(dmconvlabel, new GridBagConstraints(0, 1, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0)); dmconvlabel.setText("CONVERT DMX (Injektor)"); } } } { DB = new JPanel(); sides.addTab("DB", null, DB, null); { scroll = new JScrollBar(); table.add(scroll); DB.add(table); } } } pack(); this.setSize(800, 400); } catch (Exception e) { //add your error handling code here e.printStackTrace(); } } }
Code java: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
package handling; import java.awt.event.*; public class Handler implements ActionListener { //private static final long serialVersionUID = 1L; public int id; public static Handler main; public Handler(int i, Object me) { id = i; main = me; } public void actionPerformed(ActionEvent ev) { switch(id) { case 1: { main.setWrong(false); main.setMatrix((GUI.Frame.dmconvtf.getText()).toCharArray()); main.wandle(1,2);//(matrix[6]-48)*100+(matrix[7]-48)*10+(matrix[8]-48), (matrix[10]-48)*10+(matrix[11]-48)); if(wrong!=true) { String str = new String(show); GUI.Frame.result.setText(str); } } case 2: { wrong = false; matrix = (GUI.Frame.dateconvtf.getText()).toCharArray(); wandle((matrix[0]-48)*100+(matrix[1]-48)*10+(matrix[2]-48), (matrix[3]-48)*10+(matrix[4]-48)); if(wrong!=true) { String str = new String(show); GUI.Frame.result.setText(str); } } } } }
-
16.08.11 10:55 #22
Also bevor wir hier weiter machen, solltest du dir vielleicht noch ein paar Artikel zum Thema OOP, Codedesign, Pattern, etc. durchlesen. Dein Code hält sich an keinerlei Standards (auch nicht ansatzweiße).
Damit dein Problem jetzt aber gelöst ist, ersetzt du bitte diese Zeile im Handler:
...durch...Code java:1
public static Handler main;
Code java:1
public static code main;
Bitte die Code-Tags verwenden. Bei Java-Code: [java]...[/java]
Tutorials:
Automatisches erzeugen eines Inhaltsverzeichnisses (Javascript)
JAnimationPanel - Animationen für Swing/AWT
SWTRatingBar (Bewertungs-Composite) selbst programmieren
____________________________________________________________________________
Über eine Bewertung (Stern links unter dem Beitrag) oder ein Danke freue ich mich sehr.
-
Ich weiß mein Gekrickel ist noch sehr wild....
setzte ich die Zeile entsprechend bekomme ich:
code cannot be resolved to a type
liegt das an meiner Ordner struktur?
handler und GUI liegen jeweils in einem eigenen Ordner enstsprechend dem Packagenamen...
-
16.08.11 11:06 #24
Du wirst wahrscheinlich noch das Package von der Klasse "code" in deine Klasse "Handler" importen müssen.
Mit was für einer Entwicklungsumgebung arbeitest du denn? (Eclipse, NetBeans, etc.)Bitte die Code-Tags verwenden. Bei Java-Code: [java]...[/java]
Tutorials:
Automatisches erzeugen eines Inhaltsverzeichnisses (Javascript)
JAnimationPanel - Animationen für Swing/AWT
SWTRatingBar (Bewertungs-Composite) selbst programmieren
____________________________________________________________________________
Über eine Bewertung (Stern links unter dem Beitrag) oder ein Danke freue ich mich sehr.
-
Arbeite mit eclipse
mal ne blöde Frage macht das von der Strucktur her Sinn das Package von code in den Handler zu importieren?
Aber wenns Funktioniert mir recht, nur wie?
Um mal zu den Konventionen zurückzukommen... was brennt denn am meisten im auge?
Jetzt schonmal tausend Dank für deine gestohlene Zeit!
Ach ja ich hab den quellcode der Klasse Handler natürlich noch nicht komplett angepasst alles was in Case 2 passiert ist noch unbearbeitet...Geändert von Iolinar (16.08.11 um 11:34 Uhr)
-
16.08.11 12:25 #26
So, ich hab deinen Code jetzt mal ein "wenig" überarbeitet. Jetzt ist es wenigstens nicht mehr ganz so graußig. Und die Überischt hat dadurch auch einige Pluspunkte bekommen. Schau dir den Code jetzt einfach mal an, wenn du fragen dazu haben solltest, nur zu.
Klasse DBWindow & MyActionListener:
Code java: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
import java.awt.BorderLayout; import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import java.awt.GridLayout; import java.awt.Insets; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JScrollBar; import javax.swing.JTabbedPane; import javax.swing.JTable; import javax.swing.JTextField; import javax.swing.table.DefaultTableModel; import javax.swing.table.TableModel; /** * Bei dir heißt diese Klasse "GUI" */ public class DBWindow extends JFrame { private static final String TB_STRING = "CUSTOMER"; private static final String URL = "jdbc:hsqldb:hsql://localhost/xdb"; private final TableModel model; private final JTable table; private final JTextField result; private final JTextField dmconvtf; private boolean isWrongFormat; public DBWindow() { super("Demo"); this.model = new DefaultTableModel(new String[] {" ", " ", " "}, 50); this.table = new JTable(); table.setModel(model); setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); { JTabbedPane sides = new JTabbedPane(); getContentPane().add(sides, BorderLayout.CENTER); { JPanel tools = new JPanel(); GridLayout toolsLayout = new GridLayout(1, 1); toolsLayout.setHgap(5); toolsLayout.setVgap(5); toolsLayout.setColumns(1); tools.setLayout(toolsLayout); sides.addTab("Tools", null, tools, null); { JPanel panel1 = new JPanel(); GridBagLayout panel1Layout = new GridBagLayout(); panel1Layout.rowWeights = new double[] { 0.0, 0.0, 0.0, 0.1 }; panel1Layout.rowHeights = new int[] { 40, 40, 40, 7 }; panel1Layout.columnWeights = new double[] { 0.0, 0.0, 0.1 }; panel1Layout.columnWidths = new int[] { 185, 240, 7 }; panel1.setLayout(panel1Layout); /* * GridLayout panel1Layout = new GridLayout(3, 1); * panel1Layout.setHgap(5); * panel1Layout.setVgap(5); * panel1Layout.setColumns(1); * panel1.setLayout(panel1Layout); */ tools.add(panel1); { JLabel dateconvlabel = new JLabel(); panel1.add(dateconvlabel, new GridBagConstraints(0, 0, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0)); dateconvlabel.setText("DDDYY"); } { result = new JTextField("", 21); panel1.add(result, new GridBagConstraints(1, 2, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0)); } { JButton dmconvknopf = new JButton(); panel1.add(dmconvknopf, new GridBagConstraints(2, 1, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0)); dmconvknopf.setText("CONVERT DMX "); dmconvknopf.addActionListener(new MyActionListener(1)); } { JButton dateconvknopf = new JButton(); panel1.add(dateconvknopf, new GridBagConstraints(2, 0, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0)); dateconvknopf.setText("CONVERT DATE"); dateconvknopf.addActionListener(new MyActionListener(2)); } { JTextField dateconvtf = new JTextField(" ", 21); panel1.add(dateconvtf, new GridBagConstraints(1, 0, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0)); } { dmconvtf = new JTextField("", 21); panel1.add(dmconvtf, new GridBagConstraints(1, 1, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0)); } { JLabel dmconvlabel = new JLabel(); panel1.add(dmconvlabel, new GridBagConstraints(0, 1, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0)); dmconvlabel.setText("CONVERT DMX (Injektor)"); } } } { JPanel DB = new JPanel(); sides.addTab("DB", null, DB, null); { JScrollBar scroll = new JScrollBar(); table.add(scroll); DB.add(table); } } } this.setSize(800, 400); } /** * @param args */ public static void main(String[] args) { DBWindow window = new DBWindow(); DBConnection dbCon = null; try { dbCon = new DBConnection(DBConnection.DRIVER_HSQLDB); String heads[] = new String[50]; heads[0] = "ID"; heads[1] = "FIRSTNAME"; heads[2] = "LASTNAME"; // Verbindung zur DB aufbauen und Daten holen dbCon.connect(URL); String[] columnHeader = dbCon.getColumnHeader(TB_STRING, heads); window.setTableColumnHeader(columnHeader); String[][] values = dbCon.getValues(TB_STRING); window.setTableValues(values); } catch(ClassNotFoundException e) { System.err.println("Treiber konnte nicht geladen werden"); e.printStackTrace(); finally { dbCon.disconnect(); } window.open(); } /** * @param columnHeader */ public void setTableColumnHeader(String[] columnHeader) { for(int i = 0; i < columnHeader.length; i++) { table.getColumnModel().getColumn(i).setHeaderValue(columnHeader); } } /** * @param values */ public void setTableValues(String[][] values) { for(int i = 0; i < values.length; i++) { table.setValueAt(values[0], i, 0); table.setValueAt(values[1], i, 1); table.setValueAt(values[2], i, 2); } } /** * */ public void open() { setVisible(true); } /** * wandelt aus day year in day month year DD MM YYYY * * @param cs * @param day * @param year */ public char[] wandle(int day, int year) { char show[] = new char[10]; isWrongFormat = false; int month = 1; boolean schaltjahr = false; boolean hit = false; int store = year; // filtere Datum aus Datamatrix Code -> Schreibe in date / year // Schaltjahres filter (-4 => 0 Schaltjahr) while(year > 0) year = year - 4; if(year == 0) schaltjahr = true; year = store; // year zurücksetzen if(day > 31) // januar { day = day - 31; month++; } else hit = true; if(day > 28 && schaltjahr == false && hit == false) { day = day - 28; month++; } else { if(schaltjahr == false) hit = true; if(day > 29 && schaltjahr == true && hit == false) { day = day - 29; month++; // februar } else { hit = true; } } if(day > 31 && hit == false) // märz { day = day - 31; month++; } else hit = true; if(day > 30 && hit == false) // april { day = day - 30; month++; } else hit = true; if(day > 31 && hit == false) // mai { day = day - 31; month++; } else hit = true; if(day > 30 && hit == false) // juni { day = day - 30; month++; } else hit = true; if(day > 31 && hit == false) // juli { day = day - 31; month++; } else hit = true; if(day > 31 && hit == false) { day = day - 31; // august month++; } else hit = true; if(day > 30 && hit == false) { day = day - 30; // september month++; } else hit = true; if(day > 31 && hit == false) { day = day - 31; // oktober month++; } else hit = true; if(day > 30 && hit == false) { day = day - 30; // november month++; } else hit = true; if(day <= 31 && hit == false) hit = true; if(day > 31 || month > 12 || year > 9999 || hit == false) { result.setText("WRONG FORMAT"); isWrongFormat = true; return null; } else show = format(day, month, year); return show; }; /** * Wandelt aus day month year in DD.MM.YYYY in show[] * * @param day * @param month * @param year */ public char[] format(int day, int month, int year) { char show[] = new char[10]; int store; store = day; day = (day % 10); store = (store - day) / 10; store = store + 48; day = day + 48; show[0] = (char) store; show[1] = (char) day; show[2] = '.'; store = month; month = (month % 10); store = (store - month) / 10; store = store + 48; month = month + 48; show[3] = (char) store; show[4] = (char) month; show[5] = '.'; store = year; year = (year % 10); store = (store - year) / 10; store = store + 48; year = year + 48; show[6] = '2'; show[7] = '0'; show[8] = (char) store; show[9] = (char) year; return show; } /** * Bei dir heißt diese Klasse "Handler" */ private final class MyActionListener implements ActionListener { private final int id; /** * @param id */ public MyActionListener(int id) { this.id = id; } /* (non-Javadoc) * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent) */ public void actionPerformed(ActionEvent e) { switch (id) { case 1: { String text = dmconvtf.getText(); char[] charArray = text.toCharArray(); char[] c = wandle((charArray[6]-48)*100+(charArray[7]-48)*10+(charArray[8]-48), (charArray[10]-48)*10+(charArray[11]-48)); if(!isWrongFormat) { String str = new String(c); result.setText(str); } } case 2: { String text = dmconvtf.getText(); char[] charArray = text.toCharArray(); char[] c = wandle((charArray[0] - 48) * 100 + (charArray[1] - 48) * 10 + (charArray[2] - 48), (charArray[3] - 48) * 10 + (charArray[4] - 48)); if(!isWrongFormat) { String str = new String(c); result.setText(str); } } } } } }
Klasse DBConnection:
Code java: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
import java.sql.Connection; import java.sql.DatabaseMetaData; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.LinkedList; import java.util.List; /** * Bei dir heißt diese Klasse "Code" */ public class DBConnection { public static final String DRIVER_HSQLDB = "org.hsqldb.jdbcDriver"; private Connection con = null; /** * @param driver */ public DBConnection(String driver) throws ClassNotFoundException { Class.forName(driver); } /** * verbindet mit Datenbank * * @param driver * @param URL * @return */ public Connection connect(String URL) { try { con = DriverManager.getConnection(URL, "sa", ""); } catch(SQLException e) { e.printStackTrace(); } return con; } /** * beendet Verbindung */ public void disconnect() { if(con != null) { try { con.close(); con = null; } catch(SQLException e) { e.printStackTrace(); } } } /** * Liefert Spaltenbeschriftung für Tabel der Tabelle tbstring der Spalten heads * * @param dbCon * @param table * @param tbstring * @param heads * @return */ public String[] getColumnHeader(String tbstring, String heads[]) { if(con == null) { System.err.println("Connection is null"); return null; } String[] columnHeader = new String[heads.length]; ResultSet columnsRS = null; try { DatabaseMetaData dbMetaData = con.getMetaData(); columnsRS = dbMetaData.getColumns(con.getCatalog(), "%", tbstring, "%"); int i = 0; while(columnsRS.next()) { if(columnsRS.getString("COLUMN_NAME").equals(heads[i])) { columnHeader[i] = heads[i]; i++; } } } catch(SQLException e) { e.printStackTrace(); } return columnHeader; } /** * liefert gesamten Inhalt der Tabelle tbstring für tabelle table * * @param tbstring * @param table * @param con */ public String[][] getValues(String tbstring) { if(con == null) { System.err.println("Connection is null"); return null; } List<String[]> values = new LinkedList<String[]>(); try { String query = "SELECT * FROM "; Statement stmt = con.createStatement(); ResultSet rs = stmt.executeQuery(query.concat(tbstring)); //int count = 0; while(rs.next()) { values.add(new String[] { rs.getString(1), rs.getString(2), rs.getString(3) }); } } catch(SQLException e) { e.printStackTrace(); } String[][] result = new String[values.size()][3]; return values.toArray(result); } }
Ich sage nicht das der Code (so wie er jetzt ist) perfekt ist, aber er ist auf jedenfall besser als vorher.
Geändert von Fabio Hellmann (16.08.11 um 12:27 Uhr)
Bitte die Code-Tags verwenden. Bei Java-Code: [java]...[/java]
Tutorials:
Automatisches erzeugen eines Inhaltsverzeichnisses (Javascript)
JAnimationPanel - Animationen für Swing/AWT
SWTRatingBar (Bewertungs-Composite) selbst programmieren
____________________________________________________________________________
Über eine Bewertung (Stern links unter dem Beitrag) oder ein Danke freue ich mich sehr.
-
16.08.11 15:08 #27SE Tutorials.de Gastzugang
Ähm ... ich hätte da mal noch ne Frage über die zusätzliche Referenz auf THIS :
Warum machst du dir die Mühe und deklarierst ne zweite Referenz die auf das selbe Objekt zeigt ? Es reicht völlig aus wenn du der Methode die eine Referenz auf deine Klasse erwartet einfach THIS übergibst :
Code java:1
SubClass object=new SubClass(this);
Auch finde ich deine STATIC-Konstrukte erlich gesagt : schrecklich.
Du solltest dir wirklich mal OOP angucken und von diesem Anfänger-Mist alles in MAIN und STATIC zu machen weggehen.
Ähnliche Themen
-
Newbiefrage: main Klasse ruft Klasse mit main auf, geht das?
Von maxpade im Forum JavaAntworten: 5Letzter Beitrag: 10.03.09, 10:20 -
Aus einer Klasse auf die Form zugreifen...
Von thespecialx im Forum C/C++Antworten: 0Letzter Beitrag: 21.02.08, 10:42 -
Von einer Klasse auf die Form zugreifen
Von Eroli im Forum .NET Windows FormsAntworten: 21Letzter Beitrag: 02.04.07, 09:52 -
Auf Variable einer Klasse zugreifen
Von Metha im Forum PHPAntworten: 7Letzter Beitrag: 14.05.06, 15:54 -
[MFC VS6] von einer Klasse auf den Dialog zugreifen
Von SOB im Forum C/C++Antworten: 3Letzter Beitrag: 09.04.03, 14:47





Zitieren
Login





