如何写一个图形化界面程序?
图形化界面程序的构成要素:
- 窗体、账号/密码框、登录/注册按钮 监听器
登录操作:
- 需要获取输入框中的字符串
- 比较账号和密码
- 根据比较结果执行对应的提示消息
- 想要让按钮点击之后能够有反应且能够执行,需要调用预设好的一个方法,需要使用到前端的一些组建对象,传对象的操作。
动作监听器:
- ActionListenter监听按钮这一类的组件,监听按钮被点击的这个事件。
- 格式 :
- 类名 实现(implements)ActionListenter(动作监听器){ }
- 在这个类中,重写ActionListenter的方法
- 将方法的分号改为大括号,它的中间可以协商按钮被点击之后所需要执行的代码,打印输出System.out.println(“按钮被点击了”)
- 在界面类中,创建一个自己写的监听器对象,添加到需要实现响应事件功能的按钮上
Code
- 创建一个方法,设置窗体、尺寸、居中、退出进程,流式布局
- 设置图片对象,将图片的路径写入新创建的图片对象,设置一个标题及其标题的大小,将前面的图片放入所设置的文本框中,并添加到窗体中
- 设置标题对象、文本框及其文本框的尺寸大小、按钮对象,将其全部加入到窗体中,实现
- 设置一个监听器对象,按钮对象调用添加监听器对象
- 监听器对象调用标题对象等于文本框对象
public class Hi {
public static void main(String[] args){
Hi yi=new Hi();
yi. showUI();
System.out.println("登录成功");
}
public void showUI(){
javax.swing.JFrame in=new javax.swing.JFrame();
in.setSize(380,500);
in.setTitle("登录入口");
in.setLocationRelativeTo(null);//设置居中
in.setDefaultCloseOperation(3);//设置推出进程
java.awt.FlowLayout ji=new java.awt.FlowLayout();
in.setLayout(ji);
javax.swing.JLabel fi=new javax.swing.JLabel("账号: ");
java.awt.Font qi=new java.awt.Font("黑体",Font.BOLD,30);
fi.setFont(qi);
in.add(fi);
javax.swing.JTextField si=new javax.swing.JTextField();
java.awt.Dimension di=new java.awt.Dimension(300,28);
si.setPreferredSize(di);
in.add(si);
javax.swing.JLabel ai=new javax.swing.JLabel("密码: ");
java.awt.Font ri=new java.awt.Font("黑体",Font.BOLD,30);
ai.setFont(ri);
in.add(ai);
javax.swing.JTextField ti=new javax.swing.JTextField();
java.awt.Dimension ui=new java.awt.Dimension(300,28);
ti.setPreferredSize(ui);
in.add(ti);
javax.swing.JButton ei=new javax.swing.JButton("登录");
in.add(ei);
in.setVisible(true);
SiListenter sl = new SiListenter();
ei.addActionListener(sl);
sl.fi = si;
sl.ai = ti;
}
}
- 创建一个类,命名为SiListenter 实现implements ActionListenter,依次写下账号密码的文本框对象,设置一个重写ActionListenter的方法,分别创建两个对象赋值给文本框调用得到的文本,打印输出System.out.println(" "),创建一个新的窗体对象,使其成为新的窗体,设置好大小,使得它实现,if如果创建的两个对象分别调用等于输入的账号和密码,则会在跳出一个文本框
public class SiListenter implements ActionListener {
JTextField fi;
JTextField ai;
public void actionPerformed(ActionEvent e) {
String co=fi.getText();
String di=ai.getText();
System.out.println("点击登录了账户:"+co+"密码:"+di);
if(co.equals("ideal")&&di.equals("ideal1")) {
javax.swing.JFrame wi = new javax.swing.JFrame();
wi.setSize(800, 600);
wi.setVisible(true);
}
System.out.println("按钮被点击了");
}
}
- 最后点击运行,完成图形化界面程序,如图: