同款课程连接:
https://www.bilibili.com/video/BV1HJ411q7jW?p=3&vd_source=a55a729a8abbc793a24a2504a9067a76
1:设置第一个窗口
package ja615;
import javax.swing.JFrame;
public class WidonwRun {
public static void main(String[] args) {
// TODO Auto-generated method stub
FirstWindow first=new FirstWindow();
}
}
class FirstWindow extends JFrame{
public FirstWindow() {
init();
}
public void init() {
setTitle("first window");
setSize(400,200);
setLocation(20,20);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
}
2登录窗体的设计与实现
package ja615;
import javax.swing.*;
public class WidonwRun {
public static void main(String[] args) {
// TODO Auto-generated method stub
LoginFrame first=new LoginFrame();
}
}
class LoginFrame extends JFrame{
private JTextField txtUser;//用户名
private JPasswordField txtPwd;
private JLabel lblUser, lblPwd;
private JButton btnOk,btnExit;
LoginFrame() {
init();
}
public void init() {
lblUser =new JLabel("用户名"); //标签
lblPwd =new JLabel("密码");
lblUser.setBounds(20, 20, 60, 20); //设置控件的位置以及大小
lblPwd.setBounds(20, 50, 60, 20);
setLayout(null); //设置布局管理为null
txtUser=new JTextField(10); // 输入文本框
txtPwd=new JPasswordField(10);
txtUser.setBounds(80, 20, 100, 20); //设置文本框 x,y,长.高
txtPwd.setBounds(80, 50, 100, 20);
JButton btnOK =new JButton("确定");
JButton btnExit= new JButton("取消");
btnOK.setBounds(60, 100, 60, 20);
btnExit.setBounds(125, 100, 60, 20);
add(lblUser);
add(lblPwd);
add(txtUser);
add(txtPwd);
add(btnOK);
add(btnExit);
setBounds(1,1,250,200);
setTitle("登录窗体");
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
3:常用控件类介绍
使用控件对应的类创建对象
例如: Jlabel(标签) JButtton(按钮) JTextFiled(文本)
控件的共同特性: 所有控件都继承Jcomponent类
共同方法:
1:setText();
2:getText();
3:setbounds(x,y,width,length);
package demo;
import java.awt.Color;
import javax.swing.*;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
LoginFrame login=new LoginFrame();
}
}
class LoginFrame extends JFrame{
private JTextField txtUser;//用户名
private JPasswordField txtPwd;
private JLabel lblUser,lblPwd;
private JButton btnOK,btnExit;
private JRadioButton rb1,rb2; //声明我的单选钮对象
public LoginFrame() {
init();
}
public void init() {
lblUser=new JLabel("用户名"); //标签
lblPwd =new JLabel("密码");
lblUser.setBounds(20, 20, 60, 20);
lblPwd.setBounds(20, 50, 60, 20);
setLayout(null);
txtUser=new JTextField(10);
txtPwd=new JPasswordField(10);
txtUser.setBounds(80,20,100,20);
txtPwd.setBounds(80,50,100,20);
rb1=new JRadioButton("管理员",false); //创建单选按钮对象
rb1.setBounds(20, 70, 80, 20);
rb2=new JRadioButton("普通会员",false);
rb2.setBounds(80, 70, 80, 20);
btnOK =new JButton("确定");
btnExit=new JButton("取消");
btnOK.setBounds(60, 100, 60, 20);
btnExit.setBounds(125, 100, 60, 20);
add(lblUser);
add(lblPwd);
add(txtUser);
add(txtPwd);
add(rb1);
add(rb2);
add(btnExit);
add(btnOK);
setBounds(1,1,250,200);
setTitle("登录窗体");
setVisible(true);
}
}
4:事件处理程序
谁产生事件
–源对象
确定谁去处理事件
–监听者
–实现事件处理监听接口
–完成事件处理方法
源对象添加事件的监听器对象
package demo;
import java.awt.Color;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.*;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
LoginFrameWithAction login=new LoginFrameWithAction();
}
}
class LoginFrameWithAction extends JFrame implements ActionListener{
private JTextField txtUser;//用户名
private JPasswordField txtPwd;
private JLabel lblUser,lblPwd;
private JButton btnOK,btnExit;
private JRadioButton rb1,rb2; //声明我的单选钮对象
public LoginFrameWithAction() {
init();
}
public void init() {
lblUser=new JLabel("用户名"); //标签
lblPwd =new JLabel("密码");
lblUser.setBounds(20, 20, 60, 20);
lblPwd.setBounds(20, 50, 60, 20);
setLayout(null);
txtUser=new JTextField(10);
txtPwd=new JPasswordField(10);
txtUser.setBounds(80,20,100,20);
txtPwd.setBounds(80,50,100,20);
rb1=new JRadioButton("管理员",false); //创建单选按钮对象
rb1.setBounds(20, 70, 80, 20);
rb2=new JRadioButton("普通会员",false);
rb2.setBounds(80, 70, 80, 20);
btnOK =new JButton("确定");
//给按钮添加事件监听器对象
btnOK.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
String re="";
if(txtUser.getText().equals("abc")&&txtPwd.getText().equals("123456"))
re="登录成功";
else
re="用户名密码错误";
JOptionPane.showMessageDialog(LoginFrameWithAction.this,re);
}
}); //匿名类实现ActionListener接口
btnExit=new JButton("取消");
btnOK.setBounds(60, 100, 60, 20);
btnExit.setBounds(125, 100, 60, 20);
btnExit.addActionListener(this);
add(lblUser);
add(lblPwd);
add(txtUser);
add(txtPwd);
add(rb1);
add(rb2);
add(btnExit);
add(btnOK);
setBounds(1,1,250,200);
setTitle("登录窗体");
setVisible(true);
}
public void actionPerformed(ActionEvent e) {
String re= "美羊羊,大傻逼";
JOptionPane.showMessageDialog(LoginFrameWithAction.this,re);
System.exit(0);
}
}
4:容器定义
存放其他控件的控件
– 窗体 面板
可以将控件添加到容器中
– add方法
容器也可以加到容器中
– add方法
功效
– 分组管理控件
javax.swing包
常见容器
JFrame
1.扩展java.awt.Frame类
2:用于在Swing程序中创建窗口
3.包含边框,标题和用于关闭和图标化的按钮
JPanel
1.中间容器
2:将较小的轻量级容器组合在一起
3.与内容窗格相似,面板在默认情况下不透明
JScrollPane
1.有滚动条,进行滚动管理