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组件用于创建文本框。文本框一般是用来接收单行文本信息输入的区域。当用户输入文本信息后,如果为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():获取密码文本框的文本。
按钮组件是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();
}
}
运行效果: