OOP Aufgabenverteilung | MVC

Dit_

Bekanntes Mitglied
Hi

und wieder mal MVC... :oops:

Ich habe ein PopUp mit Funktionen

- Kopieren
- Einfügen
- Ausschneiden

mein Listener erkennt Action vom Typ "COPY".

jetzt muss ein String kopiert werden.
bis jetzt mache ich das so:

Java:
        @Override
        public void actionPerformed(ActionEvent e) {
            if (e.getActionCommand().equals(Label.COPY.toString())) {
                int row = _table.getSelectedRow();
                
                if (row >= 0) {
                    User user = _model.getObjectAt(row);
                    int col = _table.getSelectedColumn();
                    if (col == 0) {
                        StringUtil.copyToClipBoard(user.firstName());
                    } else {
                        StringUtil.copyToClipBoard(cvar.secondName());
                    }
                }
            }
        }

Ist es so in Ordnung? Da mein TableModel meine Tabelle (JTable) nicht direkt kennt, könnte ich auch
follgendes machen:

Java:
        @Override
        public void actionPerformed(ActionEvent e) {
            if (e.getActionCommand().equals(Label.COPY.toString())) {
                
                    int row = _table.getSelectedRow();
                    int col = _table.getSelectedColumn();
                    if (row >= 0) {
                            _model.copyValueAt(row, col);
                    }
            }
        }

Danke schon mal

:oops:
 

Michael...

Top Contributor
Hab die Frage/Problemstellung und was das mit MCV zu tun hat nicht verstanden.

Trotzdem der Hinweis: Wenn die Tabelle sortiert oder gefiltert werden kann muss
Code:
table.getValueAt(row, column)
nicht immer das selbe liefern wie
Code:
model.getValueAt(row, column)
. Deswegen bietet JTable Methoden wie convertColumnIndexToModel(int)... an.
 

Dit_

Bekanntes Mitglied
es geht darum wer soll den Code
Java:
StringUtil.copyToClipBoard(user.firstName());
ausführen?
Model hier TableModel oder Controller hier Listener.
 

Michael...

Top Contributor
So ganz habe ich es immer noch nicht verstanden.
Es soll doch mittels Kontextmenü und in Abhängigkeit der Selektion einer Tabelle etwas in die Zwischenablage kopiert werden!? Geht es darum wo dieses "Kopieren in die Zwischenablage" codiert werden soll? Ist ja eigentlich ein reines View Thema und hat ja garnichts mit dem Model zu tun. Daher: in der View oder im eventuell auch Controller (der View)
*** Alle Angaben ohne Gewähr, da ich mir nicht sicher bin, verstanden zu haben worum es hier geht ***
 

Neue Themen


Oben