使用两个jpanel实现
时间: 2023-07-11 07:10:59 浏览: 69
了解,下面是一个使用两个 `JPanel` 实现单选题界面的示例代码,其中一个 `JPanel` 用于显示问题和选项,另一个 `JPanel` 用于显示提交按钮,希望能够帮到您:
```java
import javax.swing.*;
public class SingleChoiceQuestionGUI extends JFrame {
private JLabel questionLabel; // 问题标签
private JRadioButton option1; // 选项1
private JRadioButton option2; // 选项2
private JRadioButton option3; // 选项3
private JRadioButton option4; // 选项4
private JButton submitButton; // 提交按钮
public SingleChoiceQuestionGUI() {
// 设置窗口标题
setTitle("单选题示例");
// 设置窗口大小
setSize(600, 400);
// 创建问题和选项的 JPanel
JPanel questionPanel = new JPanel();
questionPanel.setLayout(new BoxLayout(questionPanel, BoxLayout.PAGE_AXIS));
// 创建问题标签
questionLabel = new JLabel("以下哪个不是 Java 关键字?");
// 创建选项
option1 = new JRadioButton("A. class");
option2 = new JRadioButton("B. public");
option3 = new JRadioButton("C. interface");
option4 = new JRadioButton("D. function");
// 将选项添加到同一个 ButtonGroup 中,以保证只能选择一个
ButtonGroup group = new ButtonGroup();
group.add(option1);
group.add(option2);
group.add(option3);
group.add(option4);
// 将问题和选项添加到 questionPanel 中
questionPanel.add(questionLabel);
questionPanel.add(option1);
questionPanel.add(option2);
questionPanel.add(option3);
questionPanel.add(option4);
// 创建提交按钮的 JPanel
JPanel buttonPanel = new JPanel();
// 创建提交按钮
submitButton = new JButton("提交");
// 将提交按钮添加到 buttonPanel 中
buttonPanel.add(submitButton);
// 将 questionPanel 和 buttonPanel 添加到窗口中
add(questionPanel);
add(buttonPanel);
// 设置窗口布局
GroupLayout layout = new GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(GroupLayout.Alignment.LEADING)
.addComponent(questionPanel, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(buttonPanel, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
);
layout.setVerticalGroup(
layout.createParallelGroup(GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addComponent(questionPanel, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addPreferredGap(LayoutStyle.ComponentPlacement.RELATED)
.addComponent(buttonPanel, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
);
// 设置窗口可见性
setVisible(true);
}
public static void main(String[] args) {
// 创建单选题界面对象
SingleChoiceQuestionGUI gui = new SingleChoiceQuestionGUI();
}
}
```
在上述代码中,我们使用了两个 `JPanel` 分别来显示问题和选项,以及提交按钮。我们将两个 `JPanel` 分别添加到窗口中,通过 `GroupLayout` 布局来控制它们的显示位置和大小。同时,我们仍然使用了 `ButtonGroup` 来将多个 `JRadioButton` 组件添加到同一个分组中。您可以根据需要对代码进行修改和扩展。
阅读全文