学习swing组件,主要有三个内容
一是组件的显示,二是对组件支持的事件进行侦听,三是是自定义组件
1.JFrame
JFrame是主窗口,它和JDialog,JApplet的地位并列.但是,一个JFrame可以添加JDialog和JApplet进去它的内容面板,而反过来就不行
下面来看JFrame的例子
=================================================
Java代码
1 package blog.swing;
2 import javax.swing.*;
3 import java.awt.event.*;
4
5 class JFrameDemo
6 {
7 JFramemainFrame;
8 public JFrameDemo() {
9 mainFrame = new JFrame ( "JFrameDemoTitle" ); //创建一个JFrame
10 mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE );//设置关闭动作
11 mainFrame.setSize(300,300 );//设置窗口大小
12 mainFrame.setLocationRelativeTo(null);//使窗口显示在屏幕中央
13
14 mainFrame.addWindowListener( new WindowListener(){
15 public void windowOpened( WindowEvent e ){ System.out.println("window opened" ); }
16 public void windowClosing( WindowEvent e ){ System.out.println("window closing" ); }
17 public void windowClosed( WindowEvent e ){ System.out.println( "windowclosed" ); }
18 public void windowIconified( WindowEvent e ){ System.out.println("window iconified" ); }
19 public void windowDeiconified( WindowEvent e ){ System.out.println("window deiconified" ); }
20 public void windowActivated( WindowEvent e ){ System.out.println("window activated" ); }
21 public void windowDeactivated( WindowEvent e ){ System.out.println("window deactivated" ); }
22 });
23 mainFrame.addWindowFocusListener( new WindowFocusListener(){
24 public void windowGainedFocus( WindowEvent e ){ System.out.println("gained focus" ); }
25 public void windowLostFocus( WindowEvent e ){ System.out.println("lost focus" ); }
26 });
27 mainFrame.addWindowStateListener( new WindowStateListener(){
28 public void windowStateChanged( WindowEvent e ){ System.out.println("state changed" ); }
29 });
30
31 mainFrame.setVisible( true );
32 }
33 public static void main(String[] args)
34 {
35 new JFrameDemo();
36 }
37 }
==========================================================
这里出现了三个不同的窗口事件侦听器,并实现了它们所有的方法
WindowListener和WindowFocusListener都可以对窗口失去,获得焦点进行侦听,不同的是,非帧窗口和对话框窗口不能接收WindowListener的windowActivated和windodwDeactivated事件
虽然可以用WindowListener对窗口的一些状态进行侦听,但是WindowStateListener提供了更多的支持.例如,WindowStateListener可以处理还原窗口的事件,可以判断一个窗口是不是在垂直和水平两个方向都可以最大化(命令提示符窗口只可以在垂直方向上最大化),而这些都是WindowListener都无能为力
2.JLabel
JLabel是一标签.在它的文本里嵌入html标签,可以简单实现一个超链接组件
。。。。。。。。 |
|