标签: jcombobox

jcombobox - 下拉纸张尺寸

我想控制在JComboBox中按下向下箭头按钮时打开的工作表的大小,我希望它显示更多选项这可能吗?

swing jcombobox

7
推荐指数
1
解决办法
3259
查看次数

JCombo AutoComplete - 模式或反向查找

在swingx库中使用自动完成装饰器:

AutoCompleteDecorator.decorate( myComboBox );

这很可爱.但是,它仅从键入文本的开头向前搜索.

因此,如果我的组合包含:[Apple,Banana,Grape,Orange]在"严格"模式下键入"an"将不会显示任何结果.在非严格模式下,也没有搜索到任何内容.我希望它能匹配'Banana'和'Orange',因为这两个项目都包含我的打字文本.

是否有任何自动完成库允许此类功能?我认为策略方法在这里效果最好,但我找不到任何适用的方法.我很好地扩展了现有的功能 - 只要我不重新发明轮子.

提前致谢!

java user-interface swing autocomplete jcombobox

6
推荐指数
1
解决办法
934
查看次数

JComboBox焦点和鼠标单击事件不起作用

编辑
Downvoter,这怎么回事?我提供了该问题的可运行示例代码.如果它适合您,请让我知道或指出不清楚的地方.

您好,
在下面的代码中有一个单独JComboBoxJFrame,当鼠标进入JComboBox或被点击或焦点获取时,我不会收到通知.但是,PopupMenuEvent工作正常.

我究竟做错了什么?(我的目标是在单击JComboBox的文本组件时收到警报)

public class TestJComboBox extends javax.swing.JFrame
{
    public TestJComboBox()
    {
        initComponents();
    }

    // <editor-fold defaultstate="collapsed" desc="Generated Code">
    private void initComponents() {

        jComboBox1 = new javax.swing.JComboBox();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                formMouseClicked(evt);
            }
        });

        jComboBox1.setEditable(true);
        jComboBox1.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" }));
        jComboBox1.setName("jComboBox1"); // NOI18N
        jComboBox1.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jComboBox1MouseClicked(evt);
            }
            public void mouseEntered(java.awt.event.MouseEvent evt) …
Run Code Online (Sandbox Code Playgroud)

events swing jcombobox

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

当单元格中的JComboBox中有ItemEvent时,如何获取CellRow

我有一个JTable,其中包含一个包含JComboBox的列.

我有一个附加到JComboBox的ItemListener,它对任何更改起作用.

但是,ItemListener没有获取已更改的ComboBox所在的Row的方法.

我需要行号以便在ComboBox发生更改时对同一行中的另一列进行操作.

任何帮助,将不胜感激.


这是我的简短代码.我想要完成的是在itemlistener获取更改时获取ComboBox的表行.

import java.awt.*;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.io.IOException;
import javax.swing.*;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableCellRenderer;
import javax.swing.table.TableColumn;

public class Example extends JFrame {

    private static final long serialVersionUID = 1L;
    public static int maxX, maxY;
    public static final String[] columnHeads = {"Col 1", "Col 2", "Col 3"};

    public static void main(String args[]) throws IOException {
        Example example = new Example();
    }

    public Example() {
        //Create Table Model
        DefaultTableModel model = new DefaultTableModel();

        for (int index …
Run Code Online (Sandbox Code Playgroud)

java swing jtable tablecelleditor jcombobox

6
推荐指数
1
解决办法
7962
查看次数

如何表明JComboBox正在加载值?

我有一个JComboBox,其值通过网络检索.

我正在寻找一种向用户指示该事实的方法,当用户想要查看列表时,展开下拉列表,然后检索数据.

基本要求包括:

  1. JComboBox的下拉菜单不应该锁定EDT,但是在有值之前,组合的动作不应该起作用.
  2. 用户应该知道何时检索了所有数据.
  3. 指示的大小(UI不动产)应尽可能小.

请注意,在用户想要查看组合的值(即展开下拉列表)之前,不会检索数据.

我用过的解决方案:

我使用了一个SwingWorker来保持UI响应.组合框使用JIDE's覆盖Overlayable,JIDE InfiniteProgressPanel聆听工作人员.

java swing jcombobox event-dispatch-thread jide

6
推荐指数
1
解决办法
476
查看次数

JTable,JComboBox使用自定义对象

嗨,如果您将JComboBox放在JTable和String []数组中给JComboBox一切正常.Buf如果您将自己的数据类型放到JComboBox中,则选择同一列中的值会变得复杂.这是官方的例子.尝试更改以下部分:

JComboBox comboBox = new JComboBox();
comboBox.addItem("Snowboarding");
comboBox.addItem("Rowing");
comboBox.addItem("Knitting");
comboBox.addItem("Speed reading");
comboBox.addItem("Pool");
comboBox.addItem("None of the above");
sportColumn.setCellEditor(new DefaultCellEditor(comboBox));
Run Code Online (Sandbox Code Playgroud)

成:

JComboBox comboBox = new JComboBox();
comboBox.addItem(new Test("Snowboarding"));
comboBox.addItem(new Test("Rowing"));
comboBox.addItem(new Test("Knitting"));
comboBox.addItem(new Test("Speed reading"));
comboBox.addItem(new Test("Pool"));
comboBox.addItem(new Test("None of the above"));
sportColumn.setCellEditor(new DefaultCellEditor(comboBox));
Run Code Online (Sandbox Code Playgroud)

并创建新的数据类型:

public class Test {
    private String name;

    public Test(String name) {
        this.name = name;
    }

    @Override
    public String toString() {
        return name;
    }
}
Run Code Online (Sandbox Code Playgroud)

你会看到,当你点击女巫中的表格单元格时,会有一个带有自定义数据类型的JComboBox.自动选择第一列单元格的值.如何解决这个问题?

编辑1:我添加了SSCCE.

主类:

import java.awt.BorderLayout;

public class windw extends …
Run Code Online (Sandbox Code Playgroud)

java swing jtable jcombobox

6
推荐指数
1
解决办法
6160
查看次数

JComboBox警告阻止在eclipse中打开设计页面

好的我正在使用eclipse及其GUI编辑器,我有一个这样的字符串:

public static String[] blah = {"Blah", "Blah", "Blah", "Blah"};
Run Code Online (Sandbox Code Playgroud)

和这样的JComboBox:

JComboBox comboBox = new JComboBox(blah);
    comboBox.setBounds(10, 56, 312, 37);
    contentPane.add(comboBox);
Run Code Online (Sandbox Code Playgroud)

组合框使用上面的字符串来获取其数据,但当我输入"blah"到组合框时,它有这个错误...

Type safety: The constructor JComboBox(Object[]) belongs to the raw type JComboBox.    References to generic type JComboBox<E> should be parameterized
Run Code Online (Sandbox Code Playgroud)

如果我运行它是有效的,因为它只是一个警告,但它很烦人,因为它不会让我进入设计模式,除非我作出评论.设计模式给出了这个错误......

INVALID SOURCE. No Constructor Binding. ---  new JComboBox(locations) is not valid source for component creation, it references not existing constructor. 
Run Code Online (Sandbox Code Playgroud)

所以我想知道是否还有其他办法可以解决这个问题

java eclipse jcombobox

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

Java ComboBox与名称的不同值

我有一个Java组合框和一个链接到SQLite数据库的项目.如果我有一个带有相关ID和名称的对象:

class Employee {
    public String name;
    public int id;
}
Run Code Online (Sandbox Code Playgroud)

将这些条目放入JComboBox的最佳方法是什么,以便用户看到员工的姓名,但是当我这样做时我可以检索employeeID:

selEmployee.getSelectedItem();
Run Code Online (Sandbox Code Playgroud)

谢谢

java swing combobox jcombobox

6
推荐指数
2
解决办法
8757
查看次数

如果满足条件,则取消对JComboBox的选择更改(例如,对传入选择的验证)

我试图动态验证JComboBox选择的项目,我想取消选择更改,以防验证不正确.有没有办法实现它?

private ItemListener itemListener = new ItemListener() {
    @Override                                            
    public void itemStateChanged(ItemEvent e) {
        if (e.getStateChange() == ItemEvent.SELECTED) {
            if (true) CANCEL_CHANGE;
        }
    }
};
Run Code Online (Sandbox Code Playgroud)

我尝试定义一个包含旧值的var,取消注册侦听器,并手动选择到先前的状态,但随后第一次更改出现问题,因为var未初始化且无法保存原始值.

我也尝试过使用ActionListener,但发现无法以编程方式取消更改,而且我不需要fire事件然后没有变化,但我正在评估手动设置setSelection的可能性,所以我恢复为ItemListener.

java events swing jcombobox itemlistener

6
推荐指数
2
解决办法
5331
查看次数

如何知道是否点击了自动完成装饰的JComboBox的项目?

我使用SwingX AutoCompleteDecoratorJComboBox.自动完成功能非常有效......

但是我很难确定最终用户选择的时刻 ; 很少坚持我的数据.

让我试着解释一下:组合框会ActionEvent为每个选择发出一个"comboBoxChanged" .当用户输入字符时,我必须忽略这些事件,并且组合框是自动匹配和选择项目.如果用户点击返回键,ActionEvent则生成"comboBoxEdited" - 我可以保存所选值.太棒了;-)

如果使用鼠标打开JComboBox-PopUp并选择项目,则唯一触发的事件是"comboBoxChanged" - ActionEvent(如自动匹配或使用光标键选择项目时).鼠标点击事件以某种方式被消耗!?这就是我无法识别最终鼠标选择的原因.

我怎么能搞清楚这一点?我在SSCCE中记录了尝试监听mouseClicked-Event的失败尝试:

import java.awt.Component;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;
import org.jdesktop.swingx.autocomplete.AutoCompleteDecorator;


public class SearchForThePopUpMouseClick extends JPanel
{
  private JComboBox<String> comboBox;

  public SearchForThePopUpMouseClick()
  {
    comboBox = new JComboBox<String>(new String[] { "Anna", "Marc", "Maria", "Marten", "Peter" });
    add(comboBox);
    add(new JTextField("textfield …
Run Code Online (Sandbox Code Playgroud)

java swing autocomplete swingx jcombobox

6
推荐指数
1
解决办法
1685
查看次数