界面事件
界面的构成
界面由如下组件构成:
顶级容器组件(JFame、Frame)
容器组件(JPannel)
一般组件(Button,Label、TextField、CheckBox等等,详见API文档查component)
一个界面,只能有一个顶级容器组件
在顶级容器组件中,可以添加(add方法)容器组件和一般组件
其中,一般组件又可以添加到容器组件里面,再把容器组件添加到顶级容器组件
界面只有组件是不行的,因为组件究竟放哪还不清楚,这时候,就需要布局(layout,具体有哪些可以查阅api文档)了,布局是一种规则,能够让组件根据这种规则在(顶级)容器组件内按照这种规则排列。
下面给出例子:
//创建一个窗体
JFrame MyUI =new JFrame();
//设置窗体属性
MyUI.setSize(470, 400);
//创建组建并添加组建
//北部图片标签
ImageIcon ovck =new ImageIcon("C:\\Users\\18304\\Desktop\\overcooked2.jpg");
JLabel NthImgLb =new JLabel(ovck);
NthImgLb.setSize(300, 200);
MyUI.add(NthImgLb, BorderLayout.NORTH);
//南部登陆按钮
JButton Rsn =new JButton("登陆");
MyUI.add(Rsn,BorderLayout.SOUTH);
//西部图片标签
ImageIcon image1 =new ImageIcon("C:\\Users\\18304\\Desktop\\图片1.png");
JLabel WstImgLb =new JLabel(image1);
MyUI.add(WstImgLb, BorderLayout.WEST);
//东部容器
JPanel EstPnl = new JPanel();
//设置东部容器大小
Dimension eastSize = new Dimension(100, 0);
EstPnl.setPreferredSize(eastSize);
//创建东部组建并添加
JLabel rgst =new JLabel("注册账号 ");
JLabel fgt =new JLabel("忘记密码 ");
EstPnl.add(rgst);
EstPnl.add(fgt);
MyUI.add(EstPnl,BorderLayout.EAST);
//中部容器
JPanel MdlPnl = new JPanel();
//设置中部容器大小
Dimension midSize = new Dimension(100, 100);
MdlPnl.setPreferredSize(midSize);
//创建中部组建并添加
JLabel Id =new JLabel("账号:");
JLabel Pwd =new JLabel("密码:");
JTextField IdFeild =new JTextField(10);
JPasswordField PwdFeild =new JPasswordField(10);
JCheckBox rmbId =new JCheckBox("记住账号");
JCheckBox rmbPwd =new JCheckBox("记住密码");
//JLabel blank =new JLabel(" ");
//MdlPnl.add(blank);MdlPnl.add(blank);MdlPnl.add(blank);MdlPnl.add(blank);
MdlPnl.add(Id); MdlPnl.add(IdFeild);MdlPnl.add(rmbId);
MdlPnl.add(Pwd); MdlPnl.add(PwdFeild);MdlPnl.add(rmbPwd);
MyUI.add(MdlPnl,BorderLayout.CENTER);
//设置可见
MyUI.setVisible(true);
界面的监听器
监听器是用用来实现界面与用户之间的互动的,常用的监听器有键盘监听器(KeyListener),鼠标监听器(MouseListener),活动监听器(ActionListener),这三个监听器分别用于监听键盘、鼠标和一般组件。添加的方法是键盘和鼠标的监听器在顶级容器中添加,活动监听器在组件上添加。
需要注意的是,监听器都是接口,也就是说,要使用监听器的时候要先继承监听器,然后根据事件发生后,所需要执行的操作编写代码。
下面给出样例:
JFrame d=new JFrame();
d.setSize(1000,1000);
d.setTitle("监听器实现");
JButton jbt =new JButton("A");
//这个Listener类要自己写
Listener l =new Listener();
jbt.addActionListener()
d,add(jbt);
d.setVisible(true);
Graphics g=d.getGraphics();
mouselistener_drawer a=new mouselistener_drawer();
d.addMouseListener(a);
//下面是Listener类:
public class listener implements MouseListener,ActionListener{
public void mouseClicked(MouseEvent e) {
System.out.println("鼠标点击了"+e.getX()+" "+e.getY());
drawanegg(e.getX(),e.getY());
}
public void mouseEntered(MouseEvent arg0) {
}
public void mouseExited(MouseEvent arg0) {
}
public void mousePressed(MouseEvent arg0) {
}
public void mouseReleased(MouseEvent arg0) {
}
public void actionPerformed(ActionEvent e){
System.out.println("按钮被点击了!");
}
}