Hallo,
ich habe ein Tool geschrieben, dass Dateien eines Ordners nach regulären Ausdrücken sucht bzw. die Dateien nach den Ausdrücken durchsucht. Funktioniert soweit auch alles wie gewollt. Ich habe jedoch ein kleines Problem mit der GUI. Wenn ich die Suche starte, läuft der Prozess wie gewünscht und die Dateien werden gefunden, jedoch mit jedem Suchtreffer, soll die Tabelle aktualisiert werden und ein JLabel soll per counter die Anzahl der gefundenen Dateien anzeigen. Hierzu verwende ich die folgenden Aufrufe:
labelStatus.setText("Anzahl Suchtreffer: " + fileCounter);
dtm.fireTableStructureChanged();
Mein Problem ist, dass die Aufrufe erst greifen nachdem alle Dateien gefunden wurden. Wo liegt die Ursache? Der Aufruf liegt innerhalb der Suchschleife, jedoch wird die Gui nicht aktualisiert. Ein jTable.repain() oder JLabel.repaint() hilft mir auch nicht weiter. Wo liegt hier die Ursache?
Und hier noch der Code für meine GUI:
ich habe ein Tool geschrieben, dass Dateien eines Ordners nach regulären Ausdrücken sucht bzw. die Dateien nach den Ausdrücken durchsucht. Funktioniert soweit auch alles wie gewollt. Ich habe jedoch ein kleines Problem mit der GUI. Wenn ich die Suche starte, läuft der Prozess wie gewünscht und die Dateien werden gefunden, jedoch mit jedem Suchtreffer, soll die Tabelle aktualisiert werden und ein JLabel soll per counter die Anzahl der gefundenen Dateien anzeigen. Hierzu verwende ich die folgenden Aufrufe:
labelStatus.setText("Anzahl Suchtreffer: " + fileCounter);
dtm.fireTableStructureChanged();
Mein Problem ist, dass die Aufrufe erst greifen nachdem alle Dateien gefunden wurden. Wo liegt die Ursache? Der Aufruf liegt innerhalb der Suchschleife, jedoch wird die Gui nicht aktualisiert. Ein jTable.repain() oder JLabel.repaint() hilft mir auch nicht weiter. Wo liegt hier die Ursache?
PHP:
public void searchFiles()
{
// Liest den Suchbegriff aus dem Texteingabefeld
String searchString = ".*" + txtRegularSearchExpression.getText() + ".*";
// Zum Sammeln der Verzeichnisse
final Stack<File> dirs = new Stack<File> ();
// Liest den Dateipfad zum durchsuchen aus dem Textfeld
final File startdir = new File(txtSourceFolder.getText());
// Pattern zum Suchen
final Pattern p = Pattern.compile(searchString, Pattern.CASE_INSENSITIVE);
// prüft ob der Benutzer einen Ordner zum Durchsuchen angegeben hat
if (txtSourceFolder.getText().equals("") == false)
{
// leert den Inhalt des Vectors damit alte Suchtreffer
// in Tabelle nicht angezeigt werden
dataVector.clear();
// aktualisiert die Anzeige in der Tabelle
dtm.fireTableStructureChanged();
// Ermittelt rekursiv die Ordner und Dateipfade. Dateien die auf die
// Pattern passen werden in den Vector FileList geschrieben. Zusätzlich
// werden Informationen wie Dateiendung, Dateiname, Pfad in den Vector
// geschrieben. Dieser wird wiederum in den Vector "dataVector" geschrieben.
// Der dataVector beinhaltet zum Schluss alle Dateien die in der
// Tabelle angezeigt werden.
if (startdir.isDirectory())
{
dirs.push(startdir);
}
while (dirs.size() > 0)
{
for (File file : dirs.pop().listFiles())
{
if (file.isDirectory())
{
dirs.push(file);
}
else if (p.matcher(file.getName()).matches())
{
// Ermittelt die Infodaten die in den Tabellenspalten
// angezeigt werden sollen und schreibt diese in einen Vector
fileCounter++;
labelStatus.setText("Anzahl Suchtreffer: " + fileCounter);
dtm.fireTableStructureChanged();
contentTable.repaint();
labelStatus.repaint();
setColumnWidth();
String filePath = file.getAbsolutePath();
Vector fileList = new Vector();
fileList.add(fileCounter);
fileList.add(getFileName(filePath));
fileList.add(getFileType(file));
fileList.add(filePath);
// Schreibt den Vector in neuen Vector der alle Informationen
// beinhaltet die in der Tabelle angezeigt werden sollen.
dataVector.add(fileList);
}
}
}
}
// Fehlermeldung, wenn kein Verzeichnis ausgewählt wurde,
// das durchsucht werden soll
else
{
int result = JOptionPane.showConfirmDialog(null,
"Bitte geben Sie den Quellpfad im Eingabefeld '"
+ labelSourceFolder.getText() + "' ein.", "Eingabefehler",
JOptionPane.CLOSED_OPTION, JOptionPane.ERROR_MESSAGE);
}
} // Ende der Methode
Und hier noch der Code für meine GUI:
PHP:
/**
* Main Methode startet das Programm
*/
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
GMainFileFinder inst = new GMainFileFinder();
inst.setLocationRelativeTo(null);
inst.setVisible(true);
}
});
}
//*****************************************************************************************************************************************
// Konstruktor(en)
//*****************************************************************************************************************************************
public GMainFileFinder()
{
super();
initGUI();
}
//*****************************************************************************************************************************************
// Methode(n)
//*****************************************************************************************************************************************
private void initGUI()
{
try
{
BorderLayout thisLayout = new BorderLayout();
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
getContentPane().setLayout(thisLayout);
this.setTitle(software + " vs. " + version);
this.setIconImage(new ImageIcon(getClass().getClassLoader().getResource("Icons/ProgramIcon128x128.png")).getImage());
this.setPreferredSize(new java.awt.Dimension(1024, 786));
this.setResizable(false);
{
headerPanel = new JPanel();
getContentPane().add(headerPanel, BorderLayout.NORTH);
AnchorLayout headerPanelLayout = new AnchorLayout();
headerPanel.setLayout(headerPanelLayout);
headerPanel.setPreferredSize(new java.awt.Dimension(1016, 208));
// headerPanel.setBorder(BorderFactory.createTitledBorder(""));
{
buttonDelete = new JButton();
headerPanel.add(buttonDelete, new AnchorConstraint(699, 799, 862, 689, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL));
buttonDelete.setText("Löschen");
buttonDelete.setIcon(new ImageIcon(getClass().getClassLoader().getResource("Icons/delete22x22.png")));
buttonDelete.setHorizontalTextPosition(SwingConstants.RIGHT);
buttonDelete.setToolTipText("Löscht rekursiv Dateien innerhalb des Quellordners");
buttonDelete.setPreferredSize(new java.awt.Dimension(112, 34));
buttonDelete.setEnabled(false);
buttonDelete.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
System.out.println("buttonDeleteAll.actionPerformed, event="+evt);
int[] selection = contentTable.getSelectedRows();
if (selection.length == 0)
{
int result = JOptionPane.showConfirmDialog(null, "Bitte wählen Sie die Dateien, dies Sie löschen möchten in der Tabelle aus.", "Eingabefehler",
JOptionPane.CLOSED_OPTION, JOptionPane.ERROR_MESSAGE);
}
else
{
labelCopiedFiles.setText("");;
Vector selectedColumns = new Vector();
getSelectedFiles(selectedColumns);
deleteAllFiles(selectedColumns);
searchFiles();
}
}
});
buttonDelete.addKeyListener(new KeyAdapter() {
public void keyReleased(KeyEvent evt) {
int key = evt.getKeyCode();
if (key == KeyEvent.VK_ENTER)
{
System.out.println("buttonDeleteAll.actionPerformed, event="+evt);
int[] selection = contentTable.getSelectedRows();
if (selection.length == 0)
{
labelCopiedFiles.setText("");
searchFiles();
deleteAllFiles(dataVector);
}
else
{
labelCopiedFiles.setText("");;
Vector selectedColumns = new Vector();
getSelectedFiles(selectedColumns);
createFolderStructure(selectedColumns);
deleteAllFiles(selectedColumns);
searchFiles();
}
}
}
});
}
{
txtSourceFolder = new JTextField();
headerPanel.add(txtSourceFolder, new AnchorConstraint(271, 908, 406, 14, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL));
txtSourceFolder.setBackground(new java.awt.Color(255,255,255));
txtSourceFolder.setPreferredSize(new java.awt.Dimension(909, 28));
}
{
labelSourceFolder = new JLabel();
headerPanel.add(labelSourceFolder, new AnchorConstraint(199, 154, 276, 14, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL));
labelSourceFolder.setText("Quellordner");
labelSourceFolder.setPreferredSize(new java.awt.Dimension(142, 16));
}
{
buttonChooseSourceFolder = new JButton();
headerPanel.add(buttonChooseSourceFolder, new AnchorConstraint(252, 950, 415, 911, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL));
buttonChooseSourceFolder.setIcon(new ImageIcon(getClass().getClassLoader().getResource("Icons/OpenFolder22x22.png")));
buttonChooseSourceFolder.setToolTipText("Öffnet ein Fenster zur Auswahl des Verzeichnisses");
buttonChooseSourceFolder.setPreferredSize(new java.awt.Dimension(39, 34));
buttonChooseSourceFolder.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
System.out.println("buttonChooseSourceFolder.actionPerformed, event="+evt);
chooseSourceFolder();
}
});
}
{
txtRegularSearchExpression = new JTextField();
headerPanel.add(txtRegularSearchExpression, new AnchorConstraint(540, 908, 675, 14, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL));
txtRegularSearchExpression.setPreferredSize(new java.awt.Dimension(909, 28));
}
{
labelRegularExpression = new JLabel();
headerPanel.add(labelRegularExpression, new AnchorConstraint(463, 165, 540, 14, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL));
labelRegularExpression.setText("Regulärer Suchbegriff");
labelRegularExpression.setPreferredSize(new java.awt.Dimension(154, 16));
}
{
labelSearchHeader = new JLabel();
headerPanel.add(labelSearchHeader, new AnchorConstraint(64, 132, 141, 14, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL));
labelSearchHeader.setText("Suche");
labelSearchHeader.setFont(new java.awt.Font("SansSerif",1,12));
labelSearchHeader.setPreferredSize(new java.awt.Dimension(120, 16));
}
{
sepSearchHeader = new JSeparator();
headerPanel.add(sepSearchHeader, new AnchorConstraint(137, 985, 185, 14, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL));
sepSearchHeader.setPreferredSize(new java.awt.Dimension(987, 10));
}
{
buttonClearSourceFolder = new JButton();
headerPanel.add(buttonClearSourceFolder, new AnchorConstraint(252, 986, 415, 950, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL));
buttonClearSourceFolder.setIcon(new ImageIcon(getClass().getClassLoader().getResource("Icons/Clear22x22.png")));
buttonClearSourceFolder.setToolTipText("Entfernt den Quellordner aus dem Eingabefeld");
buttonClearSourceFolder.setPreferredSize(new java.awt.Dimension(37, 34));
buttonClearSourceFolder.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
System.out.println("buttonClearSourceFolder.actionPerformed, event="+evt);
clearSourceFolder();
buttonSelect.setEnabled(false);
buttonResetSearch.setEnabled(false);
}
});
}
{
buttonSearchFile = new JButton();
headerPanel.add(buttonSearchFile, new AnchorConstraint(699, 110, 862, 15, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL));
buttonSearchFile.setText("Suchen");
buttonSearchFile.setIcon(new ImageIcon(getClass().getClassLoader().getResource("Icons/searchFiles22x22.png")));
buttonSearchFile.setHorizontalTextPosition(SwingConstants.RIGHT);
buttonSearchFile.setToolTipText("Sucht rekursiv alle Dateien innerhalb des Quellordners");
buttonSearchFile.setPreferredSize(new java.awt.Dimension(97, 34));
buttonSearchFile.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
System.out.println("buttonSearchFile.actionPerformed, event="+evt);
labelCopiedFiles.setText("");;
searchFiles();
buttonSelect.setEnabled(true);
buttonResetSearch.setEnabled(true);
}
});
buttonSearchFile.addKeyListener(new KeyAdapter() {
public void keyReleased(KeyEvent evt) {
int key = evt.getKeyCode();
if (key == KeyEvent.VK_ENTER)
{
System.out.println("buttonSearchFile.actionPerformed, event="+evt);
labelCopiedFiles.setText("");;
searchFiles();
buttonSelect.setEnabled(true);
buttonResetSearch.setEnabled(true);
}
}
});
}
{
buttonCopyFiles = new JButton();
headerPanel.add(buttonCopyFiles, new AnchorConstraint(699, 689, 862, 541, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL));
buttonCopyFiles.setText("Duplizieren nach");
buttonCopyFiles.setIcon(new ImageIcon(getClass().getClassLoader().getResource("Icons/duplicate22x22.png")));
buttonCopyFiles.setHorizontalTextPosition(SwingConstants.RIGHT);
buttonCopyFiles.setEnabled(false);
buttonCopyFiles.setToolTipText("Dupliziert Dateien inkluse Ordnerstruktur in ein frei Wählbares Verzeichnis");
buttonCopyFiles.setPreferredSize(new java.awt.Dimension(150, 34));
buttonCopyFiles.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
System.out.println("buttonCopyFiles.actionPerformed, event="+evt);
int[] selection = contentTable.getSelectedRows();
if (selection.length == 0)
{
int result = JOptionPane.showConfirmDialog(null, "Bitte wählen Sie die Dateien, dies Sie kopieren möchten in der Tabelle aus.", "Eingabefehler",
JOptionPane.CLOSED_OPTION, JOptionPane.ERROR_MESSAGE);
}
else
{
Vector selectedColumns = new Vector();
getSelectedFiles(selectedColumns);
labelCopiedFiles.setText("");;
// Öffnet den File Selector zur Auswahl des Zielverzeichnisses
GDestinationSelector destination = new GDestinationSelector(inst, "copySelectedFiles", selectedColumns);
destination.setVisible(true);
destination.setLocationRelativeTo(null);
}
}
});
buttonCopyFiles.addKeyListener(new KeyAdapter() {
public void keyReleased(KeyEvent evt) {
int key = evt.getKeyCode();
if (key == KeyEvent.VK_ENTER)
{
System.out.println("buttonCopyFiles.actionPerformed, event="+evt);
int[] selection = contentTable.getSelectedRows();
if (selection.length == 0)
{
int result = JOptionPane.showConfirmDialog(null, "Bitte wählen Sie die Dateien, dies Sie kopieren möchten in der Tabelle aus.", "Eingabefehler",
JOptionPane.CLOSED_OPTION, JOptionPane.ERROR_MESSAGE);
}
else
{
Vector selectedColumns = new Vector();
getSelectedFiles(selectedColumns);
labelCopiedFiles.setText("");;
// Öffnet den File Selector zur Auswahl des Zielverzeichnisses
GDestinationSelector destination = new GDestinationSelector(inst, "copySelectedFiles", selectedColumns);
destination.setVisible(true);
destination.setLocationRelativeTo(null);
}
}
}
});
}
{
buttonResetSearch = new JButton();
headerPanel.add(buttonResetSearch, new AnchorConstraint(699, 371, 862, 238, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL));
buttonResetSearch.setText("Zurücksetzen");
buttonResetSearch.setIcon(new ImageIcon(getClass().getClassLoader().getResource("Icons/Clear22x22.png")));
buttonResetSearch.setHorizontalTextPosition(SwingConstants.RIGHT);
buttonResetSearch.setToolTipText("Setzt das angezeigte Suchergebnis in der Tabelle zurück");
buttonResetSearch.setEnabled(false);
buttonResetSearch.setPreferredSize(new java.awt.Dimension(135, 34));
buttonResetSearch.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
System.out.println("buttonReseSearch.actionPerformed, event="+evt);
dataVector.clear();
dtm.fireTableStructureChanged();
buttonSelect.setEnabled(false);
buttonResetSearch.setEnabled(false);
}
});
buttonResetSearch.addKeyListener(new KeyAdapter() {
public void keyReleased(KeyEvent evt) {
int key = evt.getKeyCode();
if (key == KeyEvent.VK_ENTER)
{
System.out.println("buttonReseSearch.actionPerformed, event="+evt);
dataVector.clear();
dtm.fireTableStructureChanged();
buttonSelect.setEnabled(false);
buttonResetSearch.setEnabled(false);
}
}
});
}
{
buttonSetDefault = new JButton();
headerPanel.add(buttonSetDefault, new AnchorConstraint(521, 950, 685, 911, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL));
buttonSetDefault.setIcon(new ImageIcon(getClass().getClassLoader().getResource("Icons/getDefault22x22.png")));
buttonSetDefault.setToolTipText("Lädt den gespeicherten Suchbegriff");
buttonSetDefault.setPreferredSize(new java.awt.Dimension(39, 34));
buttonSetDefault.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
System.out.println("buttonSetDefault.actionPerformed, event="+evt);
CProperties prop = new CProperties();
prop.loadProperties();
txtRegularSearchExpression.setText(CProperties.favSearchTerm);
}
});
}
{
buttonSaveDefault = new JButton();
headerPanel.add(buttonSaveDefault, new AnchorConstraint(521, 988, 685, 950, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL));
buttonSaveDefault.setIcon(new ImageIcon(getClass().getClassLoader().getResource("Icons/saveDefault.png")));
buttonSaveDefault.setToolTipText("Speichert den aktuellen Suchbegriff");
buttonSaveDefault.setPreferredSize(new java.awt.Dimension(39, 34));
buttonSaveDefault.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
System.out.println("buttonSaveDefault.actionPerformed, event="+evt);
CProperties prop = new CProperties();
prop.loadProperties();
CProperties.favSearchTerm = txtRegularSearchExpression.getText();
prop.updateProperties();
}
});
}
{
buttonSearchInFile = new JButton();
headerPanel.add(buttonSearchInFile, new AnchorConstraint(699, 240, 862, 111, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL));
buttonSearchInFile.setText("Durchsuchen");
buttonSearchInFile.setHorizontalTextPosition(SwingConstants.RIGHT);
buttonSearchInFile.setIcon(new ImageIcon(getClass().getClassLoader().getResource("Icons/searchInFile22x22.png")));
buttonSearchInFile.setToolTipText("Durchsucht rekursiv alle Dateien innerhalb des Quellordners");
buttonSearchInFile.setPreferredSize(new java.awt.Dimension(131, 34));
buttonSearchInFile.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
System.out.println("jButton1.actionPerformed, event="+evt);
labelCopiedFiles.setText("");;
searchInFiles();
buttonSelect.setEnabled(true);
buttonResetSearch.setEnabled(true);
}
});
buttonSearchInFile.addKeyListener(new KeyAdapter() {
public void keyReleased(KeyEvent evt) {
int key = evt.getKeyCode();
if (key == KeyEvent.VK_ENTER)
{
System.out.println("jButton1.actionPerformed, event="+evt);
labelCopiedFiles.setText("");;
searchInFiles();
buttonSelect.setEnabled(true);
buttonResetSearch.setEnabled(true);
}
}
});
}
{
buttonSelect = new JToggleButton();
headerPanel.add(buttonSelect, new AnchorConstraint(145, 464, 29, 376, AnchorConstraint.ANCHOR_ABS, AnchorConstraint.ANCHOR_ABS, AnchorConstraint.ANCHOR_ABS, AnchorConstraint.ANCHOR_ABS));
buttonSelect.setIcon(new ImageIcon(getClass().getClassLoader().getResource("Icons/selectAll22x22.png")));
buttonSelect.setPreferredSize(new java.awt.Dimension(176, 34));
buttonSelect.setText("Alle An-.bzw.Abwählen");
buttonSelect.setEnabled(false);
buttonSelect.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
System.out.println("buttonSelect.actionPerformed, event="+evt);
if (buttonSelect.isSelected() == true)
{
contentTable.selectAll();
buttonDelete.setEnabled(true);
buttonCopyFiles.setEnabled(true);
}
else
{
contentTable.clearSelection();
buttonDelete.setEnabled(false);
buttonCopyFiles.setEnabled(false);
}
}
});
buttonSelect.addKeyListener(new KeyAdapter() {
public void keyReleased(KeyEvent evt) {
int key = evt.getKeyCode();
if (key == KeyEvent.VK_ENTER)
{
if (buttonSelect.isSelected() == true)
{
contentTable.selectAll();
buttonDelete.setEnabled(true);
buttonCopyFiles.setEnabled(true);
}
else
{
contentTable.clearSelection();
buttonDelete.setEnabled(false);
buttonCopyFiles.setEnabled(false);
}
}
}
});
}
}
{
contentPanel = new JPanel();
getContentPane().add(contentPanel, BorderLayout.CENTER);
BorderLayout contentPanelLayout = new BorderLayout();
contentPanel.setLayout(contentPanelLayout);
contentPanel.setPreferredSize(new java.awt.Dimension(1016, 480));
contentPanel.setSize(800, 580);
{
jScrollPane1 = new JScrollPane();
contentPanel.add(jScrollPane1, BorderLayout.CENTER);
jScrollPane1.setPreferredSize(new java.awt.Dimension(1016, 465));
jScrollPane1.setBorder(BorderFactory.createTitledBorder(""));
jScrollPane1.setSize(800, 526);
{
// Erstellung der Vektoren für die Spaltenüberschrift und die Datensätze
dataVector = new Vector();
columnsVector = new Vector();
// Legt die Spaltenüberschriften fest
setColumnNames();
contentTable = new JTable()
{
// Overwriting the method "isCellEditable" makes the Table not editable
public boolean isCellEditable(int row, int column)
{
return false;
}
};
jScrollPane1.setViewportView(contentTable);
contentTable.setAutoCreateRowSorter(true);
// Assigning the data to a new defaultTableModel (including a sorter class)
dtm = new DefaultTableModel( dataVector, columnsVector );
// Assigns the DefaultTableModel to the table "contentTable"
contentTable.setModel(dtm);
contentTable.addMouseListener(new MouseAdapter(){
public void mouseClicked(MouseEvent e)
{
startTableInteraktion(e);
}} ); // End of Mouse Listener
// Legt die Spaltenbreite fest
setColumnWidth();
}
}
}
{
menuBar = new JMenuBar();
setJMenuBar(menuBar);
{
menuItemFile = new JMenu();
menuBar.add(menuItemFile);
menuItemFile.setText("Datei");
{
submenuClose = new JMenuItem();
menuItemFile.add(submenuClose);
submenuClose.setText("Schließen");
submenuClose.setIcon(new ImageIcon(getClass().getClassLoader().getResource("Icons/close16x16.png")));
submenuClose.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
System.out.println("submenuClose.actionPerformed, event="+evt);
System.exit(0);
}
});
}
}
{
menuItemHelp = new JMenu();
menuBar.add(menuItemHelp);
menuItemHelp.setText("Hilfe");
{
submenuItemSupport = new JMenuItem();
menuItemHelp.add(submenuItemSupport);
submenuItemSupport.setText("Kontakt");
submenuItemSupport.setIcon(new ImageIcon(getClass().getClassLoader().getResource("Icons/contact16x16.png")));
submenuItemSupport.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
System.out.println("submenuItemSupport.actionPerformed, event="+evt);
openSupportDialog();
}
});
}
}
}
{
infoPanel = new JPanel();
AnchorLayout infoPanelLayout1 = new AnchorLayout();
infoPanel.setLayout(infoPanelLayout1);
GridBagLayout infoPanelLayout = new GridBagLayout();
getContentPane().add(infoPanel, BorderLayout.SOUTH);
infoPanel.setPreferredSize(new java.awt.Dimension(1016, 46));
infoPanel.setBorder(BorderFactory.createTitledBorder(""));
{
labelCopiedFiles = new JLabel();
infoPanel.add(labelCopiedFiles, new AnchorConstraint(293, 575, 706, 406, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL));
labelCopiedFiles.setPreferredSize(new java.awt.Dimension(172, 19));
labelCopiedFiles.setFont(new java.awt.Font("SansSerif",1,12));
}
}
pack();
this.setSize(1024, 786);
}
catch (Exception e)
{
e.printStackTrace();
}
} // Ende der Methode
Zuletzt bearbeitet: