java jcombobox 事件_Java Swing实战(二)下拉菜单组件JComboBox及其事件监听

本文详细介绍了如何在Java Swing应用中使用JComboBox组件,并添加事件监听器。通过示例代码展示了如何创建JComboBox,设置默认选中项,以及在下拉框选项改变时触发itemStateChanged事件进行相应操作。
摘要由CSDN通过智能技术生成

接下来给”数据源配置“面板添加下拉框。

/**

* @author: lishuai

* @date: 2018/11/26 13:51

*/

public class WeimingSyncApplets {

public static void main(String[] args) {

// 面板组件

JPanel taskPanel = new JPanel();

JPanel dbPanel = new JPanel();

JTabbedPane tabbedPane = buildJTabbedPane(taskPanel, dbPanel);

buildFrame(tabbedPane);

}

private static JTabbedPane buildJTabbedPane(JPanel taskPanel, JPanel dbPanel) {

// 选项卡面板

JTabbedPane tabbedPane = new JTabbedPane();

// 通过BorderFactory来设置边框的特性

tabbedPane.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));

tabbedPane.add("执行任务", taskPanel);

tabbedPane.add("数据源配置", dbPanel);

dbPanel.add(buildJLabel("数据库类型", 10, 20, 80, 25));

String dbs[] = {"mysql", "oracle", "sqlserver"};

dbPanel.add(buildJComboBox("mysql", "mysql", dbs, 0, 100, 20, 165, 25));

return tabbedPane;

}

private static void buildFrame(JComponent component) {

// 窗体容器

JFrame frame = new JFrame("数据同步工具");

frame.add(component);

// JFrame.EXIT_ON_CLOSE 退出

// JFrame.HIDE_ON_CLOSE 最小化隐藏

frame.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);

// 设置布局

frame.getContentPane().setLayout(new BorderLayout());

frame.getContentPane().add(BorderLayout.CENTER, component);

// 设置窗口最小尺寸

frame.setMinimumSize(new Dimension(1060, 560));

// 调整此窗口的大小,以适合其子组件的首选大小和布局

frame.pack();

// 设置窗口相对于指定组件的位置

frame.setLocationRelativeTo(null);

frame.setVisible(true);

// 设置窗口尺寸是否固定不变

frame.setResizable(true);

}

private static JComboBox buildJComboBox(Object selectedItem, String name, String[] elements, int selectedIndex, int x, int y, int width, int height) {

DefaultComboBoxModel codeTypeModel = new DefaultComboBoxModel();

// elements 下拉框中的选项

for (String element : elements) {

codeTypeModel.addElement(element);

}

JComboBox codeTypeBox = new JComboBox(codeTypeModel);

codeTypeBox.setName(name);

// 默认选中的下拉框选项

codeTypeBox.setSelectedItem(selectedItem);

// codeTypeBox.setSelectedItem(selectedIndex);

codeTypeBox.setBounds(x, y, width, height);

// 添加下拉框事件监听器

codeTypeBox.addItemListener(new ItemListener() {

@Override

public void itemStateChanged(ItemEvent e) {

if (e.getStateChange() == ItemEvent.SELECTED) {

// 选择的下拉框选项

System.out.println(e.getItem());

}

}

});

return codeTypeBox;

}

private static JLabel buildJLabel(String name, int x, int y, int width, int height) {

JLabel label = new JLabel(name);

label.setBounds(x, y, width, height);

return label;

}

}

效果如下:

08bc5d83c903ef5162eb082c84b45a3a.png

下拉框选中对象改变时,监听器监听到事件:

c313810b39bd78b945541c3bd481da21.png

内容来源于网络如有侵权请私信删除

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值