在Java里用样式实现我要投票小程序的界面布局、功能操作以及菜单设计。
时间: 2024-02-09 07:09:19 浏览: 91
在 Java 中,可以使用 Swing 框架来实现界面布局、功能操作以及菜单设计。以下是一个简单的示例代码,实现了一个投票小程序的基本功能:
```java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class VoteApp extends JFrame implements ActionListener {
private JLabel titleLabel = new JLabel("投票小程序");
private JLabel questionLabel = new JLabel("你最喜欢哪种水果?");
private JRadioButton appleRadioButton = new JRadioButton("苹果");
private JRadioButton bananaRadioButton = new JRadioButton("香蕉");
private JRadioButton orangeRadioButton = new JRadioButton("橙子");
private JButton voteButton = new JButton("投票");
private JMenuBar menuBar = new JMenuBar();
private JMenu fileMenu = new JMenu("文件");
private JMenuItem exitMenuItem = new JMenuItem("退出");
public VoteApp() {
// 设置窗口标题
super("投票小程序");
// 设置窗口大小
setSize(400, 300);
// 设置窗口关闭按钮的默认操作
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 设置窗口的布局管理器为 BorderLayout
setLayout(new BorderLayout());
// 添加标题标签到窗口的北边
add(titleLabel, BorderLayout.NORTH);
// 创建投票问题面板,包含问题标签和选项按钮
JPanel questionPanel = new JPanel();
questionPanel.setLayout(new BoxLayout(questionPanel, BoxLayout.Y_AXIS));
questionPanel.add(questionLabel);
questionPanel.add(Box.createRigidArea(new Dimension(0, 10))); // 添加 10 像素的垂直间距
questionPanel.add(appleRadioButton);
questionPanel.add(bananaRadioButton);
questionPanel.add(orangeRadioButton);
// 将投票问题面板添加到窗口的中心
add(questionPanel, BorderLayout.CENTER);
// 创建投票按钮面板,包含投票按钮
JPanel votePanel = new JPanel();
votePanel.setLayout(new FlowLayout(FlowLayout.CENTER));
votePanel.add(voteButton);
// 将投票按钮面板添加到窗口的南边
add(votePanel, BorderLayout.SOUTH);
// 将选项按钮加入一个按钮组
ButtonGroup buttonGroup = new ButtonGroup();
buttonGroup.add(appleRadioButton);
buttonGroup.add(bananaRadioButton);
buttonGroup.add(orangeRadioButton);
// 注册投票按钮的点击事件监听器
voteButton.addActionListener(this);
// 创建文件菜单并添加到菜单栏
fileMenu.add(exitMenuItem);
menuBar.add(fileMenu);
// 将菜单栏添加到窗口
setJMenuBar(menuBar);
// 注册退出菜单项的点击事件监听器
exitMenuItem.addActionListener(this);
// 显示窗口
setVisible(true);
}
// 处理按钮和菜单项的点击事件
public void actionPerformed(ActionEvent e) {
if (e.getSource() == voteButton) {
// 获取选中的选项按钮
String vote = "";
if (appleRadioButton.isSelected()) {
vote = "苹果";
} else if (bananaRadioButton.isSelected()) {
vote = "香蕉";
} else if (orangeRadioButton.isSelected()) {
vote = "橙子";
}
// 弹出投票结果对话框
JOptionPane.showMessageDialog(this, "您投票给了:" + vote);
} else if (e.getSource() == exitMenuItem) {
// 退出程序
System.exit(0);
}
}
public static void main(String[] args) {
new VoteApp();
}
}
```
在这个示例代码中,我们使用了 BorderLayout 布局管理器来布局窗口的各个组件,使用了 BoxLayout 和 FlowLayout 来布局面板中的子组件。同时,我们还创建了菜单栏和菜单项,并添加了事件监听器来处理菜单项的点击事件。最后,我们使用 JOptionPane 弹出了一个投票结果对话框。
当然,这只是一个简单的示例代码,您可以根据自己的需求来实现更复杂的投票小程序。
阅读全文