问答题

本程序的功能是通过单选按钮来控制面板的边框显示风格。窗口中有6个单选按钮,分别代表不同的边框显示的风格,选中任意一个按钮,边框的风格变显示为选中按钮所对应的风格,如图所示。


import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;
public class exam_29
{
public static void main(String[] args)
{
BorderFrame frame=new BorderFrame();
frame.setDefaultClcseOperation(JFrame.EXIT_ON_CLOSE);
frame.show();
}
}
class BorderFrame extends JFrame
{
public BorderFrame()
{
setTitle("exam_29");
setSize(WIDTH, HEIGHT);
Container contentPane=getContentPane();
buttonPanel=new JPanel();
group=new ButtonGroup();
addRadioButton("低斜面边界",
BorderFactory.createLoweredBevelBorder());
addRadioButton("凸斜面边界",
BorderFactory.createRaisedBevelBorder());
addRadioButton("蚀刻边界",
BorderFactory.createEtchedBorder());
addRadioButton("直线边界",
BorderFactory.createLineBorder(Color.blue));
addRadioButton("不光滑边界",
BorderFactory.createMatteBorder(5, 5, 5, 5, Color.yellow));
addRadioButton("空边界",
BorderFactory.createEmptyBorder());
Border border=BorderFactory.createEmptyBorder();
Border titled=BorderFactory.createTitledBorder
(border, "Border types");
buttonPanel.setBorder(______);
contentPane.add(buttonPanel);
}
public void addRadioButton(String buttonName, final Border b)
{
JRadioButton button=new JRadioButton(buttonName);
button.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent event)
{
Border titled=BorderFactory.createTitledBorder
(b, "Border types");
buttonPanel.setBorder(titled);
______;
}
});
group.add(button);
buttonPanel.add(button);
}
public static final int WIDTH=600;
public static final int HEIGHT=200;
private JPanel buttonPanel;
private ButtonGroup group;
}

【参考答案】

第1处:titled
第2处:validate()