在Java Swing中,a JList和a JComboBox在数据方面同步的最佳方式是什么,即在任何给定的时间点拥有相同的项目列表?基本上,如果我向其中添加项目(或从中删除项目),则另一项应自动反映更改.
我尝试过以下操作,但它似乎不起作用:
JList list = new JList();
JComboBox comboBox = new JComboBox();
DefaultListModel listModel = new DefaultListModel();
// add items to listModel...
list.setModel(listModel);
comboBox.setModel(new DefaultComboBoxModel(listModel.toArray()));
Run Code Online (Sandbox Code Playgroud) JComponents可以使用setName()和获取隐藏数据getName(),对吧?JComboBox项目怎么样?(我指的是JComboBox中的项目,而不是JComboBox本身)
如果我有一个JComboBox,和里面我的用户名(例如)的名单,现在我想根据它们的排序方式有类似的列表中的每个用户名"ID"是什么,什么是应该做的最好办法这个?
JCombobox我的代码中有一个.我添加了FocusLost event.但无论如何它并没有被解雇.我已经尝试了很多时间,但没有找到解决方案.
jcbItemType.addFocusListener(new java.awt.event.FocusAdapter() {
public void focusLost(java.awt.event.FocusEvent evt) {
jcbItemTypeFocusLost(evt);
}
});
private void jcbItemTypeFocusLost(java.awt.event.FocusEvent evt)
{
// TODO add your handling code here:
System.out.println("name=" + ((Component) evt.getSource()).getName());
System.out.println("index=" + jcbItemType.getSelectedIndex());
}
Run Code Online (Sandbox Code Playgroud)
但是在控制台中没有打印出来 请告诉我我做错了什么.
我想要一个右对齐的JComboBox.我怎样才能做到这一点?有人说"你可以设置一个渲染器到JComboBox,它可以是一个JLabel有JLabel #setHorizontalAlignment(JLabel.RIGHT)",但我不知道怎么办呢?
我在数据库中有一个包含两个字段的表
我已经使用存储在数据库中的所有名称填充了一个JComboBox"combo1".现在我希望每当用户选择"combo1"的项目时,我都能识别所选项目的"id".
但问题是名称可能在表格中重复.因此,假设一个表有3个重复的名称,那么
Q1.如何在"combo1"中显示项目,以便用户可以区分这些常用名称?
Q2.用户单击某个项目后,如果所选项目有重复项,如何识别用户点击了哪个项目?
我想控制在JComboBox中按下向下箭头按钮时打开的工作表的大小,我希望它显示更多选项这可能吗?
我目前有一个JComboBox,我用它作为音频播放列表 - 我想要实现的是每个项目右侧的一个"删除"按钮,我可以用它从底层模型中删除它,圆圈是:
实现这一目标的最佳方式是什么?
我希望JComboBox中的所有项目的按钮都相同.

我想要一个没有箭头按钮(完成)的JComboBox,它在启用时具有绿色背景,在禁用时具有灰色背景(未完成).我还为下拉列表使用了自定义渲染器(完成)
我检查了BasicComboBoxUI的源代码并试图覆盖一些方法,但没有任何反应.下拉列表始终具有灰色/蓝色背景.
这是我最近一次尝试的SSCCE.我尝试了我能想到的一切.请给我一个提示,我迷路了.
import java.awt.Color;
import java.awt.Component;
import java.awt.Graphics;
import java.awt.Rectangle;
import javax.swing.BorderFactory;
import javax.swing.DefaultComboBoxModel;
import javax.swing.DefaultListCellRenderer;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.SwingUtilities;
import javax.swing.plaf.basic.BasicComboBoxUI;
public class DropDownBackground
{
public static void main(final String[] args)
{
SwingUtilities.invokeLater(new Runnable()
{
public void run()
{
final JComboBox dropdown = new JComboBox(new DefaultComboBoxModel(new String[] { "one", "two", "three" }));
dropdown.setRenderer(new ComboBoxListCellRenderer());
dropdown.setUI(new BasicComboBoxUI()
{
@Override
public void paint(final Graphics g, final JComponent c) …Run Code Online (Sandbox Code Playgroud) 如果条件不起作用,请在下面说明如何设置JComboBox由ENUM填充的所选项目的解决方案.
public enum EbayContryEnum
{
AT (3),
AU (4),
BE (5),
CA (7),
CH (14),
DE (11),
ES (13),
FR (10),
IE (2),
IT (12),
NL (16),
UK (15),
US (1);
}
Run Code Online (Sandbox Code Playgroud)
对于前: -
if(country.equals("FR"))
{
cbImportCountry.setSelectedItem("FR");
}
Run Code Online (Sandbox Code Playgroud)
但它不起作用..
jcombobox ×10
swing ×10
java ×9
background ×1
enums ×1
focus ×1
jlist ×1
popup ×1
renderer ×1
right-align ×1