8.JButton

效果:

点击“欢迎[W]”:

点击“日期[d]”:

点击“退出[q]”,程序结束

以上也可使用Alt+W/d/q来操作

package com.lvshitech.gui;

import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.util.Calendar;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

@SuppressWarnings("serial")
public class JButtonDemo extends JPanel implements ActionListener {
	
	JButton b1, b2, b3;
	static JLabel l1, l2;
	
	JButtonDemo() {
		l1 = new JLabel("这是一个演示按钮动作的程序", JLabel.CENTER);
		l2 = new JLabel(" ", JLabel.CENTER);
		
		b1 = new JButton("欢迎[w]");
		b1.setMnemonic(KeyEvent.VK_W);	// 设置按钮的快捷键为W,使用Alt+W选择按钮
		b1.setActionCommand("welcome");
		
		b2 = new JButton("日期[d]");
		b2.setMnemonic(KeyEvent.VK_D);	// 设置按钮的快捷键为D,使用Alt+D选择按钮
		b2.setActionCommand("data");
		
		b3 = new JButton("退出[q]");
		b3.setMnemonic(KeyEvent.VK_Q);	// 设置按钮的快捷键为Q,使用Alt+Q选择按钮
		b3.setActionCommand("quit");
		
		// 事件监听
		b1.addActionListener(this);
		b2.addActionListener(this);
		b3.addActionListener(this);
		
		// 将“按钮”组件添加到容器
		add(b1);
		add(b2);
		add(b3);
	}

	/**
	 * 用于接收操作事件的侦听器接口。
	 * 在发生操作事件时,调用该对象的 actionPerformed 方法
	 * 即在点击按钮时调用ActionListener接口的覆写方法
	 */
	@Override
	public void actionPerformed(ActionEvent e) {
		Calendar c = Calendar.getInstance();
		if (e.getActionCommand().equals("welcome")) {
			l2.setText("欢迎进入Java世界!");
		} else if (e.getActionCommand().equals("data")) {
			l2.setText("今天是:" + c.get(Calendar.YEAR) + "年"
					+ (c.get(Calendar.MONTH)+1) + "月"
					+ c.get(Calendar.DAY_OF_MONTH) + "日");
		} else {
			System.exit(0);		// 非零表示程序发生异常退出,0表示非异常退出
		}
		
		l2.setHorizontalAlignment(JLabel.CENTER);
	}

	public static void main(String[] args) {
		JFrame frame = new JFrame("使用JButton");
		Container c = frame.getContentPane();
		c.add(new JButtonDemo(), BorderLayout.SOUTH);
		c.add(l1, BorderLayout.NORTH);
		c.add(l2, BorderLayout.CENTER);
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);	// 关闭窗口时结束程序
		frame.pack();	// 根据组件的大小显示最佳窗口大小
		frame.setVisible(true);
	}
}

 

posted @ 2018-01-12 21:59  半生戎马,共话桑麻、  阅读(139)  评论(0)    收藏  举报
levels of contents