我目前正在开展一个项目,该项目包括创建一个用于管理兽医诊所的java swing应用程序。我想在动物文件中添加一个自动完成字段,可以告诉我我想要写的医学名称而不写全名!我已经为诊所提供的医疗服务提供了一个数据库,所以我想做的是让数据库成为自动完成字段库的基础......我使用netbeans btw
如果有可能,我该如何实现这一目标!我希望你能帮忙!
答案 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
列表中。