Java 学习记录(1) 用JFrame创建一个简单的页面

Java中与界面相关的代码

分类

1.按代码所属的包名分类:
java.awt:java早期使用的界面开发包,有尺寸、布局、监听器等等。
javax.swing:该包下的组件类的类名以J开头。
2.按代码的功能分类:

  • 容器组件:存储其他组件。
    顶级容器组件:界面,所有其他的组件都必须添加在顶级容器组件上才能显示。
  • 元素组件:提供和用户交互功能,如输入(输入框、按钮等),输出(显示图片、文字)
  • 布局:组件在容器中的摆放规则:
    FlowLayout布局:将所有的组件从左到右依次摆放,一行摆放不下时自动换行,一行能放置多少组件取决于窗口的宽度。
    BorderLayout布局:分为东、南、西、北、中心五个方位。北和南的组件可以在水平方向上拉伸;而东和西的组件可以在垂直方向上拉伸;中心的组件可同时在水平和垂直方向上同时拉伸,从而填充所有剩余空间。一个位置只能显示一个组件,相同位置的组件会被覆盖,只显示最上面(最后添加)的组件。
    GridLayout布局:放置组件时,只能从左到右、由上到下的顺序填充。

以一个简单的登录界面为例

开发登录界面需要使用的相关元素

顶级容器组件			JFrame

图片				javax.swing.ImageIcon
布局				java.awt.FlowLayout
尺寸				java.awt.Dimension

显示图片、文字的标签	JLabel
文本输入框			JTextField
密码输入框			JPasswordFiled
多选框				JCheckBox
登录按钮				JButton

开发登录界面的步骤

  • 创建一个类,并为这个类定义一个显示界面的方法(如showUI())。
  • 实现这个方法,首先创建一个顶级容器组件(JFrame)的对象,并为其设置一些基本属性(如标题、大小等)。
  • 创建各个组件(如按钮、输入框),为其设置属性,并将其添加到窗体上。
  • 在主函数中创建类的对象,并调用showUI()。

实现的代码

package zjc_gsm;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.JCheckBox;
import javax.swing.JButton;
import javax.swing.ImageIcon;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Color;
public class ShowUI {
	public void showLoginUI(){
		//创建顶级容器组件的对象
		JFrame Aframe = new JFrame("LoginUI");
		//设置其大小
		Aframe.setSize(500, 450);
		
		//创建布局的对象,这里用的是流式布局
		FlowLayout flowlay = new FlowLayout();
		//为其设置布局
		Aframe.setLayout(flowlay);
		
		//创建若干文字的对象
		JLabel text1 = new JLabel("注册账号");
		JLabel text2 = new JLabel("忘记密码");
		
		//创建若干输入框的对象
		JTextField input1 = new JTextField();
		JTextField input2 = new JTextField();
		//设置输入框的大小
		Dimension dimeninput = new Dimension(400,30);
		input1.setPreferredSize(dimeninput);
		input2.setPreferredSize(dimeninput);
		
		//获得图片
		ImageIcon background = new ImageIcon("C:\\picture.png");
		JLabel back = new JLabel(background);
		
		//创建复选框
		JCheckBox remember = new JCheckBox("记住密码");
		JCheckBox autoLogin = new JCheckBox("自动登录");
		
		//创建按钮
		JButton Loginac = new JButton("登录");
		JButton register = new JButton("注册");
		//设置按钮大小
		Dimension dimenbutton = new Dimension(200,50);
		Loginac.setBackground(Color.blue);
		register.setBackground(Color.blue);
		Loginac.setPreferredSize(dimenbutton);
		register.setPreferredSize(dimenbutton);
		//设置颜色
		Loginac.setBackground(Color.blue);
		register.setBackground(Color.blue);
		
		//将各个组件添加到窗体上
		Aframe.add(back);
		Aframe.add(input1);
		Aframe.add(text1);
		Aframe.add(input2);
		Aframe.add(text2);
		Aframe.add(remember);
		Aframe.add(autoLogin);
		Aframe.add(Loginac);
		Aframe.add(register);
		
		//设置窗体初始位置
		Aframe.setLocationRelativeTo(null);
		//设置窗体关闭后程序的处理
		Aframe.setDefaultCloseOperation(Aframe.EXIT_ON_CLOSE);
		
		//设置窗体可见
		Aframe.setVisible(true);
	}
	
