肯定不行啊,默认varchar的默认editor是textedit的
所以不可能显示多行的,所以你要显示的话
必须重新设置cell editor
 voidsetDefaultEditor(Class columnClass, TableCellEditor editor)           
\\Sets a default cell editor to be used if no editor has been set in a TableColumn. 
voidsetDefaultRenderer(Class columnClass, TableCellRenderer renderer)           
\\Sets a default cell renderer to be used if no renderer has been set in a

解决方案 »

  1.   

    别人的例子
    public class MultiLineCellRenderer extends JTextArea implements TableCellRenderer {  public MultiLineCellRenderer() {
        setLineWrap(true);
        setWrapStyleWord(true);
        setOpaque(true);
      }  public Component getTableCellRendererComponent(JTable table, Object value,
                   boolean isSelected, boolean hasFocus, int row, int column) {
        if (isSelected) {
          setForeground(table.getSelectionForeground());
          setBackground(table.getSelectionBackground());
        } else {
          setForeground(table.getForeground());
          setBackground(table.getBackground());
        }
        setFont(table.getFont());
        if (hasFocus) {
          setBorder( UIManager.getBorder("Table.focusCellHighlightBorder") );
          if (table.isCellEditable(row, column)) {
            setForeground( UIManager.getColor("Table.focusCellForeground") );
            setBackground( UIManager.getColor("Table.focusCellBackground") );
          }
        } else {
          setBorder(new EmptyBorder(1, 2, 1, 2));
        }
        setText((value == null) ? "" : value.toString());
        return this;
      }
    }
    table.setDefaultRenderer(String.class, new MultiLineCellRenderer());
      

  2.   

    但是程序在Linux下的Netscape浏览器下可以多行显示啊?
    在windows下就不行
      

  3.   

    写CellRenderer,如果支持编辑就还要写CellEditor
      

  4.   

    http://www2.gol.com/users/tame/swing/examples/SwingExamples.html
      

  5.   

    //一个绝对可以运行的示例:
    ////////////////////
    //javac Table.java
    //java Table
    ////////////////////
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import javax.swing.table.*;
    import javax.swing.event.*;public class Table extends JFrame {
      JTextArea txt = new JTextArea(4, 20);
      // The TableModel controls all the data:
      class DataModel extends AbstractTableModel {
        Object[][] data = {
          {"one", "two", "three", "four"},
          {"five", "six", "seven", "eight"},
          {"nine", "ten", "eleven", "twelve"},
        };
        // Prints data when table changes:
        class TML implements TableModelListener {
          public void tableChanged(TableModelEvent e){
            txt.setText(""); // Clear it
            for(int i = 0; i < data.length; i++) {
              for(int j = 0; j < data[0].length; j++)
                txt.append(data[i][j] + " ");
              txt.append("\n");
            }
          }
        }
        public DataModel() {
          addTableModelListener(new TML());
        }
        public int getColumnCount() { 
          return data[0].length; 
        }
        public int getRowCount() { 
          return data.length;
        }
        public Object getValueAt(int row, int col) {
          return data[row][col]; 
        }
        public void 
        setValueAt(Object val, int row, int col) {
          data[row][col] = val;
          // Indicate the change has happened:
          fireTableDataChanged();
        }
        public boolean 
        isCellEditable(int row, int col) { 
          return true; 
        }
      }
      public Table() {
        Container cp = getContentPane();
        JTable table = new JTable(new DataModel());
        cp.add(new JScrollPane(table));
        cp.add(BorderLayout.SOUTH, txt);
      }
      public static void main(String[] args) {
         JFrame fram=new Table();
         fram.addWindowListener(new WindowAdapter(){
           public void windowClosing(WindowEvent e){
             System.exit(0);
           }
         });
         fram.setSize(350,200);
         fram.setVisible(true);
      }
    } ///:~