`

swing学习笔记三(菜单快捷MenuBar )

 
阅读更多

/**
* 菜单快捷键
*
* @time 12:40:40 PM
* @author retacn yue
* @Email zhenhuayue@sina.com
*/
public class Test_ShortcutTest extends Frame {


private static final long serialVersionUID = 1L;


double a, d, n, sum;
// 参数用于指定列数
TextField textField1 = new TextField(5),//
textField2 = new TextField(5),//
textField3 = new TextField(5),//
textField4 = new TextField(10);//
Label label1 = new Label("******计算等差/等比级数********"),//
label2 = new Label("输入初始值:"),//
label3 = new Label("输入公差/公比值:"),//
label4 = new Label("输出第几项"),//
label5 = new Label("输出总和:");//


/**
* 菜单快捷键
*
* 第二个参数是否需要同时按下shift键
*/


MenuShortcut menuShortcut1 = new MenuShortcut(KeyEvent.VK_A, true),//
menuShortcut2 = new MenuShortcut(KeyEvent.VK_S, false);


// 菜单栏
MenuBar bar = new MenuBar();
Menu menu = new Menu("级数");
MenuItem sz1 = new MenuItem("等差级数", menuShortcut1),//
sz2 = new MenuItem("等比级数", menuShortcut2);//


/**
* 构造器
*/
private Test_ShortcutTest() {
super("菜单快捷键测试");
setLayout(new FlowLayout());
setBackground(Color.orange);


menu.add(sz1);
menu.add(sz2);
bar.add(menu);
setMenuBar(bar);


add(label1);
add(label2);
add(textField1);
add(label3);
add(textField2);
add(label4);
add(textField3);
add(label5);
add(textField4);


setSize(200, 180);
setVisible(true);


addWindowListener(new koWindowListener());
sz1.addActionListener(new koActionListener());
sz2.addActionListener(new koActionListener());


}


/**
* 关闭窗体
*
* @time 1:22:40 PM
* @author retacn yue
* @Email zhenhuayue@sina.com
*/
class koWindowListener extends WindowAdapter {


@Override
public void windowClosing(WindowEvent e) {
e.getWindow().dispose();
System.exit(0);
}
}


/**
* 菜单单击监听
*
*/
class koActionListener implements ActionListener {


public void actionPerformed(ActionEvent e) {
a = new Double(textField1.getText()).doubleValue();
d = new Double(textField2.getText()).doubleValue();
n = new Double(textField3.getText()).doubleValue();


if (e.getSource() == sz1) {
textField4.setBackground(Color.yellow);
// 计算等差级数的总和
// 公式为:s=(a1+an)n/2
sum = (2 * a + (n - 1) * d) * n / 2;
} else if (e.getSource() == sz2) {
textField4.setBackground(Color.green);
/**
* 计算等比级数的总和
*
* 设比例因子为q 项数为n 首项为a1 和s=a1*(1-q^n)/(1-q)
*/
sum = a * (1 - Math.pow(d, n)) / (1 - d);
}
textField4.setText(String.valueOf(sum));
}
}


public static void main(String[] args) {
new Test_ShortcutTest();
}


}

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics