14. februar 2001 - 14:31Der er
6 kommentarer og 1 løsning
JTable spørgsmål
Kan det lade sig gøre at lave en JTabel tabel med BÅDE JComboBox- og JCheckBox-componenter i SAMME kolonne?! Jeg ved godt hvordan man laver en tabel med samme type componenter i hele kolonnen, men hvordan foregår det, når der er flere forskellige? Et eksempel ville være herligt!!!
Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
Jeg har lige et spørgsmål til den første linie du skriver: \"Override getTableCellEditorComponent fra DefaultCellEditor, få den fra din tabel med getCellEditor().\"
Hvordan gør jeg det? Jeg har prøvet at lave en klasse som nedarver fra DefaultCellEditor, men det kunne jeg ikke få til at virke.
public class MyTableCellEditor extends DefaultCellEditor { // Indsæt her ovenstående def. af getTableCellEditorComponent }
Under initialisering af dit problem gør så følgende:
MyTableCellEditor tce = new MyTableCellEditor(); JTable table = new JTable(); ... table.setCellEditor(tce);
Når du så klikker på en celle i din tabel så bliver getTableCellEditorComponent() kaldt for at returnere editeringskomponenten som skal bruges for den pågældende celle.
Jeg kan ikke få lov til at nedarve fra DefaultCellEditor. Får følgende meddelelse: \"constructor DefaultCellEditor() not found in class javax.swing.DefaultCellEditor at line 893, column 9\" Hvordan fixer man lige den?
Jeg prøvede lige at indsætte følgende constructorer i klassen, og det så umiddelbart ud til at virke:
public class MyTableCellEditor extends DefaultCellEditor { public MyTableCellEditor(JComboBox comboBox) { super(comboBox); } public MyTableCellEditor(JTextField textField) { super(textField); } public MyTableCellEditor(JCheckBox checkBox) { super(checkBox); } }
Tusind tak for hjælpen. Du er en helt. Det betyder meget for mig at få det skidt til at virke. Der står meget på spil! Jeg ser lige om det spiller... hvis ikke, så håber jeg du stadig har tålmodighed til at give en hånd. Tak igen.
Ja, så er den gal igen! Følgende: \"MyTableCellEditor tce = new MyTableCellEditor();\" kan jeg ikke få til at virke, da jeg ikke kan oprette constructoren MyTableCellEditor(). Det er virkelig underligt. Har du selv prøvet om det virker? Jeg mister mit job hvis ikke jeg får det til at virke i dag.
Grunden til at du ikke kan oprette en MyTableCellEditor med new MyTableCellEditor() er at du ingen default konstruktør har. Indsæt følgende eller brug en af de andre konstruktører som du har lavet. Objektet som gives med til konstruktøren for DefaultCellEditor er editeringskomponenten.
public MyTableCellEditor() { super(new JTextField()); }
Tesktfeltet som der gives videre kan du få fat på i MyTableCellEditor ved super.editorComponent. Du kan med fordel bruge denne i din impl. af getTableCellEditorComponent() så der ikke oprettes nye instanser ved hver editering. Du kan f.eks. have en liste af dine forskellige editeringskomponenter. Se iøvrigt API\'et for DefaultCellEditor.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.