标签: jcombobox

JCombobox为每个项目添加不同的颜色

我对Jcombobox有疑问...例如,我有一个gui,其中包含一个jcombo框和一个按钮......在Jcombo框中,我添加了字符串数组对象,如颜色1,颜色2,颜色3:字符串[] colors = {"Color 1","Color 2","Color 3"}.我可以通过使用colorchooser点击按钮时选择颜色,它只会应用到按钮....但我想设置前景颜色到了"颜色1","颜色2"在tat组合框中...例如:如果我选择颜色为红色通过按钮,它应该应用于jcombobox上的前景颜色仅"SELECTED ITEM"(示例颜色1应显示为RED,其他应该是默认颜色!

...我是Java新手......如果有人知道,请帮助我..谢谢

java swing jcombobox

3
推荐指数
1
解决办法
4281
查看次数

Swing:检测JComboBox中的Enter?

我已经尝试在JComboBox上使用getInputMap()+ getActionMap(),它似乎没有任何效果.

我在JComboBox上尝试过addActionListener()/ addItemListener(),我似乎无法区分选择更改与按Return/Enter键的人.

有什么建议?在我的应用程序中,我希望Return/Enter键比仅选择更强,这是一个选择+应用操作.


这是我设置密钥绑定的代码.note("hit ENTER")当组件是a时JList,它工作正常(例如被调用),但当组件是JComboBox时,它不起作用.

private void setupApplyProfile(final JComponent component, final MyComboBoxModel mcbm)
{   
    String enterAction = "applyItem";
    KeyStroke enterKey = KeyStroke.getKeyStroke("ENTER");
    component.getInputMap().put(enterKey, enterAction);
    component.getActionMap().put(enterAction, new AbstractAction()
    {
        @Override public void actionPerformed(ActionEvent e) {
            note("hit ENTER");
            applySelectedProfile(mcbm);
        }
    });
}
Run Code Online (Sandbox Code Playgroud)

java swing jcombobox

3
推荐指数
1
解决办法
5284
查看次数

将Action侦听器添加到JComboBox

我想知道如何将ActionListener添加到JComboBox.我正在使用AWT.你能解释一下吗?谢谢.

java swing awt jcombobox

3
推荐指数
1
解决办法
7515
查看次数

JComboBox作为自定义TableCellEditor

我有一张桌子.对该表更新数据库的更改.一列由该表中的JComboBox编辑.单击该列中的任何单元格将触发tableChanged事件.但是,在选择JComboBox的项目后需要触发它.如何在选择后使tableChanged出现?

public class JIDCellEditor extends AbstractCellEditor implements TableCellEditor {

    JComboBox jComboBox;

    @Override
    public Object getCellEditorValue() {
        return jComboBox.getSelectedItem();
    }

    @Override
    public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) {
        Vector vector = new Vector();
        vector.add(0);
        for (int i = 0; i < table.getRowCount(); i++) {
            if (!vector.contains(table.getValueAt(i, 0)) && table.getValueAt(i, 3).toString().equals("Female")) {
                vector.add(table.getValueAt(i, 0));
            }
        }
        vector.remove(table.getValueAt(row, 0));
        jComboBox = new JComboBox(vector);
        jComboBox.setSelectedItem(value);
        return jComboBox;
    }
}
Run Code Online (Sandbox Code Playgroud)

java swing jtable tablecelleditor jcombobox

3
推荐指数
1
解决办法
8669
查看次数

JComboBox中整数1到100的代码,而不是一个一个地添加

我是编程的新手,正在尝试了解基础知识。我试图从JComboBox计算两个整数,并在单击JButton时将结果存储在JTextField中。但是我如何通过不输入1,2,3,4,.. 30,31 ..等等来设置数字1到100。我刚刚得到了JButton的代码,它可以与此代码一起使用

// I used this to call the numbers into the JComboBox
// but it would be a nightmare if i will continue to do this until 100  

cb1.addItem(new Integer(1));
cb1.addItem(new Integer(2));
cb1.addItem(new Integer(3));
// ...

cb2.addItem(new Integer(1));
cb2.addItem(new Integer(2));
cb2.addItem(new Integer(3));
// ...

// the code for the JButton which i got from this site

int cb1Int = Integer.parseInt(cb1.getSelectedItem().toString());
int cb2Int = Integer.parseInt(cb2.getSelectedItem().toString());
txt.setText(String.valueOf(cb1Int + cb2Int));
Run Code Online (Sandbox Code Playgroud)

这段代码工作得很好,但是我认为调用数字1到100的较短代码会很有帮助。

java jcombobox

3
推荐指数
1
解决办法
5628
查看次数

如何在JComboBox中检测TAB按键?

我试图找出如何检测当用户按Tab键或通过鼠标单击组件区域外时JComboBox是否失去焦点.

将FocusListener添加到JComboBox的编辑器组件对我没有帮助,因为我无法确定用户是否使用了鼠标或通过tab键移动了焦点.任何想法将不胜感激.

编辑1:我想要实现的是:

  • 假设用户下拉列表(JComboBox popupMenu显示),并通过光标键导航...
  • 案例1:用户按Tab键.在这种情况下,我想从项目中删除一些信息,只显示一些部分.
  • 案例2:用户在popupMenu区域外点击鼠标(这里我们有子类,但它们都属于同一类别).在这种情况下,我想更改JComboBox以显示以前编辑的项目,而不是用户导航的内容...
  • 还有其他几种情况(鼠标项目选择,回车键,转义等).我可以轻松处理这些,但检测选项卡很棘手,因为我无法捕获此事件,因为它由FocusManager处理.

