problem gelöst:
man darf nach dem ändern des models dieses _nicht_ neu zur tabelle hinzufügen.
es reicht wenn man nachdem das model geändert wurde IM model fireTabledataChanged() aufruft.
Beiträge von rul0r
-
-
das sollte helfen:
build.propertiesbuild.xml
Code
Alles anzeigen<path id="classpath"> <fileset dir="${basecp}/lib" id="lib"> <include name="*.jar"/> </fileset> <pathelement location="${build}"/> </path> <path id="classpath"> <fileset dir="${basecp}/lib" id="lib"> <include name="*.jar"/> </fileset> <pathelement location="${build}"/> </path> <target name="compile" depends="init"> <javac srcdir="${src}" destdir="${build}" classpathref="classpath" debug="off" /> </target>
${basecp} is bei mir . -
Userinterface - da hab ich schon etwas herumprobiert deshalb die ganzen kommentare
Code
Alles anzeigenprivate JScrollPane getJScrollPane() { if (jScrollPane == null) { jScrollPane = new JScrollPane(); jScrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); jScrollPane.setViewportView(getJTable()); } return jScrollPane; } /** * This method initializes jTable * * @return javax.swing.JTable */ private JTable getJTable() { if (jTable == null) { jTable = new JTable(); jTable.setAutoResizeMode(JTable.AUTO_RESIZE_ALL_COLUMNS); jTable.setModel(KapitelTableModel); // KapitelTableModel.fireTableDataChanged(); jTable.addMouseListener(new MouseAdapter() { public void mouseClicked(MouseEvent e) { int row = jTable.getSelectedRow(); if (row > -1) { if(jTable2.getModel().getRowCount()>1)//model wurde schon einmal geladen jTable2.setModel(new CodeTableModel()); GruppenTableModel=new GruppenTableModel(KapitelTableModel.getKapitel(row)); jTable1.setModel(GruppenTableModel); jTable1.setRowSorter(new TableRowSorter<GruppenTableModel>(GruppenTableModel)); } } }); jTable.setRowSorter(new TableRowSorter<KapitelTableModel>(KapitelTableModel)); //TODO für alle tabellen impl } return jTable; } .... private JRadioButton getJRadioButton1() { if (jRadioButton1 == null) { jRadioButton1 = new JRadioButton(); jRadioButton1.setBounds(new Rectangle(125, 6, 21, 21)); jRadioButton1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) { log.debug("Switching Katalog"); setup.setKatalog(2); jProgressBar.setIndeterminate(true); suche.refreshData(setup.getKatalog()); jProgressBar.setIndeterminate(false); KapitelTableModel = new KapitelTableModel(setup); KapitelTableModel.fireTableDataChanged(); jTable.setModel(KapitelTableModel); // KapitelTableModel.fireTableStructureChanged();//TODO BUG: viewport wird nicht upgedatet jTable.tableChanged(new TableModelEvent(KapitelTableModel)); jScrollPane.setViewportView(jTable); jScrollPane.revalidate(); jTable.invalidate(); jTable.repaint(); //jScrollPane.updateUI(); // jScrollPane.setViewportView(jTable); // repaint(); /* jTable.tableChanged(new TableModelEvent(KapitelTableModel)); jScrollPane.setViewportView(jTable); jTable=null;*/ /* jTable.setModel(KapitelTableModel); KapitelTableModel.fireTableStructureChanged(); KapitelTableModel.fireTableDataChanged(); jTable.repaint(); jScrollPane.repaint();*/ // jScrollPane. //jTable.setModel(KapitelTableModel); //jScrollPane.getViewport().add(jTable); }}); } return jRadioButton1; }
KapitelTableModel
Code
Alles anzeigenpublic class KapitelTableModel extends AbstractTableModel { /** * Retrieve a logger for this class */ private Setup setup=new Setup(); private static Log log = LogFactory.getLog("basis.model"); /** * Defines the Names of the Columns of the TableModel. */ private final String[] columnName = { "Kapitel"}; private KapitelDAO KapitelDAO=new JDBCObjectKapitelDAO(); private Vector<Kapitel> kapitel=new Vector<Kapitel>(); public KapitelTableModel(Setup setup) { super(); this.setup=setup; readData(); } private void readData(){ log.debug("Reading kataloge"); kapitel.removeAllElements(); if(setup.getKatalog()==2){ //TODO DEBUG! System.out.println("Debug"); Kapitel c=new Kapitel(); c.setKTitel("1"); kapitel.add(c); c.setKTitel("2"); kapitel.add(c); System.out.println(getRowCount()); } else kapitel=KapitelDAO.getKapitel(setup.getKatalog()); //da kommt ein vector zurück(das funktioniert) if(kapitel==null) log.error("Kapitel == null"); fireTableStructureChanged(); } public int getColumnCount() { return 1; } public int getRowCount() { // log.debug("Row Count:"+kapitel.size()); return kapitel.size(); } public Object getValueAt(int rowIndex, int columnIndex) { // log.debug("Get object at "+rowIndex+"/"+columnIndex); System.out.println(getRowCount()+" "+rowIndex); return kapitel.elementAt(rowIndex).getKTitel(); } public Kapitel getKapitel(int index){ // log.debug("Requesting KapNr for Kapitel at "+index); return kapitel.elementAt(index); } public String getColumnName(int c) { log.debug("colName = " + columnName[c]); return columnName[c]; } }
-
na kommts schon irgendwas muss euch ja einfallen
-
Hi
hab ein sehr lästiges problem.
Ich hab ein jtable in einem jscrollpane.
Das jtable hat ein model welches ich vom abstracttablemodel abgeleitet hab.
Wenn ich jetzt beim starten meines programms das model mit daten befülle(mehr als in den aktuellen viewport reinpassen) und dann der table das model zuweise wird alles richtig angezeigt.wenn ich dann nachträglich daten aus dem model rauslösche(zb dass nur mehr 2 zeilen drinnen sind) und danach ein fireTableData(Structure)Changed() aufruf is das dem scrollpane vollkommen wurscht. die scrollbar is noch imemr so groß wie vorher und sobald ich scrollen will haut er mir eine arrayindexoutofbounds exception(bei getValueAt vom model[getRowCount is zb 2, trotzdem will er auf 2,2 zugreifen]).
ich schaffs einfach nicht dem scrollpane zu sagen es soll sich neu aufbauen.
reload,revalidate,viewport neu setzen is ihm alles wurscht.
habts ihr eine idee wie ich das lösen kann? -
wozu die ( ) um user?
-
danke für den link.
funzt gut -
Hi
gibts eine möglichkeit, dass unter linux mehrere personen auf einer konsole arbeiten(also jeder sieht was der andere gerade schreibt/alle outputs bekommt etc)?
-
wenns nicht wirklich eclipse 3.3 sein muss dann nimm 3.2.2 und den http://www.eclipse.org/vep
den vep gibts als alpha version auch für eclipse3.3 afaik.
-
das hatte drähte. ich habs in dosen aufgelegt, crimpen hätte aber sicher auch funktioniert.
gekauft hab ich das: http://www.netzwerkshop.at/detail.asp?itemnr=ATSFP-V1T -
so, die kabeln wären verlegt hier der erfahrungsbericht:
ich hab gleich ein Cat5 verlegekabel eingezogen(welches überhaupt nicht steif ist, kaum ein unterschied zum patchkabel). noch funktioniert alles primadanke für die tipps.
-
Zitat von daff
Ich nehme an, in beiden Fällen gibt es Ausnahmen. So gibt es von Hirose beispielsweise eine RJ54-Steckerart, die auf Verlegekabeln montiert werden kann. Ob es umgekehrt auch Netzwerkbuchsen gibt, die mit Patchkabeln verwendet werden können weiß ich nicht.
woohoo: das sollte mein problem lösen: http://www.netzwerkshop.at/detail.asp?itemnr=AT-501200
leider is das dings sau teuer.. -
du kannst schon patchkabel und Dosen quetschen, es kann halt sein, dass eine schlechte verbindung hast. kommt halt drauf an wie dick die adern sind.
musst du das kabel durch ein rohr ziehen? oder legst du es in die ecken?
4cm Biegeradius war glaub ich der kleinste von dem ich bis jetzt gelesen habe.ich will nur nicht dass ich jetzt 100 meter patchkabel kauf und dann draufkomm dass ich damit nur eine miese verbindung zambring...
in ein rohr muss ichs nicht ziehen, ich legs nur in ecken.
das prob beim biegen is, dass ich aus einer wand mim kabl rauskomm und dann direkt in die dose muss. so wie ichs gesehn hab geht das kabel in alle dosen horizontal/vertikal hinein was bedeutet, dass ich jede menge kabel aus der wand rausstehen hätte um in die dose zu kommen.
-
hmm danke für die infos.
ich will konkret von einem router über ein kabel auf eine 2 fach netzwerkdose.
auf der strecke hab ich ein paar fiese 90° ecken drinnen, heißt das jetzt ich muss ein patchkabel verwenden was aber wiederum bedeutet dass ich keine netzwerkdose am anderen ende installieren kann?was ich bis jetzt gelesen hab reicht es für gigabit ethernet Cat5e kabel zu verwenden, stimmt das?
-
ich hab gedacht das geht nur mit dem[spezielle form], wenn du sagst mim messer gehts auch is mir das natürlich viel lieber
-
Hallo
ich plane in den nächsten Tagen ein netzwerkkabel in meiner wohnung einzuziehen und bräuchte dafür eine Crimpzange und so ein Auflegewerkzeug [das mitdem man Netzwerkdosen beschalten kann]. Da ich mir die 2 dinger für 1 mal verwenden nur ungern kaufen will hier die frage ob mir die 2 geräte vielleicht jmd borgen könnte?
-
es is oft so dass externe hdds nicht partitioniert sind, steck die platte an und schau ob sie unter:
start -> einstellungen -> systemsteuerung -> verwaltung -> computerverwaltung -> datenträgerverwaltung
aufscheint. -
ich bin bei webtropia(.com?) bin recht zufrieden.
vserver ham die keine, aber es gibt sicher vserver anbieter die auch windows anbieten -
seit wann braucht XP für eine externe hdd einen extra treiber?
gibts auf der hdd überhaupt partitionen? -
hab im sommer bei einer kleineren firma gearbeitet und hab dort ~950 netto bekommen