Hallo,
ich hab wieder ein Problem mit den JTables -.-
Ich habe 3 JTables und mir ein eigenes TableModel erstellt
Mein Problem ist jetzt folgendes:
Ich erzeuge ein TableModel und weise es allen 3 Tabellen zu
Ergebnis: alle Tabellen ohne Inhalt und Grau
Ich weise das TableModel nur der 2 und 3 Tabelle hinzu
Ergebnis: Funktioniert wunderbar
Ich weise das TableModel erst der 3 dann der 2 und dann der 1 Tabelle zu
Ergebnis: Die 3 wird angezeigt und die andern beiden nicht
Daraus folgere ich, dass das TableModel also grundsätzlich nicht falsch sein kann sondern irgendwas mit der ersten Tabelle nicht stimmt denn sobald ihr das Model zugewiesen wird geht der Rest ja auch kaputt =/
Die Tabellen sind an und für sich identisch ...
hier mal der code von der Form
bei bedarf kann ich das TableModel auch noch posten aber an dem kanns eigentlich nich liegen
greetz skelle
ich hab wieder ein Problem mit den JTables -.-
Ich habe 3 JTables und mir ein eigenes TableModel erstellt
Mein Problem ist jetzt folgendes:
Ich erzeuge ein TableModel und weise es allen 3 Tabellen zu
Ergebnis: alle Tabellen ohne Inhalt und Grau
Ich weise das TableModel nur der 2 und 3 Tabelle hinzu
Ergebnis: Funktioniert wunderbar
Ich weise das TableModel erst der 3 dann der 2 und dann der 1 Tabelle zu
Ergebnis: Die 3 wird angezeigt und die andern beiden nicht
Daraus folgere ich, dass das TableModel also grundsätzlich nicht falsch sein kann sondern irgendwas mit der ersten Tabelle nicht stimmt denn sobald ihr das Model zugewiesen wird geht der Rest ja auch kaputt =/
Die Tabellen sind an und für sich identisch ...
hier mal der code von der Form
Code:
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
/*
* FnewAnalysis.java
*
* Created on 15.11.2008, 15:45:10
*/
package frames;
import java.util.ArrayList;
import java.util.List;
import javax.swing.JTable;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
import org.jdom.Document;
import org.jdom.Element;
import prototype.Model;
import test.XPathFinder;
/**
*
* @author skelle
*/
public class FnewAnalysis extends javax.swing.JFrame {
private List<JTable> tables;
private ListSelectionListener rowListener;
private Document doc;
/** Creates new form FnewAnalysis */
public FnewAnalysis(Document d) {
this.doc = d;
initComponents();
customInit();
}
private void customInit()
{
//Tabellen in Liste einfügen
this.tables = new ArrayList<JTable>();
this.tables.add(tKat);
this.tables.add(tTest);
this.tables.add(tPart);
rowListener = new ListSelectionListener() {
public void valueChanged(final ListSelectionEvent e) {
if(e.getValueIsAdjusting()) return;
updateTable(1);
}
};
// this.tKat.getSelectionModel().addListSelectionListener(rowListener);
rowListener = new ListSelectionListener() {
public void valueChanged(final ListSelectionEvent e) {
if(e.getValueIsAdjusting()) return;
updateTable(2);
}
};
this.tTest.getSelectionModel().addListSelectionListener(rowListener);
updateTable(0);
}
public void updateTable(int tableIndex)
{
JTable table = this.tables.get(0);
String path ="";
if(tableIndex == 0)
{
path = "/root/Kategorie";
}
else
{
String value = table.getValueAt(table.getSelectedRow(), table.getSelectedColumn()).toString();
path = "/root/Kategorie[@name='" + value +"']/Test";
if(tableIndex == 2)
{
table = this.tables.get(1);
value = table.getValueAt(table.getSelectedRow(), table.getSelectedColumn()).toString();
path+="[@name='"+ value + "']/Baustein";
}
}
try
{
//Elemente für Tabelle zusammenstellen
boolean selected = false;
List<Element> elements = new XPathFinder(this.doc).find(path);
Object[][] data = new Object[elements.size()][2];
for(int i = 0; i < elements.size(); i++)
{
data[i][1] = elements.get(i).getAttributeValue("name");
if(elements.get(i).getAttributeValue("selected").equals("false"))
selected = false;
else
selected = true;
data[i][0] = selected;
}
Model mod = new Model(this.tables.get(tableIndex).getColumnModel(), data);
this.tTest.setModel(mod);
this.tKat.setModel(mod);
this.tPart.setModel(mod);
//for(int i = 0; i < tables.size(); i++)
//{
// System.out.println(tables.get(i).getName());
//}
}
catch (Exception e){
e.printStackTrace();
}
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jScrollPane2 = new javax.swing.JScrollPane();
tTest = new javax.swing.JTable();
jScrollPane3 = new javax.swing.JScrollPane();
tPart = new javax.swing.JTable();
jButton1 = new javax.swing.JButton();
jScrollPane4 = new javax.swing.JScrollPane();
tKat = new javax.swing.JTable();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
jScrollPane2.setName("tKat"); // NOI18N
tTest.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
{null, null, null}
},
new String [] {
"Auswahl", "Name", "Art"
}
) {
Class[] types = new Class [] {
java.lang.Boolean.class, java.lang.String.class, java.lang.String.class
};
boolean[] canEdit = new boolean [] {
true, false, false
};
public Class getColumnClass(int columnIndex) {
return types [columnIndex];
}
public boolean isCellEditable(int rowIndex, int columnIndex) {
return canEdit [columnIndex];
}
});
tTest.setName("tTest"); // NOI18N
jScrollPane2.setViewportView(tTest);
jScrollPane3.setName("tKat"); // NOI18N
tPart.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
{null, null}
},
new String [] {
"Auswahl", "Name"
}
) {
Class[] types = new Class [] {
java.lang.Boolean.class, java.lang.String.class
};
boolean[] canEdit = new boolean [] {
true, false
};
public Class getColumnClass(int columnIndex) {
return types [columnIndex];
}
public boolean isCellEditable(int rowIndex, int columnIndex) {
return canEdit [columnIndex];
}
});
tPart.setName("tTPart"); // NOI18N
jScrollPane3.setViewportView(tPart);
jButton1.setLabel("Speichern");
jButton1.setName("bSave"); // NOI18N
jScrollPane4.setName("tKat"); // NOI18N
tKat.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
{null, null}
},
new String [] {
"Auswahl", "Name"
}
) {
Class[] types = new Class [] {
java.lang.Boolean.class, java.lang.String.class
};
boolean[] canEdit = new boolean [] {
true, false
};
public Class getColumnClass(int columnIndex) {
return types [columnIndex];
}
public boolean isCellEditable(int rowIndex, int columnIndex) {
return canEdit [columnIndex];
}
});
tKat.setName("tTPart"); // NOI18N
jScrollPane4.setViewportView(tKat);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jScrollPane4, javax.swing.GroupLayout.PREFERRED_SIZE, 208, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 208, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(jScrollPane3, javax.swing.GroupLayout.PREFERRED_SIZE, 208, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(layout.createSequentialGroup()
.addGap(306, 306, 306)
.addComponent(jButton1)))
.addContainerGap(458, Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(jScrollPane4, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jScrollPane3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(jButton1)
.addContainerGap())
);
pack();
}// </editor-fold>
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
// new FnewAnalysis().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JButton jButton1;
private javax.swing.JScrollPane jScrollPane2;
private javax.swing.JScrollPane jScrollPane3;
private javax.swing.JScrollPane jScrollPane4;
private javax.swing.JTable tKat;
private javax.swing.JTable tPart;
private javax.swing.JTable tTest;
// End of variables declaration
}
bei bedarf kann ich das TableModel auch noch posten aber an dem kanns eigentlich nich liegen
greetz skelle