Java 这是JComboBox中的意图行为吗?我怎样才能避免这种行为?
我意识到,如果您在JComboBox中有相同的选择,使用向上/向下箭头键将无法帮助您导航选择。我怎样才能避免这种行为 请参见下面的屏幕截图:Java 这是JComboBox中的意图行为吗?我怎样才能避免这种行为?,java,swing,jcombobox,Java,Swing,Jcombobox,我意识到,如果您在JComboBox中有相同的选择,使用向上/向下箭头键将无法帮助您导航选择。我怎样才能避免这种行为 请参见下面的屏幕截图: 公共类NewJFrame扩展了javax.swing.JFrame{ /**创建新表单NewJFrame*/ 公共NewJFrame(){ 初始化组件(); /*如果这里有3个相同的字符串。使用上/下箭头键, *不会四处移动所选内容。 */ 此.jcombox1.addItem(“英特尔”); 此.jcombox1.addItem(“英特尔”); 此.j
公共类NewJFrame扩展了javax.swing.JFrame{
/**创建新表单NewJFrame*/
公共NewJFrame(){
初始化组件();
/*如果这里有3个相同的字符串。使用上/下箭头键,
*不会四处移动所选内容。
*/
此.jcombox1.addItem(“英特尔”);
此.jcombox1.addItem(“英特尔”);
此.jcombox1.addItem(“英特尔”);
}
/**此方法从构造函数中调用,以
*初始化表单。
*警告:请勿修改此代码。此方法的内容为
*始终由表单编辑器重新生成。
*/
@抑制警告(“未选中”)
//
私有组件(){
jcombox1=newjavax.swing.JComboBox();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
jcombox1.setEditable(true);
javax.swing.GroupLayout=newjavax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(布局);
layout.setHorizontalGroup(
createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(105、105、105)
.addComponent(jcombox1,javax.swing.GroupLayout.PREFERRED_SIZE,158,javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(137,简称最大值))
);
layout.setVerticalGroup(
createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(63,63,63)
.addComponent(jcombox1,javax.swing.GroupLayout.PREFERRED\u SIZE,javax.swing.GroupLayout.DEFAULT\u SIZE,javax.swing.GroupLayout.PREFERRED\u SIZE)
.addContainerGap(217,简称最大值))
);
包装();
}//
公共静态void main(字符串参数[]){
invokeLater(new Runnable()){
公开募捐{
新建NewJFrame().setVisible(true);
}
});
}
//变量声明-不修改
私有javax.swing.JComboBox jcombox1;
//变量结束声明
}
退出
答案已经在那篇帖子中给出了。我要说的是,在我的Mac电脑上的JRE 1.6上运行这段代码,上/下键都可以正常工作。我只是在Ubuntu10.04和JRE 1.6中使用了它,你是对的,上/下键都不起作用。如果您更改它们,上/下键会起作用,但如果它们相同,则不会起作用。奇怪。。。我将继续玩它。为了补充我上面的评论:向上/向下做工作,但是如果你选择一个项目并重新打开组合框,选择的内容不会被正确记住。是的,这就是我知道它是交叉发布的原因。我花时间在许多论坛上,试图在发现交叉海报时发出警告,这样我们就不会浪费时间回答已经回答过的问题。下次OP这样做的时候,我只是忽略了这个问题,并警告大家,希望他们也忽略它。如果你在这里复制你的答案,我会更愿意投票给你。:)(是的,这会违反DRY,但是在这里有答案是很好的。我想我倾向于认为太阳更可能……呃,Oracle Java论坛从网络上消失了……。@Jonik,这就是为什么我鄙视交叉海报。所有信息都应该放在一个地方,这样讨论就可以在一个地方进行。因此,解决方案应该只放在一个地方,以防有人想发表其他评论。将代码和注释放在两个不同的地方太难管理了。
public class NewJFrame extends javax.swing.JFrame {
/** Creates new form NewJFrame */
public NewJFrame() {
initComponents();
/* If you are having 3 same strings here. Using, up/down arrow key,
* will not move the selection around.
*/
this.jComboBox1.addItem("Intel");
this.jComboBox1.addItem("Intel");
this.jComboBox1.addItem("Intel");
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jComboBox1 = new javax.swing.JComboBox();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
jComboBox1.setEditable(true);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(105, 105, 105)
.addComponent(jComboBox1, javax.swing.GroupLayout.PREFERRED_SIZE, 158, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(137, Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(63, 63, 63)
.addComponent(jComboBox1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(217, 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.JComboBox jComboBox1;
// End of variables declaration
}