关于布局管理器:Java Swing布局管理器(详解版)在使用 Swing 向容器添加组件时,需要考虑组件的位置和大小。如果不使用布局管理器,则需要先在纸上画好各个组件的位置并计算组件间的距离,再向容器中添加。这样虽然能够灵活控http://c.biancheng.net/view/1212.html
在图形编程中,将不同的控件按区域排列用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"==password) { //成功登录界面 } else { //登录失败界面 } } }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)