JavaSwing图形界面编程之登陆校验码(一)
来源:互联网 发布:小米4c怎么设置4g网络 编辑:程序博客网 时间:2024/06/06 18:31
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Container;
import java.awt.Font;
import java.awt.Graphics2D;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.FocusAdapter;
import java.awt.event.FocusEvent;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.image.BufferedImage;
import java.util.Random;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
import org.omg.CORBA.PUBLIC_MEMBER;
public class CheckImage {
public static void main(String[] args) {
JFrame frm = new JFrame("图片验证");
frm.setBounds(300, 50, 300, 200);
Container c= frm.getContentPane();
final JLabel label = new JLabel(getImageJLabel());
c.add(label,BorderLayout.NORTH);
JButton button = new JButton("下一张");
button.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent arg0) {
label.setIcon(getImageJLabel());
}
});
final JTextField tfCodeField = new JTextField(20);
tfCodeField.addFocusListener(new FocusAdapter() {
@Override
public void focusLost(FocusEvent e) {
System.out.println("lost");
super.focusLost(e);
}
});
JPanel panel = new JPanel();
panel.add(button);
JButton button2 = new JButton("验证");
button2.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
String strNum = tfCodeField.getText().trim();
int num2 = Integer.valueOf(strNum);
if(num2==num){
JOptionPane.showMessageDialog(null, "验证成功");
}else{
JOptionPane.showMessageDialog(null, "验证失败");
}
}
});
panel.add(button2);
c.add(tfCodeField,BorderLayout.CENTER);
c.add(panel,BorderLayout.SOUTH);
frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frm.setVisible(true);
}
public static int num = -1;
public static Icon getImageJLabel(){
BufferedImage bufferedImage = new BufferedImage(50, 30, BufferedImage.TYPE_INT_RGB);
Graphics2D g2 = (Graphics2D) bufferedImage.getGraphics();
g2.setColor(Color.WHITE);
g2.fillRect(0, 0, 50, 30);
g2.setColor(Color.RED);
Font font = new Font("Fixedsys", Font.PLAIN, 20);
// 设置字体。
g2.setFont(font);
num = new Random().nextInt(10000);
while(num < 1000){
num = new Random().nextInt(10000);
}
g2.drawString(String.valueOf(num), 10, 20);
Icon icon = new ImageIcon(bufferedImage);
JLabel label = new JLabel(icon);
return icon;
}
}
- JavaSwing图形界面编程之登陆校验码(一)
- JavaSwing图形界面编程之JApplet(一)
- JavaSwing图形界面编程之对话框(一)
- JavaSwing图形界面编程之Image(一)
- JavaSwing图形界面编程之Line(一)
- JavaSwing图形界面编程之JButton(一)
- JavaSwing图形界面编程之JScrollBar(一)
- JavaSwing图形界面编程之ToolBar(一)
- JavaSwing图形界面编程之JSplitPane(一)
- JavaSwing图形界面编程之JTablePane(一)
- JavaSwing图形界面编程之JInternalFrame(一)
- JavaSwing图形界面编程之JPanel(一)
- JavaSwing图形界面编程之JEditPane(一)
- JavaSwing图形界面编程之JProgressBar(一)
- JavaSwing图形界面编程之JFileChooser(一)
- JavaSwing图形界面编程之BufferedImage(一)
- JavaSwing图形界面编程之JColorChooser(一)
- JavaSwing图形界面编程之JSpinner(一)
- Python Challenge(4--5关)——我的解题报告(running with python3.x)
- 更有效率的载入图片【2】
- Java foreach语句的使用
- ExtJS学习笔记(三)
- xhprof
- JavaSwing图形界面编程之登陆校验码(一)
- jquery parent和parents的区别分析
- 学编程遇到瓶颈问题
- 原来siri支持中文
- WinForm 分屏 [ WinForm | Panel | 视频监控分屏 ]
- Introduction to Oozie
- VC数据库编程 ADO常见问题
- 在vb.net 中 WithEvents 的作用
- jquery定时滑出可最小化的底部提示层特效的代码