📄 9.21-checkboxdemo.java
字号:
// CheckBoxDemo.java: Use check boxes to select one or more choices
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.Color;
import java.awt.Font;
import java.awt.event.*;
import javax.swing.*;
public class CheckBoxDemo extends JFrame implements ItemListener
{
// Declare check boxes
private JCheckBox jchkCentered, jchkBold, jchkItalic;
// Declare a panel for displaying message
private MessagePanel messagePanel;
// Main method
public static void main(String[] args)
{
CheckBoxDemo frame = new CheckBoxDemo();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setVisible(true);
}
// Constructor
public CheckBoxDemo()
{
setTitle("Check Box Demo");
// Create the message panel
messagePanel = new MessagePanel();
messagePanel.setMessage("Welcome to Java!");
messagePanel.setBackground(Color.yellow);
// Put three check boxes in panel p
JPanel p = new JPanel();
p.setLayout(new FlowLayout());
p.add(jchkCentered = new JCheckBox("Centered"));
p.add(jchkBold = new JCheckBox("Bold"));
p.add(jchkItalic = new JCheckBox("Italic"));
// Set keyboard mnemonics
jchkCentered.setMnemonic('C');
jchkBold.setMnemonic('B');
jchkItalic.setMnemonic('I');
// Place messagePanel and p in the frame
getContentPane().setLayout(new BorderLayout());
getContentPane().add(messagePanel, BorderLayout.CENTER);
getContentPane().add(p, BorderLayout.SOUTH);
// Register listeners on jchkCentered, jchkBold, and jchkItalic
jchkCentered.addItemListener(this);
jchkBold.addItemListener(this);
jchkItalic.addItemListener(this);
}
// Handle check box selection
public void itemStateChanged(ItemEvent e)
{
if (e.getSource() instanceof JCheckBox)
{
// Determine a font style
int selectedStyle = 0;
if (jchkBold.isSelected())
selectedStyle = selectedStyle+Font.BOLD;
if (jchkItalic.isSelected())
selectedStyle = selectedStyle+Font.ITALIC;
// Set font for the message
messagePanel.setFont(new Font("Serif", selectedStyle, 20));
if (jchkCentered.isSelected())
messagePanel.setCentered(true);
else
messagePanel.setCentered(false);
// Make sure the message is repainted
messagePanel.repaint();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -