问题描述:
    我现在做了一个指令历史记录显示框,里面用的是JList控件,是逐行显示的.现在希望具有一个功能就是,双击JList里面的一个条目(也就是一行),可以把这一行的内容,添加到一个JTextField里面.这个功能类似一个拷贝的意思,也就是希望执行之前已经执行过的命令.
    具体怎样实现,希望各位大虾能指导一下!万分感谢!

解决方案 »

  1.   

    package demo;import java.awt.BorderLayout;
    import java.awt.event.MouseAdapter;
    import java.awt.event.MouseEvent;
    import java.awt.event.MouseListener;import javax.swing.JFrame;
    import javax.swing.JList;
    import javax.swing.JScrollPane;
    import javax.swing.JTextField;public class JListSelectionTest { public static void main(String args[]) {
    final JTextField field = new JTextField();
    String labels[] = { "A", "B", "C", "D", "E", "F", "G", "H", "I", "J" };
    JFrame frame = new JFrame("Selecting JList");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    JList selectionList = new JList(labels);
    frame.getContentPane().add(field, BorderLayout.NORTH);
    frame.getContentPane().add(new JScrollPane(selectionList), BorderLayout.CENTER); MouseListener mouseListener = new MouseAdapter() {
    public void mouseClicked(MouseEvent mouseEvent) {
    JList theList = (JList) mouseEvent.getSource();
    if (mouseEvent.getClickCount() == 2) {
    int index = theList.locationToIndex(mouseEvent.getPoint());
    if (index >= 0) {
    Object o = theList.getModel().getElementAt(index);
    field.setText(o.toString());
    }
    }
    }
    };
    selectionList.addMouseListener(mouseListener); frame.setSize(350, 200);
    frame.setVisible(true);
    }
    }
    给JList注册一个鼠标事件监听器即可。
      

  2.   

    直接JLIST控件就有mouseClicked这个事件啊,直接在里面写代码就行……