tutorials.de Buch-Aktion 05/2012
Seite 2 von 2 ErsteErste 12
ERLEDIGT
NEIN
ANTWORTEN
26
ZUGRIFFE
434
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #16
    Avatar von Fabio Hellmann
    Fabio Hellmann Fabio Hellmann ist offline Mitglied Brokat
    Registriert seit
    Aug 2011
    Ort
    München
    Beiträge
    494
    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.

  2. #17
    Iolinar Iolinar ist offline Mitglied
    Registriert seit
    Aug 2011
    Beiträge
    13
    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
     

  3. #18
    Avatar von Fabio Hellmann
    Fabio Hellmann Fabio Hellmann ist offline Mitglied Brokat
    Registriert seit
    Aug 2011
    Ort
    München
    Beiträge
    494
    Das funktioniert schon. Dein Problem ist nur, dass du hier...
    Code java:
    1
    
    public static Object main;
    ...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 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.

  4. #19
    Iolinar Iolinar ist offline Mitglied
    Registriert seit
    Aug 2011
    Beiträge
    13
    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
     

  5. #20
    Avatar von Fabio Hellmann
    Fabio Hellmann Fabio Hellmann ist offline Mitglied Brokat
    Registriert seit
    Aug 2011
    Ort
    München
    Beiträge
    494
    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.

  6. #21
    Iolinar Iolinar ist offline Mitglied
    Registriert seit
    Aug 2011
    Beiträge
    13
    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);
                        }
                
                    
                    
                    }   
                } 
            }
     
     
     
    }
     

  7. #22
    Avatar von Fabio Hellmann
    Fabio Hellmann Fabio Hellmann ist offline Mitglied Brokat
    Registriert seit
    Aug 2011
    Ort
    München
    Beiträge
    494
    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:
    Code java:
    1
    
    public static Handler main;
    ...durch...
    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.

  8. #23
    Iolinar Iolinar ist offline Mitglied
    Registriert seit
    Aug 2011
    Beiträge
    13
    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...
     

  9. #24
    Avatar von Fabio Hellmann
    Fabio Hellmann Fabio Hellmann ist offline Mitglied Brokat
    Registriert seit
    Aug 2011
    Ort
    München
    Beiträge
    494
    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.

  10. #25
    Iolinar Iolinar ist offline Mitglied
    Registriert seit
    Aug 2011
    Beiträge
    13
    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)
     

  11. #26
    Avatar von Fabio Hellmann
    Fabio Hellmann Fabio Hellmann ist offline Mitglied Brokat
    Registriert seit
    Aug 2011
    Ort
    München
    Beiträge
    494
    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.

  12. #27
    SE 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

  1. Antworten: 5
    Letzter Beitrag: 10.03.09, 10:20
  2. Aus einer Klasse auf die Form zugreifen...
    Von thespecialx im Forum C/C++
    Antworten: 0
    Letzter Beitrag: 21.02.08, 10:42
  3. Von einer Klasse auf die Form zugreifen
    Von Eroli im Forum .NET Windows Forms
    Antworten: 21
    Letzter Beitrag: 02.04.07, 09:52
  4. Auf Variable einer Klasse zugreifen
    Von Metha im Forum PHP
    Antworten: 7
    Letzter Beitrag: 14.05.06, 15:54
  5. Antworten: 3
    Letzter Beitrag: 09.04.03, 14:47

Stichworte