📄 setupdialog.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 + -