1.设计一个包含三个单选按钮,背景色分别为红色、绿色和蓝色的GUI,效果如图所示。 要求: 1) 窗体标题命名为“颜色选择器”。 2) 使用边界布局管理器BorderLayout。 3) 使用单选按钮JRadioButton组件。 4) 添加事件监听器,实现背景色分别为红色、绿色和蓝色。
时间: 2024-03-01 12:54:58 浏览: 79
好的,我来为您解答这个问题。
首先,您需要引入Java Swing包,然后可以使用如下代码实现您的需求:
```java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class ColorChooser extends JFrame implements ActionListener{
private JRadioButton redBtn;
private JRadioButton greenBtn;
private JRadioButton blueBtn;
private Container c;
public ColorChooser(){
super("颜色选择器");
c = getContentPane();
c.setLayout(new BorderLayout());
JPanel radioPanel = new JPanel();
radioPanel.setLayout(new GridLayout(1, 3));
redBtn = new JRadioButton("红色", true);
greenBtn = new JRadioButton("绿色");
blueBtn = new JRadioButton("蓝色");
ButtonGroup group = new ButtonGroup();
group.add(redBtn);
group.add(greenBtn);
group.add(blueBtn);
redBtn.addActionListener(this);
greenBtn.addActionListener(this);
blueBtn.addActionListener(this);
radioPanel.add(redBtn);
radioPanel.add(greenBtn);
radioPanel.add(blueBtn);
c.add(radioPanel, BorderLayout.NORTH);
setSize(300, 300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource() == redBtn) {
c.setBackground(Color.RED);
} else if (e.getSource() == greenBtn) {
c.setBackground(Color.GREEN);
} else if (e.getSource() == blueBtn) {
c.setBackground(Color.BLUE);
}
}
public static void main(String[] args){
new ColorChooser();
}
}
```
这段代码创建了一个继承自JFrame的窗口类ColorChooser,实现了ActionListener接口用于监听单选按钮的事件。在构造函数中,我们使用边界布局管理器BorderLayout将单选按钮放在窗口的北边,并将这三个单选按钮添加到同一个ButtonGroup中,以确保只有其中一个被选中。然后,我们使用了setSize()方法设置了窗口的大小,并使用setDefaultCloseOperation()方法设置了窗口的关闭操作。最后,我们调用setVisible()方法将窗口显示出来。
在actionPerformed()方法中,我们根据被选中的单选按钮设置窗口的背景色。
希望这个代码可以帮助到您!
阅读全文