1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > java的Swing组件模拟qq登录界面

java的Swing组件模拟qq登录界面

时间:2018-11-14 11:00:27

相关推荐

java的Swing组件模拟qq登录界面

代码来自传智播客第二版(java)图片可根据自己喜好下载相关图片,建议将图片放到工作空间的目录下面,这样就可以直接获取图片,例如以这个格式“xxx.jpg”,xxx图片名,jpg格式,由于时间仓促,做出来的效果有点不堪入目哈哈。

登录账号123456789密码123

CreatePanel.java

import java.awt.*;import javax.swing.*;public class CreatePanel {private static LoginListener ll=null;//顶部面板区域public static JPanel CreateNorthPanel (JFrame jf) {//创建一个JPanel顶部面板JPanel panel=new JPanel();//取消面板内默认布局panel.setLayout(null);//设置顶部面板尺寸panel.setPreferredSize(new Dimension(0,140));//1.1向顶部面板添加背景照片ImageIcon image=new ImageIcon("back.jpg");JLabel background=new JLabel(image);//设置背景照片的位置及尺寸background.setBounds(0,0,426,image.getIconHeight());panel.add(background);//1.2在顶部JPanel面板右上角添加一个退出按钮JButton out=new JButton(new ImageIcon("java.jpg"));out.setBounds(403,0,26,26);//设置鼠标移动到退出按钮时更改图片out.setRolloverIcon(new ImageIcon("close.jpg"));//取消按钮边框效果out.setBorderPainted(false);out.addActionListener(event->jf.dispose());panel.add(out);return panel;}//左侧面板区域public static JPanel CreateWestPanel() {//2.创建一个JPanel左侧面板JPanel panel=new JPanel();panel.setLayout(null);panel.setPreferredSize(new Dimension(130,0));//向左侧面板添加背景照片ImageIcon image=new ImageIcon("qq.jpg");JLabel background=new JLabel(image);background.setBounds(0,0,120,110);panel.add(background);return panel; }//中部面板区域public static JPanel CreateCenterPanel(JFrame jf) {//3.创建一个JPanel中部面板JPanel panel=new JPanel();panel.setLayout(null);//3.1创建一个JcomboBox下拉框组件,并初始化qq账号String str[]= {"123456789","987654321","1314520888"};JComboBox<Object>jcoCenter=new JComboBox<Object>(str);panel.add(jcoCenter);//设置下拉框可编辑jcoCenter.setEditable(true);jcoCenter.setBounds(0,15,175,30);//设置下拉框内容字体jcoCenter.setFont(new Font("Calibri",0,13));//3.2创建一个JPasswordField密码框组件JPasswordField jPaCenter=new JPasswordField();//设置密码框面板为FlowLayout布局jPaCenter.setLayout(new FlowLayout(FlowLayout.RIGHT,0,0));jPaCenter.setBounds(0,44,175,30);jPaCenter.setPreferredSize(new Dimension(185,25));panel.add(jPaCenter);//3,3创建ImageIcon小键盘图标组件,并加入到密码框组件中ImageIcon image=new ImageIcon("keyboard.jpg");JButton jbu=new JButton(image);jbu.setPreferredSize(new Dimension(22,20));jbu.setBorderPainted(false);jPaCenter.add(jbu);//3.4创建两个JCheckBox多选框组件JCheckBox jch1=new JCheckBox("记住密码");//设置选中时不显示边框jch1.setFocusPainted(false);jch1.setFont(new Font("宋体",0,13));jch1.setBounds(100,85,80,20);panel.add(jch1);JCheckBox jch2=new JCheckBox("自动登录");jch2.setFocusPainted(false);jch2.setFont(new Font("宋体",0,12));jch2.setBounds(100,85,80,20);panel.add(jch2);ll=new LoginListener(jcoCenter,jPaCenter,jf);return panel;}//右侧面板区域public static JPanel createEastPanel() {//4.创建一个JPanel右侧面板JPanel panel=new JPanel();panel.setLayout(null);panel.setPreferredSize(new Dimension(100,0));//创建两个JLable标签组件JLabel regist=new JLabel("注册账号");regist.setForeground(new Color(100,149,238));regist.setBounds(0,13,60,30);regist.setFont(new Font("宋体",0,12));JLabel regetpwd=new JLabel("找回密码");regist.setForeground(new Color(100,149,238));regist.setBounds(0,43,60,30);regist.setFont(new Font("宋体",0,12));panel.add(regist);panel.add(regetpwd);return panel; }//底部面板区域public static JPanel CreateSouthPanel() {//6.创建一个JPanel底部面板JPanel panel=new JPanel();panel.setPreferredSize(new Dimension(0,51));panel.setLayout(null);//6.1创建左下角多人登陆图标组件JButton jble=new JButton(new ImageIcon("single.jpg"));jble.setPreferredSize(new Dimension(40,40));jble.setFocusPainted(false);jble.setRolloverIcon(new ImageIcon("single.jpg"));jble.setBorderPainted(false);//设置不显示按钮区域jble.setContentAreaFilled(false);jble.setBounds(0,10,40,40);jble.setToolTipText("多账号登录");//6.2创建底部中间登录图标组件ImageIcon image=new ImageIcon("login.jpg");JButton jb=new JButton("登 录",image);//jb.setFont(new Font("宋体",0,13));jb.setBounds(130,0,175,40);//将文字放在图片中间jb.setHorizontalTextPosition(SwingConstants.CENTER);jb.setFocusPainted(false);jb.setContentAreaFilled(false);jb.setBorderPainted(false);jb.setRolloverIcon(new ImageIcon("login.jpg"));jb.addActionListener(ll);//6.3创建右下角二维码登录图标组件JButton jbri=new JButton(new ImageIcon("right.jpg"));jbri.setBounds(380,10,40,40);jbri.setFocusPainted(false);jbri.setBorderPainted(false);jbri.setContentAreaFilled(false);jbri.setRolloverIcon(new ImageIcon("right.jpg"));jbri.setToolTipText("二维码登录");//将底部3个组件添加到底部JPanel面板中panel.add(jble);panel.add(jb);panel.add(jbri);return panel;}}

QQLogin.java

import java.awt.*;import javax.swing.*;public class QQLogin extends JFrame{private static JFrame jf=new JFrame();public static void initLogin() {jf.setSize(426,300);//设置窗口尺寸jf.setLocation(497,242);//设置窗口在屏幕显示位置jf.setUndecorated(true);//设置JFrame窗口边框不显示jf.setResizable(false);//禁止改变窗口大小//2.根据QQ登录界面效果,进行布局分配BorderLayout border_layout=new BorderLayout();jf.setLayout(border_layout);//2.1创建并加入顶部面板JPanel panel_north=CreatePanel.CreateNorthPanel(jf);jf.add(panel_north,BorderLayout.PAGE_START);//2.2创建并加入中部面板JPanel panel_center=CreatePanel.CreateCenterPanel(jf);jf.add(panel_center,BorderLayout.CENTER);//2.3创建并加入左侧面板JPanel panel_west=CreatePanel.CreateWestPanel();jf.add(panel_west,BorderLayout.LINE_START);//2.4创建并加入底部面板JPanel panel_south=CreatePanel.CreateSouthPanel();jf.add(panel_south,BorderLayout.PAGE_END);//2.5创建并加入右侧面板JPanel panel_east=CreatePanel.createEastPanel();jf.add(panel_east,BorderLayout.LINE_END);jf.setVisible(true); //设置窗口可见}public static void main(String[] args) {//使用SwingUtilities工具类调用createAndShowGUI()方法并显示GUI程序SwingUtilities.invokeLater(QQLogin::initLogin);}}

LoginListener.java

import java.awt.*;import java.awt.event.*;import javax.swing.*;public class LoginListener implements ActionListener{private JComboBox<Object>jco;//用来获取QQ账号的对象private JPasswordField jpa;//用来获取QQ密码的对象private JFrame jf;LoginListener(JComboBox<Object>jco,JPasswordField jpa,JFrame jf) {super();this.jco=jco;this.jpa=jpa;this.jf=jf;}//为登录动作监听事件执行处理public void actionPerformed(ActionEvent e) {//1.获取登陆的账号和密码String name=(String)jco.getSelectedItem();String pwd=new String(jpa.getPassword());//2.判断输入的账号和密码是否正确if(name.equals("123456789")&&pwd.equals("123")) {//账号正确,先关闭当前JFrame登录窗口jf.dispose();//模拟显示登陆成功后的QQ窗口JFrame jfn=new JFrame();jfn.setSize(289,687);jfn.setLocation(800,100);jfn.setUndecorated(true);jfn.setResizable(true);jfn.setVisible(true);//为QQ显示窗口添加背景图片和退出按钮组件JPanel panel=new JPanel();panel.setLayout(null);panel.setPreferredSize(new Dimension(0,140));ImageIcon image=new ImageIcon("success.jpg");JLabel background=new JLabel(image);background.setBounds(0,0,289,687);panel.add(background);//添加退出按钮JButton out=new JButton(new ImageIcon("close.jpg"));out.setBounds(265,0,26,26);out.setRolloverIcon(new ImageIcon("close.jpg"));out.setBorderPainted(false);panel.add(out);jfn.add(panel);//为退出按钮注册监听器,关闭当前窗口out.addActionListener(event->jfn.dispose());}else {//QQ账号或密码输入错误,弹出提示信息JOptionPane.showMessageDialog(null, "你输入的账户名或密码不正确,请重新输入!");}}}

效果

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。