前段时间学习了关于登录界面的代码编写,觉得挺有意思,开始的时候一直接纠结于窗体上一些组件的排版问题,每次写完代码后总发现那些组件的排列顺序总不能想自己想的那样,后来只有好好的钻研几种布局的特点及用法,还有一些其他容器的用法,解决一些复杂结构的排版,就要用到JPanel和JSplitPane,但是用的还是很熟练,以下是我根据资料写的一个仿QQ登录界面,也是这几天研究的关于在登录界面中添加背景图片,添加了背景图片以后确实很难进行复杂的结构排序,所以下面的界面很简单。
代码如下:
package java0627;
import java.awt.Graphics;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
public class LoginJFrame {
public JFrame jframe;
public JLabel jlabel, jlabel1;
public GridBagLayout gridbag;
public GridBagConstraints constraints;
public JTextField jtfield1;
public JPasswordField jpfield1;
public JButton jbutton1, jbutton2, jbutton3;
public JPanel jpanel;
/**
* 主函数
*/
public static void main(String[] args) {
LoginJFrame lj = new LoginJFrame();
lj.init();
lj.showMe();
}
/**
* init()初始化并显示界面
*/
private void init(){
jframe = new JFrame();
jframe.setTitle("小鱼儿的QQ");
jlabel = new JLabel();
jlabel.setText("用户名:");
jlabel1 = new JLabel();
jlabel1.setText("密 码:");
jtfield1 = new JTextField(7);
jpfield1 = new JPasswordField(7);
gridbag = new GridBagLayout();
jbutton1 = new JButton();
jbutton1.setText("登 录");
jbutton2 = new JButton();
jbutton2.setText("退 出");
jbutton3 = new JButton();
jbutton3.setText("更改密码");
jpanel = new JPanel() {
protected void paintComponent(Graphics g) {
super.paintComponent(g);
java.net.URL ur12 = this.getClass().getResource("j01.jpg");
ImageIcon img = new ImageIcon(ur12);
img.paintIcon(this, g, 0, 0);
}
};
//设置窗体属性
jframe.setBounds(200, 200, 460, 340);
jframe.setDefaultCloseOperation(3);
// 设置JPanel为透明,且使用GridBagLayout布局管理器
jpanel.setOpaque(true);
jpanel.setLayout(gridbag);
// 用户名文本框显示
constraints = getGridBagConstraints(0, 0, 1, 1, 0, 0,
GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(
10, 0, 10, 0), 0, 0);
gridbag.setConstraints(jlabel, constraints);
jpanel.add(jlabel);
// 用户名输入框显示
constraints = getGridBagConstraints(1, 0, 1, 1, 0, 0,
GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(
10, 0, 10, 0), 100, 0);
gridbag.setConstraints(jtfield1, constraints);
jpanel.add(jtfield1);
// 密码文本框显示
constraints = getGridBagConstraints(0, 1, 1, 1, 0, 0,
GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(
10, 0, 10, 0), 0, 0);
gridbag.setConstraints(jlabel1, constraints);
jpanel.add(jlabel1);
// 密码输入框显示
constraints = getGridBagConstraints(1, 1, 1, 1, 0, 0,
GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(
10, 0, 10, 0), 100, 0);
gridbag.setConstraints(jpfield1, constraints);
jpanel.add(jpfield1);
// 更改密码按钮显示
constraints = getGridBagConstraints(0, 2, 1, 1, 0, 0,
GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(
10, 0, 10, 0), 0, 0);
gridbag.setConstraints(jbutton3, constraints);
jpanel.add(jbutton3);
// 登录按钮显示
constraints = getGridBagConstraints(1, 2, 1, 1, 0, 0,
GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(
10, 0, 10, 0), 0, 0);
gridbag.setConstraints(jbutton1, constraints);
jpanel.add(jbutton1);
// 退出按钮显示
constraints = getGridBagConstraints(2, 2, 1, 1, 0, 0,
GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(
10, 0, 10, 0), 0, 0);
gridbag.setConstraints(jbutton2, constraints);
jpanel.add(jbutton2);
jframe.add(jpanel);
}
private static GridBagConstraints getGridBagConstraints(int gridx,
int gridy, int gridwidth, int gridheight, double weightx,
double weighty, int anchor, int fill, Insets insets, int ipadx,
int ipady) {
return new GridBagConstraints(gridx, gridy, gridwidth, gridheight,
weightx, weighty, anchor, fill, insets, ipadx, ipady);
}
public void showMe() {
jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jframe.setVisible(true);
}
}
附件上有登录界面截图:
- 大小: 51.1 KB
分享到:
相关推荐
【仿QQ登陆界面设计详解】 在IT行业中,用户界面(UI)的设计至关重要,因为它直接影响到用户的体验和产品的吸引力。QQ作为中国最受欢迎的即时通讯软件之一,其登录界面早已深入人心。仿QQ登录界面的设计,旨在模仿...
【标题】"高仿qq登陆界面"所涉及的知识点主要集中在网页设计与开发以及易语言的应用上。这个项目可能是为了教学、练习或是创建一个类似QQ登录界面的模拟体验。下面将详细阐述这些知识点: 1. **HTML**:HTML...
这个"高仿QQ登陆界面"项目就是基于Qt5构建的,展示了Qt5在UI设计上的强大能力。 1. **QML(Qt Meta Language)** QML是Qt5引入的一种声明性语言,用于描述用户界面。它使得设计复杂的UI变得更加直观和高效。在这...
【仿QQ登陆界面】是一个项目,旨在模仿腾讯QQ的登录页面设计和功能,适用于初学者学习和实践Android应用开发。这个项目可能包含了基础的UI设计、事件处理以及数据验证等元素,是Android开发者提升用户体验理解和界面...
首先,"winform高仿qq登陆界面"这个标题暗示了我们需要使用Microsoft的Windows Forms(WinForms)技术来构建一个与腾讯QQ登录界面类似的用户界面。WinForms是.NET Framework的一部分,用于开发桌面应用程序,提供了...
QQDemo项目是一个使用C++语言在Visual Studio 2008环境下编写的程序,旨在实现一个仿QQ登录界面。这个项目对于学习C++图形用户界面(GUI)编程以及模拟流行应用的设计理念具有一定的实践价值。以下将详细阐述相关...
"仿QQ登陆界面源代码"是一份旨在帮助编程爱好者和初学者理解并实现类似QQ登录界面的代码资源。通过这份源代码,我们可以学习到UI设计的基本原则、前端开发技术以及如何运用这些技术来创建一个具有交互性的登录界面。...
【Android高仿QQ登录界面Demo】是一个专门为Android开发者设计的学习资源,它旨在帮助开发者们实现一个与最新版QQ登录界面高度相似的用户界面,并且包含了部分登录逻辑的实现。这个项目对于那些对Android UI设计和QQ...
本项目“Swing做的高仿QQ登陆界面”旨在为初学者提供一个学习Swing GUI设计和实现简单功能的实例。下面我们将详细探讨Swing在创建登录界面以及相关功能实现上的应用。 首先,Swing提供了丰富的组件库,包括JFrame...
高仿QQ的登陆程序,具体内容可以参考博文 如何使用MFC编写自定义UI界面【附高仿QQ登陆界面范例程序】 http://blog.csdn.net/hujkay/article/details/23522211
java 仿QQ登陆界面 主界面java 仿QQ登陆界面 主界面java 仿QQ登陆界面 主界面 效果可以去我QQ空间看 http://user.qzone.qq.com/309306055/infocenter#!app=2&pos=1337351044
这个“易语言仿QQ登陆界面皮肤源码”是使用易语言编写的一个示例项目,旨在教用户如何利用易语言来创建类似QQ登录界面的图形用户界面(GUI)和皮肤效果。 在易语言中,开发GUI应用主要依靠内置的窗口程序模块,该...
易语言仿QQ登陆界面皮肤源码,仿QQ登陆界面皮肤
【标题】"仿QQ登陆界面 java.swing"指的是使用Java的Swing库创建的一个模仿QQ登录界面的项目。Swing是Java提供的一种用于构建图形用户界面(GUI)的工具包,它提供了丰富的组件和功能,使得开发者能够方便地设计出...
本资源"易语言仿QQ登陆界面皮肤源码.rar"提供了一个使用易语言编写的,模仿QQ登录界面的皮肤源代码。通过学习和分析这个源码,我们可以了解到如何在易语言中实现类似QQ登录界面的用户交互和视觉效果。 1. **易语言...
以上就是创建"android仿制qq登陆界面"所涉及的主要知识点,通过这个项目,新手可以深入理解Android应用开发的基本流程,提升对Android UI设计和事件处理的理解。同时,也可以锻炼代码组织和调试能力,为后续的复杂...
以下是对这个"android高仿qq登陆界面"项目的一些详细知识点解析: 1. **Android Studio**: Android Studio是Google官方推出的集成开发环境(IDE),用于开发Android应用程序。它提供了丰富的功能,包括代码编辑、...