不能用JTABLE,要求必须用JList,是客户要求的.

解决方案 »

  1.   

    我说过了客户不让我们用JTable
      

  2.   

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

  3.   

    JList只能一列显示,不像VC的ListView,你们的客户只做win下的程序吧这个时候你不得不用JTable
    JTable可以做到同样的效果
    而且是一个很明显要用Table实现的需求你们的客户还会指导你们做项目吗?
    管得太小了吧简值是太霸道了。别让他在一旁指手划脚,一脚把他
      

  4.   

    其实实在不能用JTable的话,也可以实现,不过工作量就另,JList可以编辑吗??我比较孤陋寡闻的说
      

  5.   

    其实估计用户不想要那个表格线而已
    用个JTable,把界面做成和JList一样就是了,客户还看你代码啊,那让他自己写好了
      

  6.   

    谢谢大家帮忙!
    我也用JTable做了一个,但是明显就能看出来是JTable.因为当每一行被选中的时候,同一行的每个格之间有白线我怎么去掉他呀?我尝试了很多方法,都失败了.大家帮我看看,谢谢!
    package untitled122;/* (swing1.1.1beta2) */
    //package jp.gr.java_conf.tame.swing.examples;import java.awt.*;
    import java.awt.event.*;
    import java.awt.image.*;
    import javax.swing.*;
    import javax.swing.table.*;
    import com.borland.jbcl.layout.*;
    /**
     * @version 1.0 06/19/99
     */
    public class ControlList  extends JFrame {
      JTable table;
      protected ListSelectionModel selectionModel;
      public ControlList() {
        super("AnimatedIconTable Example");
        try {
          jbInit();
        }
        catch (Exception e) {
          e.printStackTrace();
        }  }
      public void CallControlList(Object[][] object) {
        ControlModel model = new ControlModel();
        model.setObjectData(object);
        table = new JTable(model);
        table.setRowHeight(20);
        table.getColumnModel().getColumn(0).setPreferredWidth(1);
        table.getColumnModel().getColumn(1).setPreferredWidth(96);
        table.getColumnModel().getColumn(2).setPreferredWidth(1);
    //    table.setCellSelectionEnabled(false);    table.setTableHeader(null);
        table.setShowGrid(false);
        table.setFocusable(false);
        JScrollPane pane = new JScrollPane(table);
        getContentPane().add(pane);
        table.addMouseListener(mouselistener);    //table.setShowVerticalLines(true);
      }
      MouseListener mouselistener = new MouseAdapter() {
           public void mouseClicked(MouseEvent e) {         if (e.getClickCount() == 1) {
               Point origin = e.getPoint();
               int m_irow = table.rowAtPoint(origin);           System.out.println("*****" + m_irow);
               table.setSelectionBackground(Color.pink);
               table.setColumnSelectionAllowed(false);
               table.setFocusable(false);
               table.setEditingColumn(0);
               table.setEditingRow(0);
    //           table.setShowHorizontalLines(true);
    //           table.setShowVerticalLines(true);
               table.setVerifyInputWhenFocusTarget(true);
             }
           }
      };  public static void main(String[] args) {
        Object[][] object;
        object = new Object[13][13];
        for (int i = 0; i < 13; i++) {
          Icon ww = new ImageIcon("c:\\img\\1.jpg");
          object[i][0] = ww;
          object[i][1] = "sad";
          object[i][2] = new ImageIcon("c:\\img\\w1.jpg");
        }    ControlList frame = new ControlList();
        frame.CallControlList(object);
        frame.addWindowListener(new WindowAdapter() {
          public void windowClosing(WindowEvent e) {
            System.exit(0);
          }
        });
        frame.setSize(300, 150);
        frame.setVisible(true);
      }  class ControlModel
          extends AbstractTableModel {
        final String[] columnNames = {
            "", "", ""};
        public Object[][] cellData;
        public void setObjectData(Object[][] object) {
          cellData = object;
        }    public int getColumnCount() {
          return columnNames.length;
        }    public int getRowCount() {
          return cellData.length;
        }    public String getColumnName(int col) {
          return (String) columnNames[col];
        }    public Object getValueAt(int row, int col) {
          return cellData[row][col];
        }    public Class getColumnClass(int col) {
          return getValueAt(0, col).getClass();
        }
      };
      private void jbInit() throws Exception {  }}
      

  7.   

    JTable.getColumnModel().setColumnMargin(0);
    JTable.setRowMargin(0);
    JTable.setShowGrid(false);
      

  8.   

    另,如果连选中时的Border(就是那个黑框)也不想要的话,就自己实现一个TableCellRenderer,在public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column)
    里把setBorder()去掉。
      

  9.   

    OK,relive(六道轮回,无想转生) ,谢谢,问题解决!结贴!!