菜鸟进步历程(2)

本次学习是在参考北冥有鱼555的JAVA第一课——qq登录界面的开发,开始学习的。以下是我本次学习的心得,以及笔记,不喜勿喷

在上次的学习之后,我自己参考Java大学实用教程(第3版)上的一些内容编写了一个以流布局为基础,以BOX为辅助的带有支撑的QQ登录界面。以下是我的学习过程和代码。


第一部分:创建一个窗口并设置各项参数

JFrame frame=new JFrame();
FlowLayout f1=new FlowLayout();
frame.setLayout(f1);	
frame.setDefaultCloseOperation(3);//直接关闭窗口
frame.setSize(400,400);
frame.setLocationRelativeTo(null);
frame.setTitle("QQ登录");
frame.setResizable(true);

第二部分:将除去图片的组件放进相应的盒子里,便于等会建立支撑

先放账号、密码两个标签进第一个盒子box2

Box box2,box3,box4,box5,basebox1,basebox2,basebox3;
        
box2=Box.createVerticalBox();//放账号密码标签
box2.add(new JLabel("账号"));
box2.add(Box.createVerticalStrut(8));
box2.add(new JLabel("密码"));


         box3=Box.createVerticalBox();//放账号密码的输入部分
         JTextField text1=new JTextField("1351504636");
         Dimension dim1=new Dimension(325,25);
         text1.setSize(dim1);
         box3.add(text1);
         box3.add(Box.createVerticalStrut(8));
         JTextField text2=new JTextField("******");
         Dimension dim2=new Dimension(325,25);
         text2.setSize(dim2);
         box3.add(text2);

         box4=Box.createHorizontalBox();//放自动登录和记住密码
         box4.add(new JCheckBox("自动登录"));
         box4.add(Box.createHorizontalStrut(8));
         box4.add(new JCheckBox("记住密码"));
        
         basebox1=Box.createHorizontalBox();//将账号密码的标签和输入部分左右放置
         basebox1.add(box2);
         basebox1.add(Box.createHorizontalStrut(8));
         basebox1.add(box3);
         JButton button=new JButton("登录");
        	 button.setSize(90, 50);	 
        	 box5=Box.createHorizontalBox();
        	 box5.add(button);
         basebox2=Box.createVerticalBox();//将账号密码和自动登录记住密码上下放置
         basebox2.add(basebox1);
         basebox2.add(Box.createVerticalStrut(8));
         basebox2.add(box4);
         basebox3=Box.createVerticalBox();
         basebox3.add(basebox2);
         basebox3.add(Box.createVerticalStrut(8));
          basebox3.add(box5);

这样就设置好了盒子放的位置和支撑了

下面是整体代码:

import javax.swing.*;
import java.awt.*;
public class newone {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
         newone one=new newone();
         one.QQ();
	}
	public void QQ() {
		JFrame frame=new JFrame();
		FlowLayout f1=new FlowLayout();
		frame.setLayout(f1);
		 frame.setDefaultCloseOperation(3);//直接关闭窗口
         frame.setSize(400,400);
         frame.setLocationRelativeTo(null);
         frame.setTitle("QQ登录");
         frame.setResizable(true);
        
         Box box2,box3,box4,box5,basebox1,basebox2,basebox3;
        
         box2=Box.createVerticalBox();//放账号密码标签
         box2.add(new JLabel("账号"));
         box2.add(Box.createVerticalStrut(8));
         box2.add(new JLabel("密码"));
         
         box3=Box.createVerticalBox();//放账号密码的输入部分
         JTextField text1=new JTextField("1351504636");
         Dimension dim1=new Dimension(325,25);
         text1.setSize(dim1);
         box3.add(text1);
         box3.add(Box.createVerticalStrut(8));
         JTextField text2=new JTextField("******");
         Dimension dim2=new Dimension(325,25);
         text2.setSize(dim2);
         box3.add(text2);
         
         box4=Box.createHorizontalBox();//放自动登录和记住密码
         box4.add(new JCheckBox("自动登录"));
         box4.add(Box.createHorizontalStrut(8));
         box4.add(new JCheckBox("记住密码"));
        
         basebox1=Box.createHorizontalBox();//将账号密码的标签和输入部分左右放置
         basebox1.add(box2);
         basebox1.add(Box.createHorizontalStrut(8));
         basebox1.add(box3);
         JButton button=new JButton("登录");
        	 button.setSize(90, 50);	 
        	 box5=Box.createHorizontalBox();
        	 box5.add(button);
         basebox2=Box.createVerticalBox();//将账号密码和自动登录记住密码上下放置
         basebox2.add(basebox1);
         basebox2.add(Box.createVerticalStrut(8));
         basebox2.add(box4);
         basebox3=Box.createVerticalBox();
         basebox3.add(basebox2);
         basebox3.add(Box.createVerticalStrut(8));
          basebox3.add(box5);
        
         
        	 
        	 
        	 ImageIcon image=new ImageIcon(this.getClass().getResource("2.png"));//加载图片
         JLabel labelImage=new JLabel(image);
         frame.add(labelImage);
         frame.add(basebox3);
         frame.setVisible(true);
         
	}

}
运行出来的效果:

菜鸟进步历程(2)_第1张图片


即使进行一定的拉伸也不会有变化


菜鸟进步历程(2)_第2张图片

你可能感兴趣的:(菜鸟进步历程(2))