请看:
http://www.csdn.net/Expert/TopicView1.asp?id=784894or http://www.csdn.net/Expert/TopicView1.asp?id=779175

解决方案 »

  1.   

    gularess(无吃哪拉),可以详细点吗?
      

  2.   

    当然可以;
    addMouseListener
      

  3.   

    public class MyListCellRenderer extends JLabel implements implements ListCellRenderer, Serializable{
    private JButton button;  
    public MyListCellRenderer(ActionListener a) {
    button = new JButton("Test");
    button.addActionListener(a);
    }
      public Component getListCellRendererComponent(
            JList list,
    Object value,
            int index,
            boolean isSelected,
            boolean cellHasFocus)
        {
            //different from DefaultListCellRenderer
            this.add(b)
           //end  
          setComponentOrientation(list.getComponentOrientation());
    if (isSelected) {
        setBackground(list.getSelectionBackground());
        setForeground(list.getSelectionForeground());
    }
    else {
        setBackground(list.getBackground());
        setForeground(list.getForeground());
    } if (value instanceof Icon) {
        setIcon((Icon)value);
        setText("");
    }
    else {
        setIcon(null);
        setText((value == null) ? "" : value.toString());
    } setEnabled(list.isEnabled());
    setFont(list.getFont());
    setBorder((cellHasFocus) ? UIManager.getBorder("List.focusCellHighlightBorder") : noFocusBorder); return this;
        }//something override just to enhance performance.
    ......
    }
      

  4.   

    参考如下代,对你有帮助:
    import java.awt.*;
    import java.awt.event.*;
    import java.util.Vector;
    import javax.swing.*;public class JListDemo extends Frame {
      Panel panelShow = new Panel();
     
      JList dataList;
      BorderLayout bordL = new BorderLayout();
      JTextField textField;  public JListDemo() {
        try {
        textField=new JTextField("first");
        String[] data = {"one", "two", "free", "four"};
    JList dataList = new JList(data);
            panelShow.setLayout(bordL);
            dataList.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(MouseEvent e) {
            textField.setText("change");
             }
             });
     dataList.setVisibleRowCount(12); // Add list to a scrollpane
         JScrollPane scrollPane = new JScrollPane(dataList);
         panelShow.add(scrollPane);
             String str="c:/csdn.gif";
    // JButton butt=new JButton(createImageIcon("csdn.gif", "Splash.accessible_description"));
    // Button1 = new JButton(new ImageIcon("tray1.gif"));
    /*        butt.addKeyListener(new java.awt.event.KeyAdapter(){
            public void keyPressed(KeyEvent e)
             {
    if(e.getKeyCode()==KeyEvent.VK_ENTER)
            textField.setText("wwwwww");
             }
             });*/
             panelShow.add(textField, BorderLayout.SOUTH);
    // panelShow.add(butt, BorderLayout.EAST);
             this.add(panelShow, BorderLayout.CENTER);
              
        }
        catch(Exception e) {
          e.printStackTrace();
        }
      }
      public static void main(String[] args) {
        JListDemo JListDemo = new JListDemo();    JListDemo.addWindowListener(new WindowAdapter() {
                public void windowClosing(WindowEvent e) {System.exit(0);}
            });
        JListDemo.setBounds (120,120,300,300);
        JListDemo.show ();
      }
        public ImageIcon createImageIcon(String filename, String description) {
    String path = "/images/" + filename;
    return new ImageIcon(getClass().getResource(path)); 
        }}