tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
3
ZUGRIFFE
966
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    axelf76 axelf76 ist offline Grünschnabel
    Registriert seit
    Aug 2007
    Beiträge
    3
    Hallo zusammen,

    Ich möchte in einem Java-Applet einen Jdialog einblenden der einen dynamischen Jtable beinhaltet.
    Der Jtable soll seine dynamischen Daten von einem Array aus einem Menuevent erhalten.

    Leider schaffe ich es nicht die JTable im Dialog entsprechend zu updaten...
    Der JDialog wird nur beim laden des applets initialisiert und dann passiert nix mehr..
    Die Daten aus dem Array sind im Dialog vorhanden aber nicht im Jtable anzeigbar.
    Mit dem DefaultTableModel komm ich irgendwie nicht weiter ...

    Kann mir jemand eine Hilfestellung geben wie ich das bewerkstelligen muss ?


    Danke !

    Gruß
    Axel

    hier der Code :

    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
    
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
    import java.applet.*;
    import javax.swing.table.*;
    import java.awt.Graphics;
    import javax.swing.border.*;
    import javax.swing.event.*;
    import javax.swing.table.TableModel;
    import java.awt.image.*;
    import java.io.*;
    import java.util.*;
     
     
     
    public class test extends JApplet  {
     
        JFrame fFrame;
        
        JMenuItem fMenuExtras;
        JMenu  submenu;
        JMenuItem menuItem1,menuItem2,menuItem3;
        String[][] list;//=new String[2][6];
        String[] columnNames;
     
        JDialog view = new tableview(new JFrame(), "view", true);
     
     
        public void init () 
        {
            JMenuBar mb = new JMenuBar ();
            JMenu x = new JMenu ("Menu");
            mb.add (x);
            submenu = new JMenu("submenu");
            menuItem3 = new JMenuItem("table");
            submenu.add(menuItem3);
            menuItem3.addActionListener (new eventhandler());
            x.add(submenu);
            setJMenuBar (mb);
        } // init
     
     
        class eventhandler implements ActionListener
        { 
            public void actionPerformed (ActionEvent e)
            {
                String command = e.getActionCommand ();
                    if (command.equals ("table")) 
                    {   
                        String[] columnNames =  { "col1", "col2", "col3","col4" , "col5" ,"col6"  }; 
                        System.out.println("table");
                        String[][] list= { {"1","test","1","1","1","3"},{"2","test2","2","2","2","6"}  };
                                          
                         view.setVisible(true); 
     
                    }
            } // actionPerformed
        }// class eventhandler
     
          public class TabModel extends DefaultTableModel{
                             
                             TabModel(Object[][]list, Object[] colnames){
                                 
                                 super(list, colnames);
                             }
          }// class Tabmodel
     
     
        public class tableview extends JDialog implements ActionListener
        {
              JButton OKButton;
            tableview(JFrame hostframe, String Titel, boolean dModal)
            {
                super(hostframe, Titel, dModal);
                Dimension screenSize = getToolkit ().getScreenSize ();
                setLocation (screenSize.width/2-100,screenSize.height/2-200);
                java.util.Calendar today = new java.util.GregorianCalendar();
                int day = today.get(Calendar.DATE);
                int month = today.get(Calendar.MONTH)+1;
                int year = today.get(Calendar.YEAR);
     
                System.out.println("test");
     
     
                DefaultTableModel TabModel = new DefaultTableModel();
     
                JTable medtable = new JTable(TabModel); 
                
                System.out.println("Date="+day+"."+month+"."+year);    
     
                medtable.setDefaultRenderer(Object.class, new DefaultTableCellRenderer() 
                {
                    @Override
                    public Component getTableCellRendererComponent(JTable table,
                            Object value, boolean isSelected, boolean hasFocus,
                            int row, int column) 
                    {
                        
                        Component c = super.getTableCellRendererComponent(table, value,
                                isSelected, hasFocus, row, column);
                        
                        int x = row % 2;
                        if(x == 0 )
                        {
                         setBackground(Color.white);
                         setFont(new java.awt.Font("Arial", Font.BOLD, 12));
                          
                        }
                        else
                        {
                         setBackground(Color.lightGray);
                         setFont(new java.awt.Font("Arial", Font.BOLD, 12));
                         
                        }
     
                        setHorizontalAlignment (JLabel.CENTER);  
                        Color Farbe6 = new Color(254, 242, 229); 
                        Color Farbe7 = new Color(102, 0, 102); 
     
                        return this;
                    }
                });
     
                JTextField dialogtext= new JTextField("tableview from "+ day +"."+ month +"."+ year);
                dialogtext.setEditable(false);
     
                GridBagLayout gbl = new GridBagLayout();
                this.setLayout(gbl);
                          
                GridBagConstraints c = new GridBagConstraints();
            
                c.gridx = 0;
                c.gridy = 0;
                c.ipady = 10;
                c.weightx = 0;
                c.weighty = .1;
                c.fill = GridBagConstraints.BOTH;
                add(dialogtext,c);  
     
                c.gridx = 0;
                c.gridy = 1;
                c.ipady = 10;
                c.weightx = 0;
                c.weighty = 0.7;
                c.fill = GridBagConstraints.BOTH;
                add( new JScrollPane( medtable ),c ); 
     
                JButton OKButton = new JButton("Back");
                OKButton.setSize(20,30);
                c.gridx = 0;
                c.gridy = 2;
                c.ipady = 10;
                c.weightx = 0.5;
                c.weighty = 0.1;
                add(OKButton,c);
                OKButton.addActionListener(this);
                pack(); 
            }
            
            public void actionPerformed(ActionEvent e)
            { 
                    
     
                view.setVisible(false); 
            }
        } 
     
     
    }// class testApplet
     

  2. #2
    Avatar von Matze
    Matze Matze ist offline Weltenwanderer
    Registriert seit
    Jul 2007
    Ort
    Die Welt
    Beiträge
    1.504
    Blog-Einträge
    7
    Hallo,

    ist schon länger her, dass ich das gemacht habe, aber ich glaube ich habe das gelöst, indem ich immer wenn neue Daten kamen damit ein neues TabelModel erstellt habe und meiner JTabel dann dieses neue TableModel gegeben habe.
     
    "... Jeder von uns ist Kunst... gezeichnet vom Leben" (Casper)

    "Sir?, we're sorrounded!"
    "Excellent, we can attack in any direction"

  3. #3
    axelf76 axelf76 ist offline Grünschnabel
    Registriert seit
    Aug 2007
    Beiträge
    3
    Danke für die schnelle Antwort !

    Kannst du mir evtl noch kurz zeigen wo und wie ich das anstellen muss in meinem Code (Pseudocodemässig) ?

    Genau an diesem Punkt scheiterts nämlich bei mir

    Danke !

    Gruß
    Axel
     

  4. #4
    axelf76 axelf76 ist offline Grünschnabel
    Registriert seit
    Aug 2007
    Beiträge
    3
    Bingo !

    Nach einigen Versuchen hab ich nun den Stein der Weisen gefunden ...

    Entscheiden war das das DefaultTableModel im JDialog tableview mit übergeben wird

    Wen es interessiert :

    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
    
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
    import java.applet.*;
    import javax.swing.table.*;
    import java.awt.Graphics;
    import javax.swing.border.*;
    import javax.swing.event.*;
    import javax.swing.table.TableModel;
    import java.awt.image.*;
    import java.io.*;
    import java.util.*;
     
     
     
    public class test extends JApplet  {
     
        JFrame fFrame;
        
        JMenuItem fMenuExtras;
        JMenu  submenu;
        JMenuItem menuItem1,menuItem2,menuItem3;
        public static String[][] list ;//=new String[2][6];
        public static String[] columnNames;
        DefaultTableModel model=new DefaultTableModel(list,columnNames);
     
     
        JDialog view = new tableview(new JFrame(), "view", true, model);
        JTable medtable;
     
        
     
        public void init () 
        {
            JMenuBar mb = new JMenuBar ();
            JMenu x = new JMenu ("Menu");
            mb.add (x);
            submenu = new JMenu("submenu");
            menuItem3 = new JMenuItem("table");
            submenu.add(menuItem3);
            menuItem3.addActionListener (new eventhandler());
            x.add(submenu);
            setJMenuBar (mb);
        } // init
     
     
        class eventhandler implements ActionListener
        { 
            public void actionPerformed (ActionEvent e)
            {
                String command = e.getActionCommand ();
                    if (command.equals ("table")) 
                    {   
                        String[] columnNames =  { "col1", "col2", "col3","col4" , "col5" ,"col6"  }; 
                        
                        String[][] list= { {"1","test","1","1","1","3"},{"2","test2","2","2","2","6"}  };
     
     
                        model.setDataVector(list, columnNames);
     
     
                        view.setVisible(true); 
     
                    }
            } // actionPerformed
        }// class eventhandler
     
     
     
        public class tableview extends JDialog implements ActionListener {
              JButton OKButton;
              
              
            tableview(JFrame hostframe, String Titel, boolean dModal,DefaultTableModel model)
            {
                super(hostframe, Titel, dModal);
                Dimension screenSize = getToolkit ().getScreenSize ();
                setLocation (screenSize.width/2-100,screenSize.height/2-200);
                java.util.Calendar today = new java.util.GregorianCalendar();
                int day = today.get(Calendar.DATE);
                int month = today.get(Calendar.MONTH)+1;
                int year = today.get(Calendar.YEAR);
     
                System.out.println("test");
     
                medtable = new JTable(model);
     
     
                System.out.println("Date="+day+"."+month+"."+year);    
     
                medtable.setDefaultRenderer(Object.class, new DefaultTableCellRenderer() 
                {
                    @Override
                    public Component getTableCellRendererComponent(JTable table,
                            Object value, boolean isSelected, boolean hasFocus,
                            int row, int column) 
                    {
                        
                        Component c = super.getTableCellRendererComponent(table, value,
                                isSelected, hasFocus, row, column);
                        
                        int x = row % 2;
                        if(x == 0 )
                        {
                         setBackground(Color.white);
                         setFont(new java.awt.Font("Arial", Font.BOLD, 12));
                          
                        }
                        else
                        {
                         setBackground(Color.lightGray);
                         setFont(new java.awt.Font("Arial", Font.BOLD, 12));
                         
                        }
     
                        setHorizontalAlignment (JLabel.CENTER);  
                        Color Farbe6 = new Color(254, 242, 229); 
                        Color Farbe7 = new Color(102, 0, 102); 
     
                        return this;
                    }
                });
     
                JTextField dialogtext= new JTextField("tableview from "+ day +"."+ month +"."+ year);
                dialogtext.setEditable(false);
     
                GridBagLayout gbl = new GridBagLayout();
                this.setLayout(gbl);
                          
                GridBagConstraints c = new GridBagConstraints();
            
                c.gridx = 0;
                c.gridy = 0;
                c.ipady = 10;
                c.weightx = 0;
                c.weighty = .1;
                c.fill = GridBagConstraints.BOTH;
                add(dialogtext,c);  
     
                c.gridx = 0;
                c.gridy = 1;
                c.ipady = 10;
                c.weightx = 0;
                c.weighty = 0.7;
                c.fill = GridBagConstraints.BOTH;
                add( new JScrollPane( medtable ),c ); 
     
                JButton OKButton = new JButton("Back");
                OKButton.setSize(20,30);
                c.gridx = 0;
                c.gridy = 2;
                c.ipady = 10;
                c.weightx = 0.5;
                c.weighty = 0.1;
                add(OKButton,c);
                OKButton.addActionListener(this);
                pack(); 
            }
            
            public void actionPerformed(ActionEvent e)
            { 
     
                view.setVisible(false); 
            }
     
     
     
     
        } 
     
     
    }// class testApplet
     

Ähnliche Themen

  1. JTable aktualisieren
    Von georgenis im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 1
    Letzter Beitrag: 01.03.10, 09:55
  2. JTABLE aktualisieren / ändern
    Von dasago im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 0
    Letzter Beitrag: 10.06.08, 09:15
  3. JTable aktualisieren
    Von Manuel Hegemann im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 0
    Letzter Beitrag: 03.10.07, 14:22
  4. JTable aktualisieren
    Von jueman im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 4
    Letzter Beitrag: 04.08.07, 01:46
  5. JTable aktualisieren
    Von gondor im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 15
    Letzter Beitrag: 11.08.04, 09:49

Stichworte