第十二周课程总结
第十二周课程总结
登录界面:
package 登录界面; import java.awt.Font; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPasswordField; import javax.swing.JTextField; public class LoginWindows implements ActionListener { JFrame frame; JLabel lblUser,lblPsw; JTextField tfUser; JPasswordField pfUser; JButton btnLogin,btnReset; JTextField UserText; JLabel lblResult; JPasswordField PswText; public LoginWindows(){ frame=new JFrame("登录窗口"); lblUser=new JLabel("用户名"); lblPsw=new JLabel("密码"); tfUser=new JTextField(); pfUser=new JPasswordField(); btnLogin=new JButton("登录"); btnReset=new JButton("重置"); lblResult = new JLabel("用户登录系统"); UserText=new JTextField(); PswText=new JPasswordField(); Font fnt=new Font("Serief",Font.BOLD,12); frame.setFont(fnt); btnReset.addActionListener(this); btnReset.addActionListener(this); frame.setLayout(null); lblUser.setBounds(10,10,40,30); lblPsw.setBounds(10,50,40,30); tfUser.setBounds(60,10,100,30); pfUser.setBounds(60,50,100,30); btnLogin.setBounds(40,90,60,30); btnReset.setBounds(120,90,60,30); lblResult.setBounds(50,140,200,30); frame.add(lblUser); frame.add(lblPsw); frame.add(tfUser); frame.add(pfUser); frame.add(btnLogin); frame.add(btnReset); frame.add(lblResult); frame.add(btnLogin); frame.add(btnReset); frame.add(UserText); frame.add(PswText); frame.setSize(300,150); frame.setVisible(true); } public void actionPerformed(ActionEvent arg0) { if(arg0.getSource()==btnLogin){ String tname = UserText.getText(); String tpass = new String(PswText.getPassword()); if(tname.equals("gonghan")&&tpass.equals("123456")){ lblResult.setText("登录成功,欢迎光临!"); }else{ lblResult.setText("登录失败,用户名或密码错误!"); } } if(arg0.getSource()==btnReset){ UserText.setText(""); PswText.setText(""); lblResult.setText("用户登录系统!"); } } }
package 登录界面; public class text { public static void main(String[] args){ new LoginWindows(); } }
实验结果:
还无法实现登陆账号密码成功的判定。
学习总结:
本周主要学习了其他容器和事件处理
1.JPanel
可以将多个组件加入到JPanel中以实现复杂的排列,一个界面只可以有一个JFrame窗体组件,但是可以有多个JPanel面板组件,而JPanel上也可以使用FlowLayout,BorderLayout,GridLayout等各种布局管理器,这样可以组合使用,达到较为复杂的布局效果。
2.JSplitPane
JSplitPane用来将窗口分割成两个部分。JSplitPane提供两个常数让你设置到底是要垂直分割还是水平分割。这两个常数分别是:HORIZONTAL_SPIT,VERTICAL_SPLIT
3.JTabbedPane
JTabbedPane创建的选项卡可以通过单击标题或者图标在选项卡之间进行切换。
4.JScrollPane
主要功能是为显示的内容加入水平滚动条。
5.文本组件:
单行文本输入框:JTextField
密码文本输入框:JPasswordField
多文本输入组件:JTextArea
6.窗体事件(WindowListener)常用接口方法voidwindowActivated/windowDeactivated(WindowEvent e) //将窗口变为活动/不活动窗口时触发voidwindowClosed/Closing/Iconified(WindoowEvent e)//当窗口被关闭时/正在关闭/最小化时触发3.监听适配器Adapter:用户继承该类后就可以根据自己的需要来覆写方法,就不需要覆写接口里的所有抽象方法了。4.动作事件及监听处理ActionListener:处理按钮的动作事件,让按钮变得更加有意义。voidactionPerFormed(ActionEvent e)//发生操作时调用
7.监听适配器:
监听接口中有很多抽象方法,在实现接口的时候,需要重写所有的方法,但经常只会用到其中的一个或两个,这无疑是一种多余。于是出于简化的目的,每个还有多个方法的的监听器接口都配有一个适配器类,这个类实现了接口中的所有方法,但是每个方法没有做任何事情。通过继承适配器类,重写其中的需要使用的方法,不必重写全部的方法,简单方便。