Avatar billede aslan Nybegynder
30. oktober 2002 - 20:02 Der er 5 kommentarer og
1 løsning

Flere linier i en JTable celle?

Jeg forsøger at få flere linier ind på mine JTable celler, men kan ikke få det til at virke. Kan nogen se hvorfor?

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.table.*;
import javax.swing.border.*;

public class GK_Styringspunkter extends JFrame
{
    Container panel = getContentPane();
   
    JTable tabel;
    DataModel model;
    JScrollPane scroll;
   
    GK_Styringspunkter()
    {
   
        model = new DataModel();
        tabel = new JTable(model);
        tabel.setRowHeight(0, 60);
        tabel.setDefaultRenderer(String.class, new MultiLineRenderer());
        scroll = new JScrollPane(tabel);
       
        panel.add("Center",scroll);
       

        setSize(1024,768);
        setVisible(true);
       
    }
    class DataModel extends AbstractTableModel
    {
        String hoved[];
        Object data[][];
       
        DataModel()
        {
            hoved = new String[]{"Processtrin","Kritisk styringspunkt","Risikofaktor","Styrende foranstaltning",
                                "Kritisk grænse","Overvågning","Afhjælpende foranstaltning","Ansvarlig"};
                               
            data = new Object[1][8];
           
            data[0][0] = "Fiskeafdelingen";
            data[0][1] = "Temperatur";
            data[0][2] = "Opformering \n af mikroorganismer";
            data[0][3] = "Temperatur kontrol \n ved modtagelse";
            data[0][4] = "Frisk fisk:2C \n Røget fisk: 5C";
           
                                                   
        }
        void opdater()
        {
           
        }
        public int getColumnCount()
        {
          return hoved.length;
        }     
        public int getRowCount()
        {
          return data.length;
        }
        public String getColumnName(int col)
        {
          return hoved[col];
        }       
        public Object getValueAt(int row, int col)
        {
          return data[row][col];
        }
        public boolean isCellEditable(int row, int col)
        {
          return true; 
        }
        public void setValueAt(Object value, int row, int col)
        {
          data[row][col] = value;
          fireTableCellUpdated(row,col);                   
        }       
    }
    class MultiLineRenderer extends JTextArea implements javax.swing.table.TableCellRenderer
    {
        public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column)
        {
          setLineWrap(true);
          setWrapStyleWord(true);
            setText((String)value);
            return this; 
        } 
             
    }     
    public static void main(String[] aslan)
    {
        new GK_Styringspunkter();
    }
}
Avatar billede di8leva Nybegynder
30. oktober 2002 - 20:26 #1
Jag ser inte att du överlagrat

getColumnClass(int columnIndex)

det måste du göra och specificera att det skall vara String.class.

annars tror java att det är Object.class och använder inte din renderer.
Avatar billede aslan Nybegynder
30. oktober 2002 - 23:26 #2
Jeg er ikke helt med på hva du mener ... du kunne jo tage min klasse og se om du kunne få det til at virke?
Avatar billede aslan Nybegynder
30. oktober 2002 - 23:36 #3
ahh   

TableColumn kolonne = tabel.getColumnModel().getColumn(2);
kolonne.setCellRenderer(new MultiLineRenderer());
Avatar billede di8leva Nybegynder
31. oktober 2002 - 07:48 #4
or...

public Class getColumnClass(int columnIndex) { return String.class; }
Avatar billede trp79 Nybegynder
13. oktober 2003 - 09:02 #5
Nu ved jeg godt at spørgsmålet er lukket... men hvor har du klassen MultiLineRenderer fra Aslan? Jeg får nemlig en not found fejl når jeg compiler.
Håber det er iorden at jeg spørger tiltrods for at det er så længe siden dette spørgsmål blev oprettet.

Mvh
Torben
Avatar billede trp79 Nybegynder
13. oktober 2003 - 09:02 #6
Sorry, du har den selvfølgelig i den klasse du har postet... pinligt pinligt...
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