java基础:GUI基础编程(下)(五)

2014-11-24 01:34:25 · 作者: · 浏览: 3
JButton("登录(L)",imgLogin);
btnLogin.setMnemonic('L');//键盘助记符
btnLogin.setToolTipText("点击登录");//工具提示文字
btnLogin.addActionListener(this);
//"退出"按钮
Icon imgExit=new ImageIcon(address+"exit.gif");
btnExit=new JButton("退出(x)",imgExit);
btnLogin.setMnemonic('X');
btnExit.setToolTipText("退出登录");
btnExit.addActionListener(this);
//添加组件到面板
pnlMain.add(lblTitle);
pnlMain.add(lblUser);
pnlMain.add(txtUser);
pnlMain.add(lblPass);
pnlMain.add(pwdPass);
pnlMain.add(btnLogin);
pnlMain.add(btnExit);
//设置窗口属性
setSize(450,400);
setResizable(false);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void actionPerformed(ActionEvent ae){
if(ae.getSource()==btnLogin){
if(txtUser.getText().equals("admin")&&pwdPass.getText().equals("admin"))
JOptionPane.showMessageDialog(null,"欢迎登录");
else JOptionPane.showMessageDialog(null,"用户名或密码错误");
}
if(ae.getSource()==btnExit){
System.exit(0);
}
}
public static void main(String[] args) {
new ActionEventDemo();
}

}
(5)键盘事件示例程序: import java.awt.*;
import java.awt.geom.*;
import java.util.*;
import java.awt.event.*;
import javax.swing.*;

public class KeyEventDemo {
public static void main(String args[]) {
SketchFrame frame = new SketchFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}

class SketchFrame extends JFrame {
public SketchFrame() {
setTitle("键盘事件");
setSize(300, 200);
final SketchPanel panel = new SketchPanel();
final Container contentPane = getContentPane();
contentPane.add(panel);
}
}

class SketchPanel extends JPanel {
private Point2D last;
private ArrayList lines;
private static final int INCREMENT = 10;

public SketchPanel() {
last = new Point2D.Double(100, 100);// 设置开始点坐标
lines = new ArrayList();
KeyHandler listener = new KeyHandler();
addKeyListener(listener);// 注册事件监听器
setFocusable(true);
}

// 添加坐标
public void add(int dx, int dy) {
Point2D end = new Point2D.Double(last.getX()
+ dx, last.getY() + dy);// 得到终点坐标
Line2D line = new Line2D.Double(last, end);
lines.add(line);
repaint();
last = end;
}

// 画图方法
public void paintComponent(Graphics g){
super.paintComponent(g);
Graphics2D g2=(Graphics2D)g;
for(int i=0;i g2.draw((Line2D)lines.get(i));
}
}

private class KeyHandler implements KeyListener {
// 按键被按下事件
public void keyPressed(KeyEvent e) {
int keyCode = e.getKeyCode();
int d;
d = INCREMENT;
// 对小键盘方向键添加具体的事件响应
if (keyCode == KeyEvent.VK_LEFT)
add(-d, 0);
else if (keyCode == KeyEvent.VK_RIGHT)
add(d, 0);
else if (keyCode == KeyEvent.VK_UP)
add(0, -d);
else if (keyCode == KeyEvent.VK_DOWN)
add(0, d);
}

public void keyReleased(KeyEvent e) {
}

// 按键被单击事件监听
public void keyTyped(KeyEvent e) {
char keyChar = e.getKeyChar();
int d;
if (Character.isUpperCase(keyChar)) {
d = INCREMENT;
keyChar = Character.toLowerCase(keyChar);
} else
d = INCREMENT;
//为键盘“h、l、k、j“