在图形编程中,将不同的控件按区域排列用BorderLayout布局管理器
让控件自动排列并保持大小用FlowLayout布局管理器
让控件按相同大小排列用GridLayout布局管理器
一次只有一个控件可见的布局管理器是CardLayout
三种布局:
流式布局(FlowLayout) 从左往右顺序放。
边界布局(BorderLayout) 上下左右中放。
网格布局(GridLayout)划分区域布局。
卡片布局(CardLayout) 每次只有一个组件可见。
窗口关闭 setDefaultCloseOperation的四种关闭方式的区别
点击窗口右上角关闭,四种关闭方式:
1.this.setDefaultCloseOperation(0);
DO_NOTHING_ON_CLOSE,(在你点击关闭按钮的时候,不会被关闭,)不执行任何操作。
2.this.setDefaultCloseOperation(1);
HIDE_ON_CLOSE,(当你点击关闭按钮的时候,不会释放内存,只是隐藏该界面,没有真正的关闭,还占有资源)只隐藏界面,setVisible(false)。
3.this.setDefaultCloseOperation(2);
DISPOSE_ON_CLOSE,点击关闭按钮的时候,隐藏并释放窗体,dispose(),当最后一个窗口被释放后,则程序也随之运行结束。
4.this.setDefaultCloseOperation(3);
EXIT_ON_CLOSE,直接关闭应用程序,System.exit(0)。一个main函数对应一整个程序。
主函数如下:
package java界面的学习;
import java.awt.*;
import javax.swing.*;
public class Login {
//main函数
public static void main(String []args) {
Login lo =new Login();
lo.showUI();
}
public void showUI() {
//窗体类
JFrame jf =new JFrame();
//窗体名字
jf.setTitle("登录界面");
//窗体大小
jf.setSize(800,500);//(长,高)
//设置窗体背景颜色
//getContentPane()为提取面板,java中窗体背景会被面板覆盖
jf.getContentPane().setBackground(Color.orange);
//设置关闭方式
jf.setDefaultCloseOperation(3);
//设置窗体居中
jf.setLocationRelativeTo(null);
//流式布局管理器
FlowLayout flow =new FlowLayout();
jf.setLayout(flow);
//图片
ImageIcon icon = new ImageIcon("C:\\Users\\烨\\eclipse-workspace\\java界面的学习\\src\\java界面的学习\\MZ.png");
//标签
JLabel jla =new JLabel(icon);//创建一个标签
Dimension dm0 =new Dimension(800,300);//创建一个容器
//设置大小
jla.setPreferredSize(dm0);
jf.add(jla);
//文字标签
jf.add(new JLabel(" "));
JLabel p = new JLabel("密码");
Dimension dmm1 =new Dimension(40,30);
p.setPreferredSize(dmm1);
p.setFont(new Font("微软雅黑", Font.BOLD, 20));//设置字体大小
p.setForeground(Color.BLUE);//设置字体颜色
jf.add(p);
//文本框
JTextField jtf =new JTextField();
Dimension dm1 =new Dimension(280,30);
jtf.setPreferredSize(dm1);
jf.add(jtf);
//复选框
JCheckBox jcb1 =new JCheckBox("记住密码");
jf.add(jcb1);
JCheckBox jcb2 =new JCheckBox("忘记密码");
jf.add(jcb2);
//按钮
JButton jbu = new JButton ("登录");
Dimension dm2 =new Dimension(100,40);
jbu.setPreferredSize(dm2);
//换行
jf.add(new JLabel(" "));
jf.add(jbu);
//创建监听器
ButListener P =new ButListener();
//把监听器加在登录按钮上
jbu.addActionListener(P);
//接收文本框内内容
P.setJT(jtf);
//设置窗体可见
jf.setVisible(true);
}
}
[点击并拖拽以移动]
(注意我并未编写登录成功界面,编写流程如上主函数代码)
监听器类如下:
package java界面的学习;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JTextField;
//ActionListener里面有函数可以直接检测按钮是否被点击
public class ButListener implements ActionListener {
//定义JTextField变量来储存传递过来的文本框对象
private JTextField jt1;
//定义set方法用来初始化jt
public void setJT(JTextField jt1){
this.jt1=jt1;
}
//检测到按钮被点击自动计入到这个函数,此函数是ActionListener类的方法
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
//获取文本框里面的字符串
String password =jt1.getText();
//验证
if("svip000".equal(password)) {
//成功登录界面
}
else {
//登录失败界面
}
}
}