弹出对话框 对话框包装器有2个类组成:第一个是Popup_dialog,继承与JDialog实现小的如前所示的框架。
生成常规对话框的主要难点是所有的装饰(框架与标题栏)的消失问题,因此如果你需要生成自己的标题栏,下面提供了具体实现的大部分代码:
标题栏是包含一个显示标题的标签和一个按钮(关闭按钮,如导航箭头一样加载图象资源)。
代码如下:
public class Popup_dialog extends JDialog
{
private Color TITLE_BAR_COLOR = com.holub.ui.Colors.LIGHT_YELLOW;
private Color CLOSE_BOX_COLOR = com.holub.ui.Colors.DARK_RED;
private JLabel title = new JLabel("xxxxxxxxxxxxxx");
{ title.setHorizontalAlignment(SwingConstants.CENTER);
title.setOpaque( false );
title.setFont( title.getFont().deriveFont(Font.BOLD) );
}
private JPanel header = new JPanel();
{ header.setBackground( TITLE_BAR_COLOR );
header.setLayout( new BorderLayout() );
header.setBorder( BorderFactory.createEmptyBorder(2,2,2,2) );
header.add( title , BorderLayout.CENTER );
header.add( create_close_button() , BorderLayout.EAST );
}
private JPanel content_pane = new JPanel();
{ content_pane.setLayout( new BorderLayout() );
}
public Popup_dialog( Frame owner ){ super(owner); setModal(true); }
public Popup_dialog( Dialog owner){ super(owner); setModal(true); }
/* Code common to all constructors. */
{
init_dragable();
setUndecorated( true );
JPanel contents = new JPanel();
contents.setBorder( BorderFactory.createLineBorder(Color.BLACK,1) );
contents.setLayout(new BorderLayout());
contents.add(header, BorderLayout.NORTH);
contents.add(content_pane, BorderLayout.CENTER);
contents.setBackground( Color.WHITE );
setContentPane( contents ); // , BorderLayout.CENTER );
setLocation(100,100);
}
查看本文来源