SimQQ界面的开发
LoginUI.Java
首先要写一个界面,我们需要用到窗体。
这里我们会用到之前说的类与对象。
1、 首先创建一个包,名字是SimQQ
2、然后创建第一个LoginUI的类
3、 在类中定义一个展示窗体的方法。
public void showUI(){ }
4、养成一个好的习惯,在下面先写上主方法,并且调用我们的方法,这时就会用到类与对象。
public static void main (String[] args) {
LoginUI ui = new LoginUI();
ui.showUI();
}
5、现在基础已经准备好了,我们就可以开始真正的表演了
在我们的showUI 中,我们首先创建一个窗体,这里用到Java里的自带类
JFrame loginFrame = new JFrame();
这时我们的程序中已经有了一个界面,点击运行,我们会震撼的发现,什么都没有出现。
不要紧张,这是因为我们没有设置窗体可见。
//设置窗体可见
loginFrame.setVisible(true);
加上这一句,窗体就出现了,既然有设置窗体可见与否的方法,那么联想一下,当然就会有设置窗体的大小啊,布局啊等等方法。
这一句,放在最后,我们把其他的操作,放在它之前,等我们把所有的操作写完之后,再使窗体可见,才会出现我们理想中的效果,如果不这样做,会出现什么呢?
我们知道,Java的程序执行,一般是从上到下执行,如果你在创建窗体之后立即使窗体可见,你就会立即见到一个干净的窗体,但是你之后进行的操作,就不会再出现,因为它们“错过了”窗体可见的这句方法。
之后啊我们就可以对这个窗体进行随便的操作啦。
比如
//设置窗体大小
loginFrame.setSize(500, 900);
//设置窗体的关闭
loginFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//设置窗体出现的位置
loginFrame.setLocationRelativeTo(null);
这里为什么要写null呢,因为我们可以看到RelativeTo这个词组,也就是和什么有联系的意思,null自然是和什么都没联系的意思,和什么都没联系,那么窗体就居中了。
6、设置窗体布局,这里我们使用最简单的流式布局
还是一样的创建流式布局的对象,然后使用
//设置布局
FlowLayout layout = new FlowLayout();
loginFrame.setLayout(layout);
7、 给窗体添加图片
//设置图片
ImageIcon image = new ImageIcon("Bronzeware.png");
JLabel iconLable = new JLabel(image);
loginFrame.add(iconLable);
这里的"Bronzeware.png"是我们电脑里一张图片的位置,当然我们可以直接把图片拖进eclipse中这样就不用这么麻烦的找位置了,当然你也可以直接复制文件位置。
8、看一看我们的QQ界面,上面都有些什么呢?账号框、密码框、登录按钮、等等。
这些要用到的类都可以在我们的API文档中找到
//设置账号框
JTextField name = new JTextField();
Dimension inputSize = new Dimension(350,40);
name.setPreferredSize(inputSize);
name.setText("请输入账号");
loginFrame.add(name);
//设置标签
JLabel registerLabel2 = new JLabel("注册账号");
Font font = new Font("宋体", Font.BOLD, 20);
registerLabel2.setForeground(Color.BLUE);
registerLabel2.setBackground(Color.WHITE);
registerLabel2.setFont(font);
loginFrame.add(registerLabel2);
//设置密码框
JPasswordField word = new JPasswordField();
Dimension inputSize2 = new Dimension(350,40);
word.setPreferredSize(inputSize2);
word.setText("请输入密码");
loginFrame.add(word);
//设置标签
JLabel registerLabel = new JLabel("注册账号");
Font font1 = new Font("宋体", Font.BOLD, 20);
registerLabel.setForeground(Color.BLUE);
registerLabel.setBackground(Color.WHITE);
registerLabel.setFont(font1);
loginFrame.add(registerLabel);
//设置复选框
JCheckBox box = new JCheckBox("记住密码");
loginFrame.add(box);
JCheckBox box1 = new JCheckBox("自动登陆");
loginFrame.add(box1);
//设置按钮
JButton btn = new JButton("登陆");
loginFrame.add(btn);
以上运行之后,大概可以见到一个普通的登录界面了,但是我们会发现,点击里面的按钮,没什么反应,这是因为我们的鼠标动作没有被获取,这里就要引入一个概念,叫鼠标监听器。
这里我不多作赘述,之后的文章会介绍,现在只要知道它大概的意思就是获取我们鼠标的动作,比如点击,松开,等等。
LoginListener.Java
9、加入鼠标监听器
这里我们新建一个类
然后
public class LoginListener implements ActionListener{
}
这里的implement是接口的意思,至于接口是什么,也不赘述,同样的之后的文章会提到,简单的来说它是用来连接到鼠标监听方法ActionListener的。
接下来我们开始写我们的内容
public class LoginListener implements ActionListener{
java.lang.String s="abc";
//获取输入框的内容
String name = input.getText();
String word = psd.getText();
if(name.equals("123456")&&word.equals("123")) {
System.out.println("登陆成功");
Frame.dispose();
// Frame.setVisible(false);
}else {
JOptionPane.showMessageDialog(null, "登陆失败",
"登陆失败", JOptionPane.INFORMATION_MESSAGE);
System.out.println("登录失败!");
}
}
}
10、接下来我们在我们的界面中,也就是LoginUI中添加我们的监听器对象
//创建监听器
LoginListener loginL = new LoginListener();
btn.addActionListener(loginL);
loginL.input = name;
loginL.psd = word;
loginL.Frame=loginFrame;
点击运行,我们的简易登陆界面就完成了~
现在来整理一下思路,这里我们定义了两个类,一个是界面类,一个是监听器类,我们在界面类设置我们的界面的样式,然后在监听器类里写我们的监听方法,最后在界面类里添加监听器类的对象,并调用,就完成了。
over