import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.tree.*;
import javax.swing.event.*;
import javax.swing.border.*;
import javax.swing.table.*;
/**
* Swing 组件测试程序
* 测试Swing所有组件及其相应的事件
* @author 天翼.李 2003.4.17 晚23:14
* @link
http://www.robochina.org
* @link robococde@etang.com
*/
public class SwingTest extends JFrame
{
/**
* 主模块,初始化所有子模块,并设置主框架的相关属性
*/
public SwingTest()
{
// 初始化所有模块
MenuTest menuTest = new MenuTest();
LeftPanel leftPanel = new LeftPanel();
RightPanel rightPanel = new RightPanel();
BottomPanel bottomPanel = new BottomPanel();
CenterPanel centerPanel = new CenterPanel();
// 设置主框架的布局
Container c = this.getContentPane();
// c.setLayout(new BorderLayout())
this.setJMenuBar(menuTest);
c.add(leftPanel,BorderLayout.WEST);
c.add(rightPanel,BorderLayout.EAST);
c.add(centerPanel,BorderLayout.CENTER);
c.add(bottomPanel,BorderLayout.SOUTH);
// 利用无名内隐类,增加窗口事件
this.addWindowListener(new WindowAdapter()
{
public void WindowClosing(WindowEvent e)
{
// 释放资源,退出程序
dispose();
System.exit(0);
}
});
setSize(700,500);
setTitle("Swing 组件大全简体版");
// 隐藏frame的标题栏,此功暂时关闭,以方便使用window事件
// setUndecorated(true);
setLocation(200,150);
show();
}
/**
* 菜单栏处理模块
* JMenuBar --+
* --JMenu--+
* --JMenuItem --ActionListener
*
*/
class MenuTest extends JMenuBar
{
private JDialog aboutDialog;
/**
* 菜单初始化操作
*/
public MenuTest()
{
JMenu fileMenu = new JMenu("文件");
JMenuItem exitMenuItem = new JMenuItem("退出",KeyEvent.VK_E);
JMenuItem aboutMenuItem = new JMenuItem("关于...",KeyEvent.VK_A);
fileMenu.add(exitMenuItem);
fileMenu.add(aboutMenuItem);
this.add(fileMenu);
aboutDialog = new JDialog();
initAboutDialog();