实验目的:
1.掌握Swing常用的组件的使用;
2.掌握程序界面开发的步骤;
3.掌握事件监听器的使用。
实验内容:
实验一:模拟QQ登录界面
运行效果如下:
1.在登录界面输入用户名和密码
2.点击“确定”按钮,弹出消息提示框,显示输入的用户名和密码。
源代码:
package test12;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class QQLogin extends JFrame implements ActionListener{//本身是个容器、监听器
JLabel jl1 = new JLabel("用户名:");//标签:设置用户名
JTextField jtf1 = new JTextField(20);//文本域组件
JLabel jl2 = new JLabel("密 码:");//标签:设置密码
JTextField jtf2 = new JTextField(20);//文本域组件
JButton jb1 = new JButton("确定");//按钮类组件:设置按钮"确定"
JButton jb2 = new JButton("取消");//按钮类组件:设置按钮"取消"
JPanel jp1 = new JPanel();//第一行 建立JPanel中间容器
JPanel jp2 = new JPanel();//第二行
JPanel jp3 = new JPanel();//第三行
public QQLogin() {
this.setLayout(new GridLayout(5,1));//设置GridLayout网络布局管理器
this.setTitle("QQ登录界面");
this.setSize(600,400);//窗体大小 因为对象本身就是窗体,所以用this.xxx来设置窗体
this.setLocationRelativeTo(null);//把窗体放在屏幕中间
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//关闭窗口程序退出
//设置退出键 JFrame.EXIT_ON_CLOSE其实与数字3是等价的,但是把数字3放在这里无意义,所以一般不放,理解与3等价即可
jp1.add(jl1); //第一行是用户名
jp1.add(jtf1);
jp2.add(jl2); //第二行是密码
jp2.add(jtf2);
jp3.add(jb1);//第三行是 两个按钮
jp3.add(jb2);
this.add(new JLabel());//把界面设计的三行文本框中
this.add(jp1);//把第一二三行放入容器里
this.add(jp2);
this.add(jp3);
this.add(new JLabel());
this.jb1.addActionListener(this);//注册监听器
this.jb2.addActionListener(this);//注册监听器
}
public static void main(String[] args) {
QQLogin LoginWindow = new QQLogin();
LoginWindow.setVisible(true);//使界面可视
}
@Override
public void actionPerformed(ActionEvent e) {//事件源
if(e.getSource()==jb1) {//选择“确定”后显示内容
String str1 = "用户名:"+jtf1.getText()+";密码:"+jtf2.getText();
JOptionPane.showMessageDialog(this, str1);
}
else if(e.getSource()==jb2) {//选择“取消”后退出
System.exit(0);
}
}
}
实验二:学生信息输入界面
运行结果如下:
1.在登录界面输入学生姓名和选择性别
输入我的名字,选择我的性别 (* ̄︶ ̄)
2.点击“确定”按钮,弹出消息提示框,显示输入的用户名和选择的性别。
学生信息录入界面与实验一的QQ登录界面的区别是在性别选择这里,其他的没什么差别,(* ̄︶ ̄)
源代码:
package test12;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class StudentLogin extends JFrame implements ActionListener{
JLabel jl1 = new JLabel("学生姓名:");//标签:设置学生姓名
JTextField jtf1 = new JTextField(15);//文本域组件
JLabel jl2 = new JLabel(" 性别:");//标签:设置性别
JComboBox<String> com = new JComboBox<String>();//选择框,性别的选择:“男”和“女”
JButton jb1 = new JButton("确定");//按钮类组件:设置按钮"确定"
JButton jb2 = new JButton("退出");//按钮类组件:设置按钮"退出"
JPanel jp1 = new JPanel();//第一行 建立JPanel中间容器
JPanel jp2 = new JPanel();//第二行
JPanel jp3 = new JPanel();//第三行
public StudentLogin(){
this.setLayout(new GridLayout(4,1));//设置GridLayout网络布局管理器
this.setTitle("学生信息输入窗口");
this.setSize(400,300);//窗体大小
this.setLocationRelativeTo(null);//把窗体放在屏幕中间
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//关闭窗口程序退出
jp1.add(jl1); //第一行是学生姓名
jp1.add(jtf1);
jp2.add(jl2);
jp2.add(com); //第二行是性别
com.addItem("男");
com.addItem("女");
jp3.add(jb1);//第三行是 两个按钮
jp3.add(jb2);
this.add(jp1);//把第一二三行放入容器里
this.add(jp2);
this.add(jp3);
this.jb1.addActionListener(this);//注册监听器
this.jb2.addActionListener(this);//注册监听器
}
public static void main(String[] args) {
StudentLogin LoginWindow = new StudentLogin();
LoginWindow.setVisible(true);//使界面可视
}
@Override
public void actionPerformed(ActionEvent e) {//事件源
if(e.getSource()==jb1) {//选择“确定”后显示内容
String sex=(String)com.getSelectedItem();//获取选择框里得到的性别
String str1=jtf1.getText()+"是一位"+sex+"同学!";
JOptionPane.showMessageDialog(this,str1);
}
else if(e.getSource()==jb2) {//选择“退出”后退出
System.exit(0);
}
}
}
第一次上课,很多东西还不是很清楚,就是想记录一下这次作业,写的不好的地方一定要告诉我哟!我会认真改正的,希望下次能做得更好,小白加油!冲鸭!嘿嘿
ヾ(◍°∇°◍)ノ゙