gpt4 book ai didi

java - 如何使用 jtextfield 在 jcombo 框自动建议中接受小写和大写

转载 作者:行者123 更新时间:2023-12-02 07:59:36 25 4
gpt4 key购买 nike

我创建了一个类comboauto,用于从组合框中的mysql数据库获取项目名称。我在 jcombobox 中做了一个自动建议,将 jtextfield 指定为默认值,以获取 jtextfield 中的文本。当我在 jcombobox 中输入文本 U(它应该自动建议并给出小写和大写 u 值)时。在输入文本时我没有得到两个大小写值。请帮助我,我应该在这里使用什么方法。

This is the code i used
public class comboauto extends javax.swing.JFrame{
Vector Tmpv1=new Vector();
Statement TmpSqlStmnt;
ResultSet TmpSqlRs;
Connection Tmpcon;
String TmpCateId;
JTextField Txt01;
TreeMap TmpMap=new TreeMap();

public comboauto() {
initComponents();
}

public void FRM_CBX_AUTOSUGGEST() {
Txt01=(JTextField)Cbx01.getEditor().getEditorComponent();
Txt01.addKeyListener(new KeyAdapter() {
public void keyTyped(KeyEvent e)
{
EventQueue.invokeLater(new Runnable()
{
public void run(){
String Tmptext =Txt01.getText();
if(Tmptext.length()==0)
{
Cbx01.hidePopup();
setModel(new DefaultComboBoxModel(Tmpv1), "");
}
else{
DefaultComboBoxModel m = getSuggestedModel(Tmpv1, Tmptext);
if(m.getSize()==0 ) {
Cbx01.hidePopup();
}
else{
setModel(m, Tmptext);
Cbx01.showPopup();

}
}
}
});
}
});
try{
Class.forName("com.mysql.jdbc.Driver");
Tmpcon =DriverManager.getConnection("jdbc:mysql://localhost:3306/project","root","root");
TmpSqlStmnt=Tmpcon.createStatement();
TmpSqlRs=TmpSqlStmnt.executeQuery ("SELECT CateId,CateName FROM Cust_Masterrecord ORDER BY CateName");
System.out.println("DB Connected");
TmpSqlRs.first();
do {
String TmpName=TmpSqlRs.getString("CateName");
Cbx01.setSelectedIndex(-1);
Cbx01.addItem(TmpName);
int TmpCateId=TmpSqlRs.getInt("CateId");
Tmpv1.addElement(TmpSqlRs.getString("CateName"));
TmpMap.put(TmpName, TmpCateId);

Cbx01.addItemListener(new ItemListener()
{
public void itemStateChanged(ItemEvent e) {
if (e.getStateChange() == e.SELECTED) {

Lbl01.setText(TmpMap.get(Cbx01.getSelectedItem()).toString());
}
}
});
}while(TmpSqlRs.next());
}catch(Exception e){
System.out.println(e);
}
}
private boolean hide_flag = false;
private void setModel(DefaultComboBoxModel mdl, String str)
{
Cbx01.setModel(mdl);
Cbx01.setSelectedIndex(-1);
Txt01.setText(str);
}
private static DefaultComboBoxModel getSuggestedModel(java.util.List<String> list, String text) {
DefaultComboBoxModel m = new DefaultComboBoxModel();

for(String s: list) {
if(s.startsWith(text)) m.addElement(s);
}
return m;
}
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
comboauto Tmpobj1= new comboauto();
Tmpobj1.FRM_CBX_AUTOSUGGEST();
Tmpobj1.setVisible(true);


}
});
}

// Variables declaration - do not modify
private javax.swing.JComboBox Cbx01;
private javax.swing.JLabel Lbl01;
// End of variables declaration

}

最佳答案

使用String.toUpperCase在你的 getSuggestedModel 方法中。 (两个字符串都大写。小写也可以。)

关于java - 如何使用 jtextfield 在 jcombo 框自动建议中接受小写和大写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9109043/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com