文本或图片,也可以同时显示文本和图片。
class JLabelUse {
public JLabelUse() {
JFrame jFrame = new JFrame("标签窗口");
JPanel jPanel = new JPanel();
// 只显示文本的标签
JLabel textLabel = new JLabel("只显示文本的标签");
textLabel.setFont(new Font(null, Font.PLAIN, 25));
jPanel.add(textLabel);
// 只显示图片的标签
JLabel imgLabel = new JLabel(new ImageIcon("bj.jpg"));
jPanel.add(imgLabel);
// 同时显示文本和图片的标签:水平方向文本在图片中心
JLabel jLabel = new JLabel("显示文本", new ImageIcon("bj.jpg"), SwingConstants.CENTER);
jPanel.add(jLabel);
jFrame.setContentPane(jPanel);
// 省略公共代码
}
}
按钮
class JButtonAndRadioAndCheckBox {
public JButtonAndRadioAndCheckBox() {
JFrame jFrame = new JFrame("标签窗口");
JPanel jPanel = new JPanel();
/**
* 普通图片按钮
*/
JButton jButton = new JButton("图片按钮", new ImageIcon("bj.jpg"));
jButton.addActionListener(e -> {
System.out.println("图片按钮被点击了");
});
jPanel.add(jButton);
/**
* 单选按钮
*/
// 创建按钮组,将单选按钮添加到该组,确保只能选择其一
ButtonGroup buttonGroup = new ButtonGroup();
// 创建单选按钮
JRadioButton man = new JRadioButton("男");
JRadioButton woman = new JRadioButton("女");
// 设置第一个被选中
man.setSelected(true);
// 将按钮添加到按钮组中
buttonGroup.add(man);
buttonGroup.add(woman);
// 将按钮添加到面板中
jPanel.add(man);
jPanel.add(woman);
/**
* 多选按钮
*/
// 添加多选按钮
JCheckBox jCheckBox1 = new JCheckBox("香蕉");
JCheckBox jCheckBox2 = new JCheckBox("苹果");
JCheckBox jCheckBox3 = new JCheckBox("梨子");
JCheckBox jCheckBox4 = new JCheckBox("黄瓜");
// 添加事件监听,添加第一个复选框的状态被改变的监听(其他复选框如果需要监听状态改变,则可按此方法添加监听)
jCheckBox1.addChangeListener(e -> {
// 获取事件源(即复选框本身)
JCheckBox jCheckBox = (JCheckBox) e.getSource();
System.out.println(jCheckBox.getText() + " 是否选中: " + jCheckBox.isSelected());
});
jCheckBox1.setSelected(true);
jPanel.add(jCheckBox1);
jPanel.add(jCheckBox2);
jPanel.add(jCheckBox3);
jPanel.add(jCheckBox4);
jFrame.setContentPane(jPanel);
// 省略公共代码
}
}
列表
JComboBox,下拉框。JComboBox以下列列表的形式展示多个选项,用户可以从下拉列表中选择一个值。如果设置JComboBox为可编辑状态,除了选择指定的选项值外,还允许用户自行输入值(自行输入的值索引为-1)。
JList,列表框。JList 以列表的形式展示多个选项,允许用户选择一个或多个选项。其中的选项内容由一个 ListModel 实例来维护。JList 不实现直接滚动,需要滚动显示,可以结合 JScrollPane 实现滚动效果。
class JComboBoxAndJList {
public JComboBoxAndJList() {
JFrame jFrame = new JFrame("列表窗口");
JPanel jPanel = new JPanel();
JLabel jLabel = new JLabel("水果");
/**
* 下拉框:这里的数组列表可以使用Vector集合进行
*/
final JComboBox jComboBox = new JComboBox<>(new String[]{"香蕉", "雪梨", "苹果", "荔枝"});
// 添加条目选中状态改变的监听器
jComboBox.addItemListener(e -> {
// 只处理选中的状态
if (e.getStateChange() == ItemEvent.SELECTED) {
System.out.println("选中: " + jComboBox.getSelectedIndex() + " = " + jComboBox.getSelectedItem());
}
});
jPanel.add(jLabel);
jPanel.add(jComboBox);
/**
* 列表框
*/
final JList