	//主方法
	public static void main (String[] args){
		ShowUI showui = new ShowUI();
		showui.showLoginUI();
	}
}

其他内容

  1. public void setVisible(boolean b)设置其可见性,窗口默认不可见。
  2. public void setDefaultCloseOperation(int operation)用来设置单击窗体右上角的关闭图标后,程序会做出怎样的处理,其中的参数operation取JFrame类中的下列int型常量,程序根据参数operation取值做出不同的处理。
    0 = DO_NOTHING_ON_CLOSE(什么也不做)
    1 = HIDE_ON_CLOSE (隐藏当前窗口)
    2 = DISPOSE_ON_CLOSE (隐藏当前窗口,并释放窗体占有的其他资源)
    3 = EXIT_ON_CLOSE (结束窗口所在的应用程序)
  3. public voidsetBounds(int a , int b , int width , int height)设置窗口的初始位置是(a,b),即距屏幕左面a个像素,距屏幕上方b个像素,窗口的宽是width,高是height。或分别用 public void setSize(int width , int height)和 public void setLocation(int x , int y) 来调节大小和位置。
  4. public void setLocationRelativeTo(Component c)设置窗口相对于指定组件的位置,如果组件当前未显示或者 c = null,则此窗口将置于屏幕的中央。
  5. public void dispose()撤销当前窗口,并释放当前窗口所使用的资源。
好的,我可以为您提供一些关于用Java Swing和MySQL数据库开发登录页面的思路和步骤。 首先,您需要了解Java Swing是Java平台的GUI(图形用户界面)工具包,它提供了许多组件和容器来构建漂亮和交互式的用户界面。MySQL是一个流行的开源关系型数据库管理系统,它可以存储和管理数据。 在开发登录页面时,您需要考虑以下步骤: 1. 创建数据库表格 在MySQL数据库中创建一个名为"users"的表格,包含用户名和密码两个字段。 2. 创建Java Swing界面 使用Java Swing创建一个简单的登录界面,包括用户名和密码输入框以及登录按钮。 3. 连接MySQL数据库 使用Java代码连接MySQL数据库,获取数据库的连接对象和执行SQL语句的对象。 4. 查询用户名和密码 在登录按钮的事件监听中,编写Java代码查询数据库中是否存在与输入的用户名和密码匹配的记录。 5. 登录成功或失败 根据查询结果,显示登录成功或失败的提示信息。 下面是一个简单Java Swing和MySQL数据库登录页面示例代码: ``` import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.sql.*; public class LoginFrame extends JFrame implements ActionListener { JLabel userLabel, passwordLabel, messageLabel; JTextField userTextField; JPasswordField passwordField; JButton loginButton; public LoginFrame() { setTitle("Login"); setSize(300, 200); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); userLabel = new JLabel("Username:"); passwordLabel = new JLabel("Password:"); messageLabel = new JLabel(""); userTextField = new JTextField(); passwordField = new JPasswordField(); loginButton = new JButton("Login"); loginButton.addActionListener(this); JPanel panel = new JPanel(new GridLayout(3, 2)); panel.add(userLabel); panel.add(userTextField); panel.add(passwordLabel); panel.add(passwordField); panel.add(messageLabel); panel.add(loginButton); add(panel, BorderLayout.CENTER); setVisible(true); } public void actionPerformed(ActionEvent e) { if (e.getSource() == loginButton) { String user = userTextField.getText(); String password = new String(passwordField.getPassword()); try { Class.forName("com.mysql.jdbc.Driver"); Connection con = DriverManager.getConnection( "jdbc:mysql://localhost:3306/mydatabase", "root", "password"); Statement stmt = con.createStatement(); ResultSet rs = stmt.executeQuery("SELECT * FROM users WHERE username='" + user + "' AND password='" + password + "'"); if (rs.next()) { messageLabel.setText("Login successful!"); } else { messageLabel.setText("Invalid username or password."); } con.close(); } catch (Exception ex) { System.out.println(ex); } } } public static void main(String[] args) { new LoginFrame(); } } ``` 请注意,这只是一个简单的示例代码,您需要根据自己的需求进行修改和扩展。同时,为了安全起见,建议您对查询语句进行参数化处理,以避免SQL注入攻击的风险。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值