Impressum · Kontakt · Hilfe
Besucher online · Mitglieder



Portal > Foren > Java > Desktop-Applikationen und Grafik > Wert einer JTable-Zelle durch den CellEditor einer anderen Zelle ändern
Antwort
 
Themen-Optionen
Alt 03.05.2008, 23:15   Nach oben    #1
Corvin
Erfahrener Benutzer
 
Benutzerbild von Corvin
 
Registriert seit: 19.03.2005
Ort: S-H | Flensburg
Beiträge: 439
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  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 04.05.2008, 21:41   Nach oben    #2
pago
Projektleiter
 
Registriert seit: 30.11.2005
Ort: Bottrop
Beiträge: 1.084
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  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 04.05.2008, 22:16   Nach oben    #3
Corvin
Erfahrener Benutzer
 
Benutzerbild von Corvin
 
Registriert seit: 19.03.2005
Ort: S-H | Flensburg
Beiträge: 439
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  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen 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

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

BB-Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.
Trackbacks are An
Pingbacks are An
Refbacks are 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 +2. Es ist jetzt 01:16 Uhr.

Nach oben
Wir nutzen das Zend Framework, vBulletin (vBulletin v3.7.2, Copyright ©2000-2008, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.0.0) und vBSEO.

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