带有个性化库的自动填充字段

时间:2017-12-26 18:06:59

标签: java swing

我目前正在开展一个项目,该项目包括创建一个用于管理兽医诊所的java swing应用程序。我想在动物文件中添加一个自动完成字段,可以告诉我我想要写的医学名称而不写全名!我已经为诊所提供的医疗服务提供了一个数据库,所以我想做的是让数据库成为自动完成字段库的基础......我使用netbeans btw

如果有可能,我该如何实现这一目标!我希望你能帮忙!

1 个答案:

答案 0 :(得分:0)

我认为这段代码可以帮助你:

    import java.awt.Dimension;
    import java.awt.EventQueue;
    import java.awt.FlowLayout;

    import java.awt.event.KeyAdapter;
    import java.awt.event.KeyEvent;

    import java.util.Arrays;
    import java.util.List;

    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JTextField;
    import javax.swing.WindowConstants;

    public class StackOverflow 
    {
        private static final List<String> suggestions = Arrays.asList("Dog", "Cat", "Horse", "Dolphin");

        public static void main(final String[] arguments) 
        {
            final JFrame frame = new JFrame("StackOverflow Question | Demo");
            EventQueue.invokeLater(() -> 
            {
                frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
                frame.setSize(400, 200);
                frame.setLocationRelativeTo(null);
                frame.getContentPane().setLayout(new FlowLayout(FlowLayout.CENTER));
                frame.setVisible(true);
                final JLabel label = new JLabel();
                final JTextField textField = new JTextField();
                textField.setPreferredSize(new Dimension(frame.getContentPane().getWidth(), textField.getFont().getSize() * 2));
                textField.addKeyListener(new KeyAdapter() 
                {
                    @Override
                    public void keyReleased(KeyEvent event) 
                    {
                        String suggestion = "";
                        for (String str : suggestions) {
                            if (str.toLowerCase().startsWith(textField.getText().toLowerCase())) 
                            {
                                suggestion += str + ", ";
                            }
                        }
                        label.setText(suggestion.isEmpty() ? suggestion : suggestion.substring(0, suggestion.length() - 2));
                    }
                });
                frame.getContentPane().add(textField);
                frame.getContentPane().add(label);
                frame.getContentPane().revalidate();
            });
        }
    }

这是一个关于如何使用自动完成实现字段的示例。您可以将所有可能的建议添加到suggestions列表中。