java界⾯——可视化窗⼝⼊门级JAVA界⾯
⽬标:我们需要⾃⼰创建⼀个类似QQ登录的界⾯,出现类似界⾯然后实现基本功能。
写⼀个窗体:
public class Login {
public static void main(String[] args) {
Login lo = new Login();
lo.showUI();
}
public void showUI(){
//窗体类
javax.swing.JFrame jf = new javax.swing.JFrame();
/
/窗体名称
jf.setTitle("QQ登陆界⾯");
//窗体⼤⼩(具体值跟电脑显⽰器的像素有关,可调整到合适⼤⼩)
jf.setSize(400, 500);
//设置退出进程的⽅法
jf.setDefaultCloseOperation(3);
//设置居中显⽰⽤3
jf.setLocationRelativeTo(null);
//流式布局管理器
java.awt.FlowLayout flow = new java.awt.FlowLayout();
jf.setLayout(flow); //给窗体设置为流式布局——从左到右然后从上到下排列⾃⼰写的组件顺序
/
/图⽚,冒号⾥是你存图⽚的地址
javax.swing.ImageIcon icon = new javax.swing.ImageIcon("D:\\Picture\\01.jpg");
//标签
javax.swing.JLabel jla = new javax.swing.JLabel(icon);
java.awt.Dimension dm0=new java.awt.Dimension(280,200);
//设置⼤⼩
jla.setPreferredSize(dm0);//应⽤⼤⼩到相应组件
jf.add(jla);//将组件加到窗体上
//⽂本框
javax.swing.JTextField jtf = new javax.swing.JTextField();
java.awt.Dimension dm = new java.awt.Dimension(280, 30);
/
/(除了JFrame)其它所有组件设置⼤⼩都是该⽅法
jtf.setPreferredSize(dm);
jf.add(jtf);
//复选框
javax.swing.JCheckBox jcb = new javax.swing.JCheckBox("记住密码");
jf.add(jcb);
javax.swing.JCheckBox jcb2 = new javax.swing.JCheckBox("忘记密码");
jf.add(jcb2);
//按钮
javax.swing.JButton jbu = new javax.swing.JButton("登陆");
jf.add(jbu); //给窗体添加⼀个按钮对象
jf.setVisible(true); //设置可见,放在代码最后⼀句
}
}
窗体如下:
对……有点丑……不过基本功能是实现了,具体图⽚和⼤⼩可以再调节。
添加:
⾸先我们在上⾯的基础上进⾏⼀些调整,然后写出我们的⽬标界⾯:
然后我们给界⾯添加⼀些功能:当我们⽅别在两个⽂本框输⼊账号和密码之后点击登录,如果密码正确则显⽰登陆成功,否则显⽰登录失败。这⾥需要我们监听“登录”按钮是否被点击,需要我们写⼀个监
听器,java中按钮的⽗类是ActionListener。
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JTextField;
//按钮的⽗类ActionListener⾥⾯有函数可以直接检测按钮是否被点击public class ButListener implements ActionListener {
//定义JTextFieldb变量jt,⽤来保存传递过来的⽂本框对象
private JTextField jt;
private JTextField jt2;
//定义set⽅法,初始化jt
public void setJt(JTextField jt,JTextField jt2){
this.jt = jt;
this.jt2=jt2;
}
public void actionPerformed(ActionEvent e) {
//检测到按钮被点击⾃动计⼊到这个函数,这个函数是ActionListener类的⽅法 //接下来获取⽂本框⾥⾯的字符串
java开发可视化界面String name = jt.getText();
String Text();
//验证账号和密码,如果正确显⽰登陆成功的界⾯
//账号123对应密码789
if("123".equals(name)&&"789".equals(password)){
Sucess sc=new Sucess();//新的界⾯(跟旧的差不多后⾯有代码)
sc.showUI();
}else{
//登录失败界⾯写这⾥
}
}
}
然后把⾃⼰写好的加到我们已有的界⾯上:
public class Login {
public static void main(String[] args){
Login lo=new Login();
lo.showUI();
}
public void showUI(){
javax.swing.JFrame jf= new javax.swing.JFrame();
jf.setTitle("QQ登录界⾯");
jf.setSize(300,400);
jf.setDefaultCloseOperation(3);
jf.setLocationRelativeTo(null);
java.awt.FlowLayout flow=new java.awt.FlowLayout();
jf.setLayout(flow);
javax.swing.ImageIcon icon = new javax.swing.ImageIcon("D:\\Picture\\01.jpg"); javax.swing.JLabel jla= new javax.swing.JLabel(icon);
java.awt.Dimension dm0=new java.awt.Dimension(280,200);
jla.setPreferredSize(dm0);
jf.add(jla);
javax.swing.JTextField jtf=new javax.swing.JTextField();
java.awt.Dimension dm1=new java.awt.Dimension(280,30);
jtf.setPreferredSize(dm1);
jf.add(jtf);
javax.swing.JTextField jtf2=new javax.swing.JTextField();
java.awt.Dimension dm2=new java.awt.Dimension(280,30);
jtf2.setPreferredSize(dm2);
jf.add(jtf2);
javax.swing.JCheckBox jcb3 = new javax.swing.JCheckBox("忘记密码");
jf.add(jcb3);
javax.swing.JCheckBox jcb4 = new javax.swing.JCheckBox("记住密码");
jf.add(jcb4);
javax.swing.JButton jbu = new javax.swing.JButton("登陆");
java.awt.Dimension dm3=new java.awt.Dimension(80,30);
jbu.setPreferredSize(dm3);
jf.add(jbu);
//给按钮添加动作⽅法
ButListener but = new ButListener();
//创建⼀个
jbu.addActionListener(but);
//把加在“登录”按钮上
but.setJt(jtf,jtf2);
jf.setVisible(true);
}
}
这时我们运⾏结果如下:
原谅这个图⽚……没有图⽚了个表情包暂时⽤⼀下,⼤概意思就是这个。登陆成功界⾯代码附录如下:
public class Sucess {
public void showUI(){
javax.swing.JFrame jf= new javax.swing.JFrame();
jf.setTitle("登录成功界⾯");
jf.setSize(300,400);
jf.setDefaultCloseOperation(3);
jf.setLocationRelativeTo(null);
java.awt.FlowLayout flow=new java.awt.FlowLayout();
jf.setLayout(flow);
javax.swing.ImageIcon icon = new javax.swing.ImageIcon("D:\\Picture\\02.jpg"); javax.swing.JLabel jla= new javax.swing.JLabel(icon);
java.awt.Dimension dm0=new java.awt.Dimension(280,200);
jla.setPreferredSize(dm0);
jf.add(jla);
jf.setVisible(true);
}
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论