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

📄 setupdialog.java

📁 Java程序设计大学教程程序源代码
💻 JAVA
字号:
/* * SetUpDialog.java * 参见教程275页 示例程序9-7 * Created on 2005年7月22日, 上午9:08 * SetUpPanel.java * * Created on 2005年7月1日, 下午8:35 */package jbookch9;import javax.swing.*;import javax.swing.border.*;import java.awt.*;import java.awt.event.*;import javax.swing.event.*;public class SetUpDialog  extends JDialog implements ActionListener {        /** SetUpDialog构造函数 */    public SetUpDialog(JFrame frame) {        super(frame,"设置",true); //true 代表为有模态对话框        display.setText("\n当前设置:\n \t英汉测试\t 随机选择单词");        group.setText("  0  ");        indexPanel.add(groupLabel);        indexPanel.add(group);        submit.addActionListener(this);        buttonPanel.add(submit);        initModes();        initOptions();        //主面板的BorderLayout布局        mainPanel.setLayout(new BorderLayout(0,0));        mainPanel.add( display,"North");        mainPanel.add(optionPanel,"West");        mainPanel.add(modePanel,"East");        mainPanel.add( buttonPanel,"South");        mainPanel.add( indexPanel,"Center");                getRootPane().setDefaultButton(submit);        setContentPane(mainPanel);        setSize(280,240);            }        private void initModes() {        //设置边框        modePanel.setBorder(BorderFactory.createTitledBorder("方式"));        //设置布局        modePanel.setLayout(new BoxLayout(modePanel, BoxLayout.Y_AXIS));        //添加单选按钮        for (int k = 0; k < modes.length; k++) {            modes[k] = new JRadioButton(modeLabels[k]);            //监听方式变化事件            modes[k].addItemListener(new ItemListener() {                public void itemStateChanged(ItemEvent e) {                    modChanged();                }            });            modePanel.add(modes[k]);            choGroup.add(modes[k]);        }        //设置缺省选项        modes[0].setSelected(true);        modePanel.add(indexPanel);    }        private void initOptions() {        //设置边框        optionPanel.setBorder(BorderFactory.createTitledBorder("选项"));        //设置布局        optionPanel.setLayout(new BoxLayout(optionPanel, BoxLayout.Y_AXIS));        //添加单选按钮组        for (int k = 0; k < options.length; k++) {            options[k] = new JRadioButton(optionLabels[k]);            //监听选项变化事件            options[k].addItemListener( new ItemListener() {                public void itemStateChanged(ItemEvent e) {                    optChanged();                }            });            optionPanel.add(options[k]);            optGroup.add(options[k]);        }        //设置缺省选项        options[0].setSelected(true);    }        public void optChanged() {        for (int k = 0; k < options.length; k++ ){            if (options[k].isSelected()){                display.setText("\n  选项:\t" + options[k].getText()+"\n" );                option=k;            }        }    }        public void modChanged() {        if (modes[0].isSelected() ){            display.setText("方式:\n 随机方式在词库中随机挑选50个单词作为一组。\n 随机方式用于测试单词综合掌握情况。");            mode=0;        } else{            display.setText("方式:\n 顺序方式将词库中"+groupCount+"组单词按照字母顺序排列。\n选择顺序方式,需输入组号。组号为0-"+(groupCount-1)+"。");            mode=1;        }    }        public void  setCount(int n){        groupCount=n;    }        public int  getIndex(){        return groupIndex;    }        public int  getMode(){        return mode;    }    public int  getOption(){        return option;    }        public void actionPerformed(ActionEvent e){        int n=0;        try {            n=Integer.parseInt(group.getText().trim());//文本转化为整数        } catch (NumberFormatException ex) {            group.setText("  0  " );            int selection=JOptionPane.showConfirmDialog(this,                    "组号只能输入整数,请重输!","操作提示",JOptionPane.DEFAULT_OPTION, JOptionPane.ERROR_MESSAGE);        }                if ( modes[0].isSelected() ) {            this.setVisible(false);            return;        }        if ((n>=0) && (n<groupCount)){            groupIndex=n;            this.setVisible(false);        } else{            group.setText("  0  " );            int selection=JOptionPane.showConfirmDialog(this,                    "组号输入错!","操作提示",JOptionPane.DEFAULT_OPTION, JOptionPane.ERROR_MESSAGE);            groupIndex=0;        }    }        private JPanel mainPanel = new JPanel(),            indexPanel = new JPanel(),            modePanel = new JPanel(),            optionPanel = new JPanel(),            buttonPanel = new JPanel();    private int groupCount,groupIndex,option,mode;    private ButtonGroup optGroup = new ButtonGroup();    private ButtonGroup choGroup = new ButtonGroup();    private JRadioButton modes[] = new JRadioButton[2];    private JRadioButton options[] = new JRadioButton[2];    private String modeLabels[] =   {"随机选择单词", "顺序选择单词"};    private String optionLabels[] = {"英汉测试", "汉英测试"};    private JTextArea display = new JTextArea();    private JLabel groupLabel = new  JLabel("输入组号");    private JTextField group = new JTextField();    private JButton submit = new JButton("确定");    }

⌨️ 快捷键说明

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