Hallo,
ich habe mal wieder ein kleines Problemchen:
Von einem JFrame aus, wir ein JDialog geöffnet.
Der Konstruktor beinhaltet auch einen Vektor mit String[], welche dann im neuen JDialog in einer Tabelle angezeigt werden.
Nun habe ich aber das Gefühl, dass wenn ich den JDialog schließe (mit einem dispose() ), der zuvor initialisierte Vektor (oder besser gesagt das JTable) im JDialog weiterhin existiert...?
Das äußert sich so, dass wenn ich den JDialog mit einem anderen Vektor öffne, der alte Vektor (also Inhalt) immer noch angezeigt wird.
D.h., z.B.: Wenn der Vektor sechs Elemente beinhaltet, dann werden zuerst auch die sechs Elemente ordnungsgemäß dargestellt. Schließe ich den JDialog, und rufe ihn danach wieder auf (z.B. wieder mit einem Vektor mit sechs Elementen), dann wird im JTable zuerst der "alte" Vektor und hintendran gereiht der neue Vektor ausgegeben.
(Die Vektorgröße ist bei jedem JDialogaufruf sechs!)
Habt ihr da eine Idee? Muss ich mein jTabel manuell löschen, wenn ich den JDialog schließe?..?
Hier mal der Quellcode:
ich habe mal wieder ein kleines Problemchen:
Von einem JFrame aus, wir ein JDialog geöffnet.
Der Konstruktor beinhaltet auch einen Vektor mit String[], welche dann im neuen JDialog in einer Tabelle angezeigt werden.
Nun habe ich aber das Gefühl, dass wenn ich den JDialog schließe (mit einem dispose() ), der zuvor initialisierte Vektor (oder besser gesagt das JTable) im JDialog weiterhin existiert...?
Das äußert sich so, dass wenn ich den JDialog mit einem anderen Vektor öffne, der alte Vektor (also Inhalt) immer noch angezeigt wird.
D.h., z.B.: Wenn der Vektor sechs Elemente beinhaltet, dann werden zuerst auch die sechs Elemente ordnungsgemäß dargestellt. Schließe ich den JDialog, und rufe ihn danach wieder auf (z.B. wieder mit einem Vektor mit sechs Elementen), dann wird im JTable zuerst der "alte" Vektor und hintendran gereiht der neue Vektor ausgegeben.
(Die Vektorgröße ist bei jedem JDialogaufruf sechs!)
Habt ihr da eine Idee? Muss ich mein jTabel manuell löschen, wenn ich den JDialog schließe?..?
Hier mal der Quellcode:
Code:
package gui;
import com.cloudgarden.layout.AnchorConstraint;
import com.cloudgarden.layout.AnchorLayout;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.Vector;
import javax.swing.JButton;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
public class ShowResult extends javax.swing.JDialog {
private JScrollPane jScrollPane1;
private Vector resultOfAnalysis;
private JTable tableColumns;
private String windowDescription;
private JButton closeShowResults;
public ShowResult(InsertQueries frame,Vector resultOfAnalysis, String windowDescription) {
super(frame);
this.resultOfAnalysis=resultOfAnalysis;
this.windowDescription=windowDescription;
initGUI();
}
private void initGUI() {
try {
AnchorLayout thisLayout = new AnchorLayout();
getContentPane().setLayout(thisLayout);
this.setTitle("Ergebnis der Abfrage");
{
jScrollPane1 = new JScrollPane();
getContentPane().add(jScrollPane1, new AnchorConstraint(10, 980, 850, 20, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL));
{
tableColumns = getTableColumns();
jScrollPane1.setViewportView(tableColumns);
}
}
{
closeShowResults = new JButton();
getContentPane().add(closeShowResults, new AnchorConstraint(910, 550, 960, 450, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL));
closeShowResults.setText("Ok");
closeShowResults.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent evt) {
closeShowResultsMouseClicked(evt);
}
});
}
setSize(1200, 800);
} catch (Exception e) {
e.printStackTrace();
}
}
private JTable getTableColumns() {
int numberOfRows = resultOfAnalysis.size();
int numberOfColumns = ((String[]) resultOfAnalysis.firstElement()).length;
DefaultTableModel tableColumnsModel =
new DefaultTableModel(
new String[numberOfRows][numberOfColumns] ,
(String[]) resultOfAnalysis.firstElement())
{
public boolean isCellEditable(int row, int col)
{
return false;
}
};
tableColumns = new JTable();
jScrollPane1.setViewportView(tableColumns);
tableColumns.setModel(tableColumnsModel);
resultOfAnalysis.removeElementAt(0);
for (int i=0;i<numberOfRows-1;i++)
{
String[] helpMeArray = (String[])resultOfAnalysis.elementAt(i);
for (int j=0;j<numberOfColumns;j++)
{
tableColumns.setValueAt(helpMeArray[j],i,j);
}
}
return tableColumns;
}
private void closeShowResultsMouseClicked(MouseEvent evt) {
this.dispose();
}
}