⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 votedialog.java

📁 java图形用户界面 6.1 HelloWorldSwing 6.2 按钮计数器 6.3 Swing按钮 6.4 温度转换器 6.5 HtmlDemo 6.6 投票器 6.7 TextS
💻 JAVA
字号:
import javax.swing.*;import java.awt.*;import java.awt.event.*;public class VoteDialog extends JPanel {    JLabel label;    JFrame frame;    String simpleDialogDesc = "候选人";    //构造函数    public VoteDialog(JFrame frame) {        this.frame = frame;        JLabel title;        // 创建组件        JPanel choicePanel = createSimpleDialogBox();            System.out.println("passed createSimpleDialogBox");        title = new JLabel("请您首先选择一个候选人,然后"                           + "单击\"投票\" 按钮",                           JLabel.CENTER);        label = new JLabel("现在投票!", JLabel.CENTER);	label.setBorder(BorderFactory.createEmptyBorder(10,10,10,10));        choicePanel.setBorder(BorderFactory.createEmptyBorder(20,20,5,20));        // 设置布局        setLayout(new BorderLayout());        add(title, BorderLayout.NORTH);          add(label, BorderLayout.SOUTH);                add(choicePanel, BorderLayout.CENTER);    }    void setLabel(String newText) {        label.setText(newText);    }    private JPanel createSimpleDialogBox() {        final int numButtons = 4;        JRadioButton[] radioButtons = new JRadioButton[numButtons];        final ButtonGroup group = new ButtonGroup();        JButton voteButton = null;        final String defaultMessageCommand = "default";        final String yesNoCommand = "yesno";        final String yeahNahCommand = "yeahnah";        final String yncCommand = "ync";        radioButtons[0] = new JRadioButton("<html>1号候选人:<font color=red>小王</font></html>");        radioButtons[0].setActionCommand(defaultMessageCommand);        radioButtons[1] = new JRadioButton("<html>2号候选人:<font color=green>小张</font></html>");        radioButtons[1].setActionCommand(yesNoCommand);        radioButtons[2] = new JRadioButton("<html>3号候选人:<font color=blue>小李</font></html>");        radioButtons[2].setActionCommand(yeahNahCommand);        radioButtons[3] = new JRadioButton("<html>4号候选人:<font color=maroon>小刘</font></html>");        radioButtons[3].setActionCommand(yncCommand);        for (int i = 0; i < numButtons; i++) {            group.add(radioButtons[i]);        }        // 设置默认:选择第一个按钮        radioButtons[0].setSelected(true);        voteButton = new JButton("投票");        voteButton.addActionListener(new ActionListener() {            public void actionPerformed(ActionEvent e) {                String command = group.getSelection().getActionCommand();                // ok 对话框                if (command == defaultMessageCommand) {                    JOptionPane.showMessageDialog(frame,                                "该候选人是坏蛋,投票无效!");                // yes/no 对话框                } else if (command == yesNoCommand) {                    int n = JOptionPane.showConfirmDialog(                            frame, "该候选人是一个傀儡 \n您还坚持给她投票吗?",                            "确认信息;",                            JOptionPane.YES_NO_OPTION);                    if (n == JOptionPane.YES_OPTION) {                        setLabel("好的,请注意您的收入。");                    } else if (n == JOptionPane.NO_OPTION) {                        setLabel("哇塞!选的好。");                    } else {                        setLabel("投票是您神圣的职责!");                    }                // yes/no 对话框(自定义)                } else if (command == yeahNahCommand) {                    Object[] options = {"是的,我投票", "不,我不投票"};                    int n = JOptionPane.showOptionDialog(frame,                                    "该候选人已经逝世,\n您还坚持投他一票吗?",                                    "确认信息:",                                    JOptionPane.YES_NO_OPTION,                                    JOptionPane.QUESTION_MESSAGE,                                    null,                                    options,                                    options[0]);                    if (n == JOptionPane.YES_OPTION) {                        setLabel("我希望您不要对这个候选人有过多的指望。");                    } else if (n == JOptionPane.NO_OPTION) {                        setLabel("哇塞!选的好!");                    } else {                        setLabel("投票是您神圣的职责!");                    }                // yes/no/cancel 对话框(自定义)                } else if (command == yncCommand) {                    Object[] options = {"是的!",                                        "不,我要弃权",                                        "让我想一想"};                    int n = JOptionPane.showOptionDialog(frame,                                    "小刘不想参加,您还"                                    + "坚持投他一票吗?",                                    "确认信息:",                                    JOptionPane.YES_NO_CANCEL_OPTION,                                    JOptionPane.QUESTION_MESSAGE,                                    null,                                    options,                                    options[2]);                    if (n == JOptionPane.YES_OPTION) {                        setLabel("优秀的选票。");                    } else if (n == JOptionPane.NO_OPTION) {                        setLabel("不管怎么说,这是您的选择。");                    } else if (n == JOptionPane.CANCEL_OPTION) {                        setLabel("我当然不能强迫您投票。");                    } else {                        setLabel("投票是您神圣的职责!");                    }                }                return;            }        });	System.out.println("calling createPane");        return createPane(simpleDialogDesc + ":",                          radioButtons,                           voteButton);                        }        private JPanel createPane(String description,                              JRadioButton[] radioButtons,                              JButton showButton) {        int numChoices = radioButtons.length;        JPanel box = new JPanel();        JLabel label = new JLabel(description);        box.setLayout(new BoxLayout(box, BoxLayout.Y_AXIS));        box.add(label);        for (int i = 0; i < numChoices; i++) {            box.add(radioButtons[i]);        }        JPanel pane = new JPanel();        pane.setLayout(new BorderLayout());        pane.add(box, BorderLayout.NORTH);        pane.add(showButton, BorderLayout.SOUTH);        System.out.println("returning pane");        return pane;    }    public static void main(String[] args) {        JFrame frame = new JFrame("投票对话框");        Container contentPane = frame.getContentPane();        contentPane.setLayout(new GridLayout(1,1));        contentPane.add(new VoteDialog(frame));        // 当关闭窗口时,退出        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);         frame.pack();        frame.setVisible(true);    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -