我正在学习 Swing 并尝试制作一个具有自动完成功能的文本编辑器作为练习。我使用 Netbeans。
当我创建 JFrame 并向其添加文本区域时,我最终会得到这样的自动生成的代码:
package javaapplication5;
public class NewJFrame extends javax.swing.JFrame {
public NewJFrame() {
initComponents();
}
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jScrollPane1 = new javax.swing.JScrollPane();
jTextArea1 = new javax.swing.JTextArea();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
jTextArea1.setColumns(20);
jTextArea1.setRows(5);
jScrollPane1.setViewportView(jTextArea1);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 400, Short.MAX_VALUE)
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jScrollPane1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 300, Short.MAX_VALUE)
);
pack();
}// </editor-fold>
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new NewJFrame().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JTextArea jTextArea1;
// End of variables declaration
}
我想尝试的是应用
中描述的自动完成装饰器http://www.jdocs.com/swingx/1.0/org/jdesktop/swingx/autocomplete/AutoCompleteDecorator.html
当我尝试做
List list = Arrays.asList("A", "B", "C");
AutoCompleteDecorator.decorate(jTextArea1, list);
结果是:
error: <identifier> expected
AutoCompleteDecorator.decorate(jTextArea1, list);
代码有什么问题吗?
最佳答案
在 google 中搜索 AutoCompleteDecorator api没有带有您签名的方法。如果它是 strictMatching
,则必须传递一个 boolean 值作为参数。
AutoCompleteDecorator.decorate(jTextArea1, list,true);
关于java - JFrame 中的自动完成装饰器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22938995/