1,先看效果
上面是文本框,紧挨着下面是对应的下拉框,点击下拉框时,下拉框中的item的内容自动填充到上面的文本框中.
实现代码:
public static JComboBox<String> comboBoxSelectedHandle(JComboBox<String> comboBox,final JTextField ipTextField){ if(ValueWidget.isNullOrEmpty(comboBox)){ comboBox = new JComboBox<String>(); } comboBox.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) { JComboBox<String> target=(JComboBox<String>)e.getSource(); String selectedPort=(String)target.getSelectedItem(); if(!ValueWidget.isNullOrEmpty(selectedPort)){ ipTextField.setText(selectedPort); } // System.out.println(e.getSource()); } }); comboBox.addItemListener(new ItemListener() { public void itemStateChanged(ItemEvent e) { JComboBox<String> target=(JComboBox<String>)e.getSource(); String selectedPort=(String)target.getSelectedItem(); if(!ValueWidget.isNullOrEmpty(selectedPort)){ ipTextField.setText(selectedPort); } } }); return comboBox; }
2,项目
采用Java swing编写,使用maven构建
源代码见附件
------------ 2017-05-27 10:27:11 优化---------------
public static JComboBox<String> comboBoxSelectedHandle(JComboBox<String> comboBox,final JTextField ipTextField){ if(ValueWidget.isNullOrEmpty(comboBox)){ System.out.println("JComboBox is null"); comboBox = new JComboBox<String>(); } comboBox.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) { setSelectedItem(e, ipTextField); // System.out.println(e.getSource()); } }); comboBox.addItemListener(new ItemListener() { public void itemStateChanged(ItemEvent e) { setSelectedItem(e, ipTextField); } }); comboBox.addActionListener(new ActionListener() { /*** * 单击弹出的下拉列表时触发 * @param e */ @Override public void actionPerformed(ActionEvent e) { setSelectedItem(e, ipTextField); } }); return comboBox; } public static void setSelectedItem(AWTEvent e, JTextField ipTextField) { JComboBox<String> target = (JComboBox<String>) e.getSource(); String selectedPort = (String) target.getSelectedItem(); if (!ValueWidget.isNullOrEmpty(selectedPort)) { ipTextField.setText(selectedPort); } }
扫描二维码关注公众号,回复:
818503 查看本文章