第十二周学习总结
实验代码
package 实验七; import java.awt.*; import javax.swing.*; public class auth { public static void main(String[] args) { JFrame frame=new JFrame("登录窗口");//新建一个窗体对象 JButton submit=new JButton("登录");//声明一个按钮 JButton reset =new JButton("重置"); JLabel name=new JLabel("用户名:");//声明一个标签 JLabel pass=new JLabel("密 码:"); JTextField nameText=new JTextField();//声明一个文本域 JPasswordField passText= new JPasswordField(); name.setBounds(25,15,60,20); pass.setBounds(25,40,60,20); nameText.setBounds(85,15,100,20); passText.setBounds(85,40,100,20); submit.setBounds(185,15,60,20); reset.setBounds(185,40,60,20); //设置位置及大小 frame.setLayout(null); //使用绝对定位 frame.add(name);//向窗体加入按钮,标签,文本框 frame.add(pass); frame.add(nameText); frame.add(passText); frame.add(submit); frame.add(reset); frame.setSize(300,150); //设置窗体大小 frame.setVisible(true); //显示窗体 } }
实验结果
编程总结
只会制作简单的窗口,并不能做到老师的那种可以自己输入信息然后判断是否能成功登录的程度,还在慢慢学习中
一、其他容器
1、JPanel:使用JPanel完成各种复杂的界面显示,在其中可以加入任意的组件。
JPanel:(在JPanel中可以加入任意的组件,然后直接将JPanel容器加入到JFrame容器中)
JFrame frame = new JFrame("") JPanel pan = new JPanel(); pan.add(new JLabel(" ")); frame.add(pan);
2、JSplitPane :主要功能是分割面板,可以将一个窗体分为两个子窗体,可以水平排列也可以是垂直排列。
JSplitPane(分割面板,将一个窗体分割为两个子窗体)
public static final int HORIZONTAL_SPLIT //水平分割 public static final int VERTICAL_SPLIT //垂直分割 public JSplitPane(int newOrientation) //创建对象,并指明分割方式 publci void setDividerSize(int newSize) //设置分割条大小
3、JTabbedPane:在一个面板上设置多个选项卡用户选择。
JTabbedPane(选项卡,一个面板设置多个选项卡)
public void addTab(String titel,Icon icon,Component component,String tip) //添加一个有标题,有图标,有提示信息的组件 static final int TOP/BOTTON/LEFT/RIGHT //表示指向框顶部/底部/左部/右部位置 public JTabbedPane(int tabPlacement) // 创建对象,并指定选项卡布局
4、JScrollPane:Swing中JScrollPane的主要功能就是为显示的内容加上水平滚动条。
JScrollPane(添加滚动条)
static final int HORIZONTAL/VERTICAL_SCROLLBAR_ALWAYS //始终显示水平/垂直滚动条 static final int HORIZONTAL/VERTICAL_SCROLLBAR_NEVER //任何情况下都不显示水平/垂直滚动条 static final int HORIZONTAL/VERTICAL_SCROLLBAR_AS_NEEDED //根据自身需要显示水平/垂直滚动条
5、JDesktopPane与JInternaIFrame:JDesktopPane规定了一个父窗体的基本形式,而JInternaIFrame规定了各个子窗体,JInternaIFrame需要加入到JDesktopPane中。
二、事件处理
1.事件和监听器
事件监听器机制是观察者模式的一种,通过把事件源和事件处理流程以监听器的方法隔离开来,减小了主流程与被触发事件的执行流程间的耦合,便于代码的维护和对事件处理流程的扩展。 在事件监听机制中,涉及到三个角色:事件、发布者和监听器 事件:在事件源和事件监听器之间传递信息的对象实体。 发布者:在事件发生后,负责把事件发布到监听者的对象。 监听者:监听事件,并进行事件处理或转发的对象。 Java中提供了事件监听器实现的框架,使用Java中的事件监听器,需要熟悉以下几个类或接口: 1. EventObject:事件的基类,在Java中自定义事件时需要继承的基类,其定义了事件源——Object类型的属性,可以把发生事件所在的类实例的引用传递过来,以便于在事件处理流程中使用(如果有使用要求的话)。在自定义的事件中,还可以定义自己应用所需的其他属性。 2. EventListener:自定义事件监听器必须实现的接口,没有具体方法,只起到标识作用
2.窗体事件(WindowListener)
常用接口方法 void windowActivated/windowDeactivated(WindowEvent e) //将窗口变为活动/不活动窗口时触发 void windowClosed/Closing/Iconified(WindoowEvent e) //当窗口被关闭时/正在关闭/最小化时触发
3.监听适配器Adapter:
用户继承该类后就可以根据自己的需要来覆写方法,就不需要覆写接口里的所有抽象方法了。
4.动作事件及监听处理ActionListener:
处理按钮的动作事件,让按钮变得更加有意义。 void actionPerFormed(ActionEvent e) //发生操作时调用