9.4 选择组件 有时候需要用户对结果进行选择,比如服务评价。 常用的选择方式有: 复选框 单选按钮 选项列表 滑块 9.4.1 复选框 有时只有一个选项,选择或不选择,比如用户协议。这
9.4 选择组件
有时候需要用户对结果进行选择,比如服务评价。
常用的选择方式有:
- 复选框
- 单选按钮
- 选项列表
- 滑块
9.4.1 复选框
有时只有一个选项,选择或不选择,比如用户协议。这时用到复选框。
创建:JCheckBox bold = new JCheckBox("Bold");
选定:bold.setSelected(true);
动作监听同按钮,使用 AcitonListener
书上例子:
import javax.swing.*;import java.awt.*;
import java.awt.event.*;
public class Main {
public static void main(String[] args) {
Main solution = new Main();
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
CheckBoxFrame frame = new CheckBoxFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
});
}
}
class CheckBoxFrame extends JFrame{
private JLabel label;
private JCheckBox bold;
private JCheckBox italic;
private static final int FONTSIZE = 12;
public CheckBoxFrame(){
setTitle("CheckBoxTest");
setSize(300,200);
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 listener = new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
int mode = 0;
if(bold.isSelected())
mode+=Font.BOLD;
if(italic.isSelected())
mode+=Font.ITALIC;
label.setFont(new Font("Serif",mode,FONTSIZE));
}
};
JPanel buttonPanel = new JPanel();
bold = new JCheckBox("Bold");
bold.addActionListener(listener);
buttonPanel.add(bold);
italic = new JCheckBox("Italic");
italic.addActionListener(listener);
buttonPanel.add(italic);
add(buttonPanel, BorderLayout.SOUTH);
}
}
9.4.2 单选按钮
有时候多个选项只能选一个,比如字体大小大中小这样的互斥选项,用户一次只能选择一个。
例子:
import javax.swing.*;import java.awt.*;
import java.awt.event.*;
public class Main {
public static void main(String[] args) {
Main solution = new Main();
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
RadilButtonFrame frame = new RadilButtonFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
});
}
}
class RadilButtonFrame extends JFrame{
private JPanel buttonPanel;
private ButtonGroup group;
private JLabel label;
private static final int SIZE = 12;
public RadilButtonFrame(){
setTitle("RadioButtonTest");
setSize(300,200);
label = new JLabel("The quick brown fox jumps over the lazy dog.");
label.setFont(new Font("Serif", Font.PLAIN, SIZE));
add(label,BorderLayout.CENTER);
buttonPanel = new JPanel();
group = new ButtonGroup();
addRadioButton("Small", 8);
addRadioButton("Medium", 12);
addRadioButton("Large", 18);
addRadioButton("Extra large", 36);
add(buttonPanel, BorderLayout.SOUTH);
}
private void addRadioButton(String name, final int size){
boolean selected = size == SIZE;
JRadioButton button = new JRadioButton(name,selected);
group.add(button);
buttonPanel.add(button);
ActionListener listener = new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
label.setFont(new Font("Serif",Font.PLAIN, size));
}
};
button.addActionListener(listener);
}
}
相关内容:选择 《Java核心技术 卷1》查找相关笔记
喜欢的话,点个赞吧~!平时做题,以及笔记内容将更新到公众号。
关注公众号,互相学习:钰娘娘知识汇总