Portal > Foren > Java > Desktop-Applikationen und Grafik > Wert einer JTable-Zelle durch den CellEditor einer anderen Zelle ändern
Antwort
 
Themen-Optionen Thema durchsuchen
Alt 03.05.2008, 23:15 Nach oben    #1
Corvin Gröning
 
Benutzerbild von Corvin
 
Registriert seit: 19.03.2005
Ort: S-H | Flensburg
Beiträge: 459
Standard Wert einer JTable-Zelle durch den CellEditor einer anderen Zelle ändern

Ich habe eine Tabelle:


Den beiden Spalten mit dem "..."-Button habe ich einen CellRenderer und CellEditor hinzugefügt:
Code:
// Create table
folderTableModel = new FolderTableModel(rowData, columnNames);
folderTable = new JTable(folderTableModel);

// Install cell renderer and cell editor for column 1 and 3 (-> file chooser)
TableColumn column1 = folderTable.getColumnModel().getColumn(1);
column1.setCellRenderer(new FolderTableCellRenderer());
column1.setCellEditor(new FolderTableCellEditor());
        
TableColumn column2 = folderTable.getColumnModel().getColumn(3);
column2.setCellRenderer(new FolderTableCellRenderer());
column2.setCellEditor(new FolderTableCellEditor());
Durch den CellRenderer entsteht der Button:
Code:
public class FolderTableCellRenderer extends JButton implements TableCellRenderer {
    public Component getTableCellRendererComponent(JTable table, Object value,
            boolean isSelected, boolean hasFocus, int rowIndex, int vColIndex) {

        // Set the button text to the value of the cell
        setText(value.toString());

        // Set tool tip
        setToolTipText("Open File Chooser");

        return this;
    }  
}
Der CellEditor sorgt dafür, dass ein FileChooser beim Klick auf den Button erscheint:
Code:
public class FolderTableCellEditor extends AbstractCellEditor implements TableCellEditor, ActionListener{
    JButton button;
    String path;
       
    public FolderTableCellEditor() {
        button = new JButton();
        button.addActionListener(this);
    }

    public void actionPerformed(ActionEvent e) {
            // Open file chooser
            JFileChooser fc = new JFileChooser();
            int returnVal = fc.showOpenDialog(button);

            if (returnVal == JFileChooser.APPROVE_OPTION) {
                File file = fc.getSelectedFile();
                path = file.getPath();
                System.out.println(path);
            } else {
                //
            }
   
            fireEditingStopped();
    }

    public Object getCellEditorValue() {
        return "...";
    }

    public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) {
        return button;
    }

}
Der ausgewählte Pfad wird dann in der Console ausgegeben. Dieser soll aber nun als Wert für die Zelle gesetzt werden, die sich neben dem angeklickten Button befindet. Wie kann ich das am besten lösen?
__________________
Corvin ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 04.05.2008, 21:41 Nach oben    #2
Projektleiter
 
Registriert seit: 30.11.2005
Ort: Bottrop
Beiträge: 1.135
Standard

Hmm... ne bessere Lösung, als pro Zeile/Spalte einen Button, fällt mir ehrlich gesagt nicht ein.
__________________
Patrick Gotthardts Weblog.
pago ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 04.05.2008, 22:16 Nach oben    #3
Corvin Gröning
 
Benutzerbild von Corvin
 
Registriert seit: 19.03.2005
Ort: S-H | Flensburg
Beiträge: 459
Standard

Danke für die Antwort. Ich habe zwar immernoch nicht verstanden, was genau du meinst, aber mir ist durch das Nachdenken darüber eine Idee gekommen, die ich gleich umgesetzt habe.
Ich habe jetzt unter der Tabelle einen Button. Wenn man darauf klickt öffnet sich der FileChooser und nach der Verzeichnisauswahl wird der Pfad in die zuvor ausgewählte Zelle geschrieben.
__________________
Corvin ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
PingBacks sind an
RefBacks sind aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
JTable reagiert nicht auf Menueklick tommyboy Desktop-Applikationen und Grafik 8 20.08.2006 23:38
Modifier haben einen Wert, obwohl keine gedrückt sind materthron Desktop-Applikationen und Grafik 3 06.11.2005 16:28
JTable Zeile, Spalte, Zelle Hintergrundfarbe ändern Baba84 Desktop-Applikationen und Grafik 3 08.08.2005 18:44
GESUCHT:simples beispiel zum thema resultset, tablemodel => in einer JTable ausgeben! bamboocha Desktop-Applikationen und Grafik 2 06.06.2005 21:34


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:40 Uhr.


Powered by vBulletin® Version 3.7.4 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0

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