1.如图,比如在上面的框里输入香蕉,点下检索,下面的列表框就把鼠标定位到香蕉这一项,列表框的表是从数据库读取的,这样的功能怎么实现???
2。上面的完成后点下一步,就到了这如何把上面选择的选项放到这里来的标签上???

解决方案 »

  1.   

    1、JList.setSelectedValue(Object)会选中该项。
    鼠标移动?可以考虑Robot类移动鼠标2、没看明白什么意思
    JLabel.setText("您选择地水果为:" + 水果.toString());??
      

  2.   

    比较简单的写了下!import java.awt.Container;
    import java.awt.FlowLayout;
    import java.awt.GridLayout;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JList;
    import javax.swing.JPanel;
    import javax.swing.JScrollPane;
    import javax.swing.JTextField;public class Test extends JFrame{
    JList jlName;
    JLabel listLbl,selectLbl;
    final JTextField jt;
    JButton jbt,next;
        String[] list={"香蕉","西瓜","葡萄","梨"};
    public Test() {
    jlName = new JList();
    listLbl = new JLabel("水果列表:");
    selectLbl=new JLabel("查询:");
    jlName.setListData(list);
    jt=new JTextField("JTextField");
    jbt=new JButton("检索");
    next=new JButton("下一步");
    jbt.addActionListener(new ActionListener(){
    @Override
    public void actionPerformed(ActionEvent e) {
    String selectStr=jt.getText();
    for(String key:list){
    if(key.equals(selectStr))
    jlName.setSelectedValue(key, false);
    }
    }
    });
    next.addActionListener(new ActionListener(){
    @Override
    public void actionPerformed(ActionEvent e) {
    ResultFrame ss=new  ResultFrame((String)jlName.getSelectedValue());
    }
    });
    JScrollPane js = new JScrollPane();
    js.getViewport().add(jlName);
    Container con = getContentPane();
    con.setLayout(new FlowLayout());
    con.add(listLbl);
    con.add(jt);
    con.add(jbt);
    con.add(next);
    JPanel p = new JPanel();
    con.add(p);
    p.setLayout(new GridLayout(1, 2));
    p.add(js);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setSize(200, 250);
    setVisible(true);
    }

    public static void main(String[] args){
    new Test();
    }

    class ResultFrame extends JFrame{

    public ResultFrame(String result){

    JLabel jl=new JLabel("商品名称:");
    JLabel name=new JLabel(result);
    this.setLayout(new FlowLayout());
    this.setSize(100,100);
    this.add(jl);
    this.add(name);
    this.setVisible(true);
    }
    }}
      

  3.   

    那很简单呀,就是从数据库中读出来,添加到数组中然后传递给list就行了么
    。现在只不过程序给你写死了,固定的而已。难道就不能变通一下!