ERLEDIGT
JA
JA
ANTWORTEN
3
3
ZUGRIFFE
966
966
EMPFEHLEN
-
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
-
13.08.09 10:15 #2
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"
-
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
-
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
-
JTable aktualisieren
Von georgenis im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 1Letzter Beitrag: 01.03.10, 09:55 -
JTABLE aktualisieren / ändern
Von dasago im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 0Letzter Beitrag: 10.06.08, 09:15 -
JTable aktualisieren
Von Manuel Hegemann im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 0Letzter Beitrag: 03.10.07, 14:22 -
JTable aktualisieren
Von jueman im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 4Letzter Beitrag: 04.08.07, 01:46 -
JTable aktualisieren
Von gondor im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 15Letzter Beitrag: 11.08.04, 09:49





Zitieren
Login





