图形开发界面总结

6月27日总结(图形开发界面)
这节课主要讲了图形开发界面。通过这节课我掌握了java提供的组件和布局API类,同时我学会了如何查询API文档。

首先,java里面有两大图形界面类:1、awt 2、swing;他俩最大区别是swing可以跨平台,提供了很大的方便。

javax.swing里面常用的容器组件有两种JFrame(窗体容器)和JPanel(面板容器)。其中,窗体是最基础的,所有的元素组件必须放在窗体上才能显示出来。常用的元素组建有JLabel、JTextField、JPasswordField、JComboBox、JCheckBox、JButton等等。其中要注意的是如果要用这些窗体或者组件要首先实例化才能使用,而且必须将窗体设置为可见,否则不能看见。

java.awt里面常用的布局类型有3种:BorderLayout、FlowLayout和GridLayout。和组件类相似,用布局类型的时候必须要先实例化才能使用。其中JFrame默认的布局类型是BorderLayout(边框布局),而JPanel的默认类型则为FlowLayout(流式布局)。

在今天的登陆界面的练习中,我遇到了几个问题,首先是页面的布局,总是调不成我想要的布局。然后我通过JPanel在边框布局的JFrame上的应用解决了这个问题,但是还是无法调整东边和西边的大小。
package Login;import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.GridLayout;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JSeparator;

//定义一个Login类
public class Login {

//定义函数的入口
public static void main(String[] args) {

//实例化一个Login类
Login lo = new Login();

//调用初始化函数
lo.unitGUI();

}

//定义一个unitGUI初始化函数
public void unitGUI(){

//实例化一个窗体类型
JFrame jf = new JFrame();

//点击窗体关闭的时候退出程序
jf.setDefaultCloseOperation(3);

//设置窗体大小
jf.setSize(400, 300);

//设置窗体位置
jf.setLocation(470, 250);

//设置窗体标题
jf.setTitle("QQ登录界面");

// 设置窗口显示在屏幕的中央
jf.setLocationRelativeTo(null);

// 设置禁止调整窗体的大小
jf.setResizable(false);

//jf.setUndecorated(true);
//设置布局
BorderLayout bor = new BorderLayout();
jf.setLayout(bor);

//把jpanel类添加到jframe上
JPanel west = West();
jf.add(west,BorderLayout.WEST);



//添加JPanel到JFrame上
JPanel east = East();
jf.add(east,BorderLayout.EAST);

//将JPanel添加到JFrame上
JPanel center = Center();
jf.add(center,BorderLayout.CENTER);



JPanel south = South();
jf.add(south,BorderLayout.SOUTH);


//添加一个文本框在上部
JPanel north = North();
jf.add(north,BorderLayout.NORTH);




//设置背景图片
ImageIcon bjImage = new ImageIcon("Login/beijing.jpg");
JLabel beijing = new JLabel(bjImage);
//设置便签的大小
beijing.setBounds(0, 0,bjImage.getIconWidth(),bjImage.getIconHeight());
//将便签添加到LayeredPane的最底层
jf.getLayeredPane().add(beijing,new Integer(Integer.MIN_VALUE));
//将LayeredPane上一层面板设置为透明
JPanel contentPanel = (JPanel)jf.getContentPane();
//设置面板为透明
contentPanel.setOpaque(false);
north.setOpaque(false);
center.setOpaque(false);
east.setOpaque(false);
west.setOpaque(false);
south.setOpaque(false);

//设置窗体为可见
jf.setVisible(true);

}

public JPanel West(){
//实例化一个JPanel类
JPanel jp = new JPanel();

//设置布局
jp.setLayout(new FlowLayout(FlowLayout.LEFT,0,50));
//设置大小
jp.setPreferredSize(new Dimension(110,0));
//添加一个按钮在西边
jp.add(new JLabel(" "));
JButton jbu = new JButton(new ImageIcon("Login/touxiang.jpg"));
jbu.setPreferredSize(new Dimension(80,80));

jp.add(jbu);
return jp;
}

public JPanel East(){
//实例化一个JPanel类
JPanel jp = new JPanel();
//GridLayout gri1 = new GridLayout(7,1);
//jp.setLayout(gri1);
//设置布局
jp.setLayout(new FlowLayout(FlowLayout.CENTER,0,19));
//设置大小
jp.setPreferredSize(new Dimension(110,0));
//添加两个按钮在东边

jp.add(new JLabel(" "));

JButton jbu1 = new JButton("注册帐号");
jp.add(jbu1);

JButton jbu2 = new JButton("找回密码");
jp.add(jbu2);
return jp;
}

public JPanel Center(){

//实例化一个JPanel类的对象
JPanel jp2 = new JPanel();
jp2.setLayout(new GridLayout(6,1));

javax.swing.JLabel jl5 = new javax.swing.JLabel();
jp2.add(jl5);
javax.swing.JLabel jl6 = new javax.swing.JLabel();
jp2.add(jl6);
//添加一个下拉框在中部
javax.swing.JComboBox jco = new javax.swing.JComboBox();
//为下拉框添加项目
jco.addItem("121727544");
jco.addItem("334715693");
jco.addItem("296299367");
jp2.add(jco);
javax.swing.JLabel jl7 = new javax.swing.JLabel();
jp2.add(jl7);
//添加一个密码框在中部
javax.swing.JPasswordField jpa = new javax.swing.JPasswordField(10);
jp2.add(jpa);
//添加两个复选框
javax.swing.JPanel jp4 = new javax.swing.JPanel();
jp4.setLayout(new GridLayout(1,2));
javax.swing.JCheckBox jch1 = new javax.swing.JCheckBox("记住密码");
jch1.setOpaque(false);
jp4.add(jch1);
javax.swing.JCheckBox jch2 = new javax.swing.JCheckBox("自动登录");
jch2.setOpaque(false);
jp4.add(jch2);
jp4.setOpaque(false);
jp2.add(jp4);

return jp2;
}

public JPanel South(){
//实例化一个Jpanel
JPanel jp3 = new JPanel();

//添加一个按钮在南部
JButton jbu3 = new JButton("登录");
jp3.add(jbu3);
return jp3;
}

public JPanel North(){
javax.swing.JPanel jp5 = new javax.swing.JPanel();
java.awt.GridLayout gri3 = new java.awt.GridLayout(3,1);
jp5.setLayout(gri3);
jp5.setPreferredSize(new Dimension(0,70));
jp5.add(new JLabel(" "));
javax.swing.JLabel jl1 = new javax.swing.JLabel("追梦.设计 ");
jl1.setFont(new Font("华文行楷",Font.BOLD,30));
jp5.add(jl1);
javax.swing.JLabel jl10 = new javax.swing.JLabel(" ——幸福因为有你在");
jl10.setFont(new Font("华文行楷",Font.BOLD,23));
jp5.add(jl10);
return jp5;
}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值