编辑2:似乎我必须使用setFocusTraversalKeysEnabled(false)在TAB被按下时获得通知,当我捕获该事件时,我应该手动转移焦点...我不喜欢这个解决方案,但这是迄今为止我能来的最好的起来.

解:

以下Java代码实际上解决了我的问题.正如我在Edit 2中所写,最简单的解决方案是禁用焦点遍历.我无耻地借用了Kleopatra的代码,现在一切正常.:)

    if (!isTableCellEditor()) {
        comboBoxEditor.setFocusTraversalKeysEnabled(false);

        Action myAction = new AbstractAction() {

            @Override
            public void actionPerformed(ActionEvent e) {
                handleTabPress();
                comboBoxEditor.transferFocus();
            } // actionPerformed() method
        };

        comboBoxEditor.getActionMap().put("tab-action", myAction);
        comboBoxEditor.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT)
            .put(KeyStroke.getKeyStroke("TAB"), "tab-action");
    } // if
Run Code Online (Sandbox Code Playgroud)

感谢所有参与者的讨论!

java swing key-bindings jcombobox

3
推荐指数
1
解决办法
3408
查看次数

如何处理组合框中的非常长的文本项

所以我的文字比他们占用的一些组件要长一些.我已经为大多数问题提出了合理的解决方案,但我不知道如何处理组合框中的非常长的文本项.如果用户看不到文本,他就无法做出正确的决定 - 特别是如果文本的第一部分匹配.请参阅下面的我的SSCCE.

我使用JScrollpane来解决JTextfield中的长文本问题,并且我使用工具提示来解析JXhyperlink字段中的长文本.另外,我为组合框提供了一个工具提示,它可以在选择后显示一个长项,但理想情况下我想在用户做出选择之前将该选项提供给用户.这个代码示例使用Netbeans的GUI设计器(非常适合RAD目的)放在一起,布局是GUI设计者使用的GroupLayout.

package longtextsexample;

import javax.swing.JFileChooser;

public class MainFrame extends javax.swing.JFrame {

    /**
     * Creates new form MainFrame
     */
    public MainFrame() {
        initComponents();
    }

    /**
     * This method is called from within the constructor to initialize the form.
     */
    @SuppressWarnings("unchecked")
    private void initComponents() {

        jScrollPane1 = new javax.swing.JScrollPane();
        jTextField1 = new javax.swing.JTextField();
        jComboBox1 = new javax.swing.JComboBox();
        jXHyperlink1 = new org.jdesktop.swingx.JXHyperlink();
        jButton1 = new javax.swing.JButton();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        jScrollPane1.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS);
        jScrollPane1.setVerticalScrollBarPolicy(javax.swing.ScrollPaneConstants.VERTICAL_SCROLLBAR_NEVER);
        jScrollPane1.setViewportView(jTextField1);

        jComboBox1.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Item 1", "Item 222222222222222222222222", …
Run Code Online (Sandbox Code Playgroud)

java swing text swingx jcombobox

3
推荐指数
1
解决办法
2087
查看次数

Java Swing - 通知GUI有关模型的更改

我在JTable中有一个列绑定到业务对象列表上的底层布尔属性.我还有一个组合框,应该选择应该选择哪些项目.我基本上将以下代码添加为组合框的处理程序:

            macroCombo.addActionListener(new ActionListener() {
                @Override
                public void actionPerformed(ActionEvent e) {
                    JComboBox comboBox = (JComboBox) e.getSource();
                    Predicate filter = (Predicate) comboBox.getSelectedItem();
                    for(SelectableKey key : tableEntries){
                        key.setSelected(filter.evaluate(key));
                    }
                }
            });
Run Code Online (Sandbox Code Playgroud)

我还想根据值改变一些其他控件.目前,表中只有少数单元格会更改其状态以进行选择/取消选择.只有当我单击该行或选择多行时,UI才会自行更新.是否有来自我需要做的处理程序的调用来告诉GUI重绘自己?ALOS,如果我修改除JTable之外的其他控件,我怎么告诉他们改变他们的状态?

谢谢

java swing jtable jcombobox tablemodel

3
推荐指数
1
解决办法
807
查看次数

使用JComboBox作为搜索

我想知道当我们输入组合框时如何让JComboBox自动建议元素.例如,如果我使用MySQL加载了一个带有这些名称的JComboBox,[Amila,Nimila,Nikila,Sunil],当我在组合框中输入"N"时,它会下拉列表,只显示Nimila和Nikila为建议.我正在尝试在NetBeans上执行此操作.谢谢.

java database search swing jcombobox

3
推荐指数
1
解决办法
2万
查看次数

将JLabel插入JComboBox

http://prntscr.com/1gpdqe

对不起,这是我第一次参加这个论坛.

谁能帮帮我吗?

我一直试图在JComboBox上一行制作图像和文本节目,在网站上搜索后,我找不到解决问题的方法.

JLabel的上述JLabel的工作,但是一个JLabelJComboBox中没有.

java swing jlabel jcombobox

3
推荐指数
2
解决办法
2503
查看次数