Avatar billede clone Nybegynder
14. maj 2001 - 20:26 Der er 1 kommentar og
1 løsning

Non-selectable cell i JTable, hvordan?

Kan det lade sig gøre at lave en non-selectable celle i en JTable?
Jeg ved godt hvordan man laver en celle ikke-editérbar, men det er ikke det jeg ønsker. Det skal være en celle, som opfører sig præcis lige så anonymt som kollonne-headerne.
Mit mål er at lave en tabel der opfører sig lige som et regneark, dvs. jeg skal selv tilføje en row-header i venstre side, og den skal selvfølgelig opføre sig på samme måde som column headeren.
Avatar billede logical Nybegynder
14. maj 2001 - 22:28 #1
Jeg har lavet rowheader engang, men det er lidt tricky, idet jeg anvender 2 JTables med hver deres TableColumnModel, men fælles TableModel.

Her er et uddrag af koden:

TableModel tm = ..... (some TableModel to use)
TableColumnModel cm = new DefaultTableColumnModel() {
  boolean first = true;
  public void addColumn(TableColumn tc) {
    if (first) { first = false; return; }
    tc.setMinWidth(150);
    super.addColumn(tc);
  }
};

TablecolumnModel rowHeaderModel = new DefaultTableColumnModel() {
  boolean first = true;
  public void addColumn(TableColumn tc) {
    if (first) {
      tc.setMaxWidth(35);
      super.addColumn(tc);
      first = false;
    }
  }
};

JTable jt = new JTable(tm, cm);
JTable headerColumn = new TJable(tm, rowHeaderModel);
jt.createDefaultColumnsFromModel();
headerColumn.createDefaultColumnsFromModel();

jt.setSelectionModel(headerColumn.getSelectionModel());

headerColumn.setColumnSelectionAllowed(false);
headerColumn.setCellSelectionEnabled(false);

JViewport jv = new JViewport();
jv.setView(headerColumn);
jv.setPreferredSize(headerColumn.getMaximumSize());

jt.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
headerColumn.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);

JScrollPane jsp = new JScrollPane(jt);
jsp.setRowHeader(jv);

--
Og det skulle være det centrale i det.
Avatar billede clone Nybegynder
15. maj 2001 - 13:01 #2
Det lader jo til at virke glimrende. Tak for hjælpen.
Nu bliver mit næste projekt så bare at få række-headeren til at ligne den for kollonnerne, men det må jeg så lige eksperimentere lidt med.
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

IT-JOB