目录
javax.swing.JButton
在图形界面程序中,按钮可能是使用量最大的控件之一,javax.swing 包中 JButton 类就 是用来创建按钮的。如下表为 JButton 常用的构造方法
构造方法 | 说明 |
JButton() | 创建不带文本和图标的按钮 |
JButton(String text) | 创建带文本的按钮 |
JButton(Icon icon) | 创建带图标的按钮 |
JButton(String text, Icon icon) | 创建带文本和图标的按钮 |
JButton 中还提供了很多设置按钮属性的方法,如设置按钮上的文本、按钮等,
方法 | 说明 |
void setText(String text) | 设置按钮上的文本 |
String getText() | 获得按钮上的文本 |
void setBackground(Color c) | 设置按钮的背景色 |
void setEnabled(boolean b) | 设置按钮是否为可用,由参数 b 决定 |
void setVisible(boolean b) | 设置按钮是否为可见,由参数 b 决定 |
void setToolTipText(String text) | 设置按钮的悬停提示信息 |
void setIcon(Icon defaultIcon) | 设置按钮的默认图标(继承自 AbstractButton 类) |
javax.swing.JLabel
JLabel 控件是最简单的 Swing 组件之一,用于在窗体上显示标签, JLabel 既可以显示 文本,也可以显示图像。如下表为 JLabel 常用的构造方法。
构造方法 | 说明 |
JLabel() | 创建不带文本和图标的标签 |
JLabel(String text) | 以指定文本创建标签 |
JLabel(Icon icon) | 以指定图标创建标签 |
JLabel 常用的方法如下表
方法 | 说明 |
void setText(String text) | 设置标签上的文本 |
String getText() | 获得标签上的文本 |
void setIcon(Icon icon) | 设置标签上的图标 |
Icon getIcon() | 获得标签上的图标 |
JLabel 只能用于显示文本和图标信息,用户不能对其进行修改。
javax.swing.JTextField
JTextField 也是一个轻量级控件,它允许用户编辑单行文本。如下表为 JTextField 常用的构造方法。
构造方法 | 说明 |
JTextField() | 创建一个空的文本框 |
JTextField(int columns) | 创建一个指定列数的空文本框 |
JTextField(String text) | 创建一个指定初始文本的文本框 |
JTextField(String text, int columns) | 创建一个指定初始化文本和列数的文本框 |
JTextField(int columns)方法在使用流式布局时才有效果。
JTextField 常用的方法如下表
方法 | 说明 |
void setText(String text) | 设置文本框的文本,由 text 指定 |
String getText() | 获得文本框的文本 |
void setHorizontalAlignment(int alignment) | 设置文本框中文本的水平对齐方式:alignment 可以是 JTextField.LEFT 、 JTextField.CENTER 和 JTextField.RIGHT |
javax.swing.JPasswordField
JPasswordField 是一个轻量级组件,允许编辑单行文本,其视图指示键入内容,但不显 示原始字符。它是一个单行的密码框控件,具体使用方式和 JTextField 大致一样,所以不再 赘述。
使用控件实现登录窗口
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 LoginFrame extends JFrame {
//容器
private JPanel pnlMain;
//标签控件
private JLabel lblTitle;
private JLabel lblUserName;
private JLabel lblUserPwd;
//输入用户名的文本框控件
private JTextField txtUserName;
//输入密码的密码框控件
private JPasswordField pwdUserPwd;
//登录和退出按钮控件
private JButton btnLogin;
private JButton btnQuit;
public LoginFrame() {
//实例化容器和各种控件
pnlMain = new JPanel(null);
lblTitle = new JLabel("用户登录");
lblUserName = new JLabel("用户姓名:");
lblUserPwd = new JLabel("用户密码:");
txtUserName = new JTextField();
pwdUserPwd = new JPasswordField();
btnLogin = new JButton("登录");
btnQuit = new JButton("退出");
init();
}
/**该方法对窗口做初始化操作*/
private void init() {
//设置窗口的各个属性
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setTitle("登录窗口");
this.setSize(300, 220);
this.setResizable(false);
/*设置各个控件的位置和坐标
* setBounds()的前两个参数为控件的左上角坐标,后两个参数为控件的宽和高
*/
lblTitle.setBounds(100, 10, 100, 30);
lblUserName.setBounds(20, 60, 75, 25);
lblUserPwd.setBounds(20, 100, 75, 25);
txtUserName.setBounds(100, 60, 120, 25);
pwdUserPwd.setBounds(100, 100, 120, 25);
btnLogin.setBounds(50, 140, 75, 25);
btnQuit.setBounds(150, 140, 75, 25);
//将所有控件压在容器上
pnlMain.add(lblTitle);
pnlMain.add(lblUserName);
pnlMain.add(lblUserPwd);
pnlMain.add(txtUserName);
pnlMain.add(pwdUserPwd);
pnlMain.add(btnLogin);
pnlMain.add(btnQuit);
//将容器添加到窗口上
this.add(pnlMain);
this.setVisible(true);
}
public static void main(String[] args) {
LoginFrame loginFrame = new LoginFrame();
}
}