Java 7中的JCombobox已经更新为使用generics – 我一直认为这是一个疏忽,它还没有,所以我很高兴看到这种变化。 但是,当试图以这种方式使用JCombobox时,我意识到我期望使用这些genericstypes的方法仍然只是返回Object. 这是为什么呢? 这对我来说似乎是一个愚蠢的devise决定。 我意识到底层的ListModel有一个通用的getElementAt()方法,所以我将使用它,但是这是一个迂回的做法,看起来像它可以在JComboBox本身上进行更改。
让我先解释一下我期待的成就。 我在Swing中创build了一个数据input表单,由许多JComboBoxes和JTextFields组成。 validation例程迭代这些组件,并确定为每个控件指定的值是否为“有效”(validation的细节与本示例的目的无关)。 当例程识别出一个组件包含一个无效值时,我想要改变该字段的背景颜色,以及该字段的前景/文本颜色 – 以便向用户说明该字段存在问题。 如果一个字段被认为是“有效的”,我想把控件的背景设置为白色,而前景/文本是黑色的。 所有相当直截了当的,并在所附的演示代码下面所有可实现的。 当一个combobox包含一个有效的值,并被重点 – 组合中的编辑器的背景设置为蓝色,我很满意。 但是,我试图实现的是当该combobox包含无效值时更改用于突出显示一个焦点combobox的颜色。 尽pipe已将combobox的背景颜色更改为粉色,但如果控件处于聚焦状态,仍会使用蓝色表示聚焦。 重点关注的无效字段示例: http : //postimg.org/image/ne9xgjch3/ 虽然我明白这是完全正常的行为,但我想要做的是将用于突出显示“无效”字段之一的颜色更改为颜色较深的阴影,而非重点和无效的控件将会具有这种颜色 – 这样用户仍然可以看到哪个控件是关注的,而且它仍然是粉红色的。 我明白这可能看起来很小巧,但是我的最终用户坚持认为整个领域在聚焦的时候仍然是粉红色的(或者更确切地说,是一种不同的粉色)。 这就是我的eutopia,一个专注和“无效”的领域,看起来像: http://postimg.org/image/9793bqcfj/ 我已经试过扩展DefaultListCellRenderer&BasicComboBoxEditor类,并分别设置combobox作为渲染器和编辑器。 我的印象是,编辑器会成为我需要关注的地方,所以在类的getEditorComponent方法中,我会返回一个带有适当背景和前景的标签 – 但是在这个方法中,我没有办法知道控件是否有焦点,所以无法确定如何格式化返回的标签。 此外,一旦我开始对combobox设置编辑器,我似乎失去了将控件集中在一起的能力 – 尽pipe这可能是我对如何实现编辑器缺乏了解。 我一直在阅读有关BasicComboBoxUI,但我遇到的东西已经脱颖而出,作为解决scheme。 请别人指点一下正确的方向,我已经花了几天的时间来修补这个问题,而且这真的开始困扰我了。 请原谅NetBeans生成的演示代码,这只是让我快速敲一个演示。 package com.test; import java.awt.*; public class TestForm extends javax.swing.JFrame { public TestForm() { initComponents(); } @SuppressWarnings("unchecked") // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents private […]
我想在第一列的JTable(3,3)中添加JComboBox。但是在第一列中,每一行都有自己的一组ComboBox元素。 当我尝试使用 table.getColumnModel().getColumn(1).setCellEditor(new DefaultCellEditor(comboBox_Custom)); 每行都被设置为相同的一组ComboBox值。 但是我希望每行ComboBox都有不同的项目。
是否有可能为JComboBox设置一个值和一个标签,这样我可以显示一个标签,但得到一个不同的值? 例如在JavaScript中,我可以这样做: document.getElementById("myselect").options[0].value //accesses value attribute of 1st option document.getElementById("myselect").options[0].text //accesses text of 1st option
如何在Netbeans 7.1中的可编辑JComboBox中执行自动完成,如在VB点networking中的ComboBox中。 我有一个列表绑定的combobox,我想通过在列表中只input一些项目的第一个字母来select项目,例如,如果一个列表有kitten ,那么当我键入ki时应该select它。
假设我想在JComboBox中使用自定义图像作为箭头,我该怎么做? 我知道这是可能的使用合成XML文件,甚至可能是UIManager.put(…),但我不知道如何。 我现在想要做的就是将箭头图像更改为其他内容,无论是以编程方式还是仅仅覆盖其使用的图像。 我到底该怎么做?
我有一个使用基于对象matrix的模型创build的JTable。 对于每一行,我想使用一个JComboBox来放置一个特定的列(第五个)一些信息。 我已经尝试了以下内容: for(int i=0; i < n ; i++) { ….. data[i][5] = new JComboBox(aux); // aux is a Vector of elements I wanna insert } table.setModel(new MyTableModel()); // MyTableModel() already takes into consideration the data[][] object 问题是data [i] [5] = new JComboBox(aux); 不在JTable的特定单元格中创buildJComboBox对象,而是将代码粘贴到行中。 我能做些什么来解决这个问题? 谢谢。
我试图从JComboBoxselect一个事件来触发。 我遇到的问题是,没有明显的addSelectionListener()方法。 我试图使用actionPerformed()但它永远不会触发。 重写JComboBox的模型,我没有想法。 如何获得JComboBox上的select更改通知? 编辑:我必须道歉,原来我使用JComboBox的行为不当的子类,但我会离开这个问题,因为你的答案是好的。 开始投票。 🙂
我有以下数据(string): Course1: A1 Course1: A2 Course2: B1 Course2: B2 Course2: B3 Course2: B4 Course3: C1 Course3: C2 我想要创build两个JComboBox (JComboBox1,JComboBox2),以便JComboBox1包含Course1,Course2,Course3等 如果我从JComboBox1中selectCourse2,那么相应的B1,B2,B3,B4应该填充到JComboBox2中。 如何实现这个? 非常感谢。
我想在java中创建一个自动完成的程序,当用户在JTextfield键入一个字符/字符串时,应该立即提供一个建议列表。 问题是我很困惑如何做到这一点。 有人可以提供一个想法或样本上述问题?