java swing 如何设置jcombobox显示的默认值

2025-03-06 02:21:11
推荐回答(4个)
回答1:

  可以先定义一个默认值字符串数组,然后用字符串数组来构造JComboBox,例如:

  final String def[] = { "A", "B", "C", "D", "E" };
 JComboBox comboBox = new JComboBox(def);

  下面是一个具体的例子:

public class ComboxTest
{
    public static void main(final String args[])
    {
        JFrame frame = new JFrame("window");
        
        final String def[] =
        { "A", "B", "C", "D", "E" };        
        JComboBox comboBox = new JComboBox(def);
        
        comboBox.setMaximumRowCount(5);
        comboBox.setEditable(true);
        frame.add(comboBox, BorderLayout.NORTH);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
        frame.setVisible(true);
    }
}

回答2:

监听JComboBox的按钮,在按下时 更改数据模型

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.ComboBoxModel;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.plaf.metal.MetalComboBoxButton;

public class DateFormat01 {
public static void main(String[] args) {
String[] arr ={"--请选择内容--"};
String[] arr2 ={"11", "22", "33"};
final ComboBoxModel cbm = new DefaultComboBoxModel(arr2);
final JComboBox jcb = new JComboBox(arr);
MetalComboBoxButton mb = (MetalComboBoxButton)jcb.getComponent(0);
mb.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
System.out.println(1);
jcb.setModel(cbm);
}
});

jcb.setEditable(false);
JFrame f = new JFrame();
f.add(jcb);
f.pack();
f.setDefaultCloseOperation(3);
f.setVisible(true);
}
}

回答3:

Jcombobox中的值都有一个code和value键值的是形式显示。我们下拉看到的没个内容其实都对应一个内置的code的。那么在下拉的时候,再插入一个默认值("--请选择内容--"),并给它一个内置的code,在取你获取有效数据的时候,将这个默认code过滤掉就行了。

回答4:

下载的内容,是:{"--请选择内容--", "11", "22", "33"}

判断的时候,如果是 getSelectedIndex() ==0,说明没有选择。