JComboBox用法
JComboBox是Swing中的下拉菜单控件。它永远只能选中一个项目,然而比单选按钮节省空间。如果使用setEditable设置为true则内部选项的文本可以编辑,因此这种组件被称为组合框。注意,对选项的编辑只会影响当前项,而不会改变列表内容。可以使用addItem方法来添加选项列表,或者使用insertItemAt在任何位置插入选项;然而如果有大量选项需要添加,这种方法是非常笨重的,可以先构造一个DefaultComboBoxModel,,使用addElement加载选项,最后在调用JComboBox的setModel方法。
常用方法如下:
示例代码:
JComboBoxDemo.java
import java.awt.BorderLayout;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class JComboBoxDemo extends JFrame{
/**
* source code from 《java核心技术 卷1 基础知识》 P336
*/
private static final long serialVersionUID = -8161981948004677531L;
int DEFAULT_WIDTH = 600;
int DEFAULT_HEIGHT = 400;
private JLabel label;
private JComboBox<String> faceCombo;
private static final int FONTSIZE = 12;
public JComboBoxDemo(){
setTitle("JComboBoxDemo");
setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT);
//添加label
label = new JLabel("The quick brown fox jumps over the lazy dog.");
label.setFont(new Font("Serif",Font.PLAIN, FONTSIZE));
add(label, BorderLayout.CENTER);
//构造一个监听器,响应事件
ActionListener actionListener = new ActionListener(){
public void actionPerformed(ActionEvent e) {
if(e.getSource() instanceof JComboBox){
JComboBox<String> comboBox = (JComboBox)e.getSource();
String fontName = comboBox.getSelectedItem().toString();
label.setFont(new Font(fontName, Font.PLAIN, FONTSIZE));
}
}
};
//添加一个JComboBox
faceCombo = new JComboBox<String>();
faceCombo.setEditable(true);
faceCombo.addActionListener(actionListener);
faceCombo.setEnabled(true);
faceCombo.addItem("Serif");
faceCombo.addItem("SansSerif");
faceCombo.addItem("Monospaced");
faceCombo.addItem("Dialog");
faceCombo.addItem("DialogInput");
add(faceCombo, BorderLayout.SOUTH);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
//创建窗体并指定标题
JComboBoxDemo frame = new JComboBoxDemo();
//关闭窗体后退出程序
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//自动适配所有控件大小
//frame.pack();
//设置窗体位置在屏幕中央
frame.setLocationRelativeTo(null);
//显示窗体
frame.setVisible(true);
}
}
运行效果:
Swing-JComboBox用法-入门
温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/69898.html