GUI编程基础学习(二)——标签、文本框、按钮

标签JLabel

JLabel是一种常用的组件,一般用于显示固定的文字信息,同时它也可以显示图片:

JLabel常用构造方法:

①JLabel() 创建无图像并且其标题为空字符串的 JLabel。

②JLabel(Icon image) 创建具有指定图像的 JLabel 实例。

③JLabel(Icon image, int horizontalAlignment) 创建具有指定图像和水平对齐方式的 JLabel 实例。

④JLabel(String text) 创建具有指定文本的 JLabel 实例。

⑤JLabel(String text, Icon icon, int horizontalAlignment) 创建具有指定文本、图像和水平对齐方式的 JLabel 实例。

⑥JLabel(String text, int horizontalAlignment) 创建具有指定文本和水平对齐方式的 JLabel 实例。

JLabel常用方法:

①getHorizontalAlignment() 返回标签内容沿 X 轴的对齐方式。

②getHorizontalTextPosition() 返回标签的文本相对其图像的水平位置。

③getIcon() 返回该标签显示的图形图像(字形、图标)。 

④getText() 返回该标签所显示的文本字符串。

⑤setHorizontalAlignment(int alignment) 设置标签内容沿 X 轴的对齐方式。

⑥setHorizontalTextPosition(int textPosition) 设置标签的文本相对其图像的水平位置。

⑦setIcon(Icon icon) 定义此组件将要显示的图标。

⑧setText(String text) 定义此组件将要显示的单行文本。

⑨setVerticalAlignment(int alignment) 设置标签内容沿 Y 轴的对齐方式。

⑩setVerticalTextPosition(int textPosition) 设置标签的文本相对其图像的垂直位置。

文本框(JTextField和JPasswordField)

JTextField组件用于创建文本框。文本框一般是用来接收单行文本信息输入的区域。当用户输入文本信息后,如果为JTextField对象添加事件处理,按Enter键会激发一定的动作。

JTextField常用构造方法:

①JTextField():创建一个空的文本框。

②JTextField(String text):创建一个具有初始文本信息text的文本框。

③JTextField(String text,int columns):创建一个具有初始文本信息text以及指定列数的文本框。

JTextField常用方法:

①void setText(String text):设置文本框显示内容。

②String getText():获取文本框显示内容。

JPasswordField是JTextField类的子类,是一种特殊的文本框。和文本框一样,它也是用来接收单行文本信息的输入区域,但会用回显字符串替代掉输入的文本信息。因此JPasswordField也叫做密码文本框。JPasswordField默认的回显字符是*,用户可以自行设置回显字符。

JPasswordField常用构造方法:

①JPasswordField():创建一个空的密码文本框。

②JPasswordField(String text):创建一个具有初始文本信息的密码文本框。

③JPasswordField(String text.int columns):创建一个具有初始文本信息和指定列数的密码文本框。

④JPasswordField(int columns):创建一个指定列数的密码文本框。

JPasswordField常用方法:

①boolean echoCharIsSet():获取是否设置了回显字符的状态。

②void setEchoChar(char c):设置回显字符。

③char getEcho():获取回显字符。

④char[] getPassword():获取密码文本框的文本。

按钮JButton

按钮组件是GUI编程中最常用到的一种组件,它可以捕捉到用户的单击,同时利用按钮事件处理机制响应用户的请求。JButton是Swing提供的按钮组件,按钮上面不仅可以显示文本信息,也可以用来显示图标。

JButton常用构造方法:

①JButton(Icon icon):创建一个带图标的按钮。

②JButton(String text):创建一个带字符的按钮。

③JButton(String text,Icon icon):创建一个既带图标又带字符的按钮。

JButton常用方法:

①setText(String text):设置按钮的文本。

②setIcon(Icon defaultIcon):设置按钮在默认状态下显示的图标。

③setRolloverIcon(Icon rolloverIcon):设置光标移动到按钮上方时显示的图标。

④setPressedIcon(Icon pressedIcon):设置当按钮被按下时显示的图标。

⑤setContentAreaFilled(boolean b):设置按钮的背景为透明,设置为true时按钮将会绘制内容区域。如果希望有一个透明的按钮。那么应该将此属性设置为false。默认绘制内容区域。

⑥setBorderPainted(boolean b):设置为不绘制按钮的边框。当此属性设置成false时表示不绘制,默认为绘制。

综合案例:利用JLabel、JTextField、JPassword、JButton实现一个登录框,用户输入账号密码,点击登录按钮,如果用户名和密码正确,提示登录成功。

使用两个JLabel做账号框和密码框的左侧的标签,使用JTextField做账号框,PasswordField做密码框,JButton做登录按钮,当用户输入admin为账号,12345为密码时,提示登录成功,否则提示登录失败并清空框内信息。

import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;


public class Client extends JFrame{

	public Client(){
		JLabel label_account = new JLabel("账号:",JLabel.CENTER);//标签
		JLabel label_password = new JLabel("密码:",JLabel.CENTER);//标签
		JTextField account = new JTextField(10);//指定十列宽度的文本框
		JPasswordField password = new JPasswordField(10);//创建十列宽度的密码框
		JButton submit = new JButton("登录");//创建登录按钮
		this.getContentPane().setLayout(new BorderLayout());//设置窗体内置面板布局格式
		JPanel centerPanel = new JPanel(new GridLayout(2,2,1,1));//设置中心面板布局格式
		centerPanel.add(label_account);//添加组件
		centerPanel.add(account);
		centerPanel.add(label_password);
		centerPanel.add(password);
		this.getContentPane().add(centerPanel,BorderLayout.CENTER);//添加中心面板到窗体内置面板中心
		this.getContentPane().add(submit,BorderLayout.SOUTH);//添加登录按钮到窗体内置面板南部
		this.pack();//自适应
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//当用户点击窗体右上角x时自动推出程序
		this.setLocationRelativeTo(null);//让窗体显示在屏幕正中间
		//给按钮添加点击事件
		submit.addMouseListener(new MouseAdapter() {
			public void mouseClicked(MouseEvent e){
				String s1 = account.getText();//获取输入的账号信息
				String s2 = password.getText();//获取输入的密码信息
				if(s1.equals("admin")&&s2.equals("12345")){//登录成功
					JOptionPane.showMessageDialog(null, "登录成功");//弹提示框
				}else{//登录失败
					JOptionPane.showMessageDialog(null, "登录失败,请重新输入你的账号密码");//弹提示框
					account.setText("");//清空账号
					password.setText("");//清空密码
				}
			}
		});
		
		this.setVisible(true);//显示窗体
	}
	
	public static void main(String[] args) {
		new Client();
	}

}

运行效果:

猜你喜欢

转载自blog.csdn.net/A1344714150/article/details/85943546
今日推荐