?? folder.java
字號:
/*
* Folder.java
*
* Created on June 8, 2007, 5:30 PM
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/
package dyno.swing.beans;
import java.awt.Component;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.LayoutManager;
import javax.swing.JComponent;
/**
* 該類是個輔助類,實現(xiàn)折疊面板的一個邏輯面板,包括面板caption和內(nèi)容。
*
* @author William Chen
*/
class Folder extends JComponent {
//缺省caption的高度
private static final int CAPTION_HEIGHT = 25;
//標題組件
private CaptionButton caption;
//放應用程序的抽屜
private Drawer drawer;
/**
* Creates a new instance of Folder
*/
Folder(String label, JComponent comp) {
this(label, true, comp);
}
/**
* @param label 面板標題文字
* @param expanded 面板是否展開
* @param comp 應用程序組件
*/
Folder(String label, boolean expanded, JComponent comp) {
//設(shè)置自己的layout
setLayout(new FolderTabLayout());
//生成并添加標題組件
caption = new CaptionButton(label, expanded);
add(caption);
//生成并添加抽屜
drawer = new Drawer(expanded ? 1 : 0, comp);
add(drawer);
}
CaptionButton getCaption() {
return caption;
}
Drawer getDrawer() {
return drawer;
}
//獲得該面板目前所需的空間大小:drawer+caption_height
Dimension getRequiredDimension() {
int w = drawer.getContentWidth();
//高度是抽屜的高度加上標題的高度,抽屜的高度是目前抽出的長度
int h = (int) (drawer.getContentHeight() * drawer.getRatio()) +
CAPTION_HEIGHT;
return new Dimension(w, h);
}
/**
* 負責布局面板組件
*/
class FolderTabLayout implements LayoutManager {
public void addLayoutComponent(String name, Component comp) {
}
public void removeLayoutComponent(Component comp) {
}
public Dimension preferredLayoutSize(Container parent) {
return parent.getPreferredSize();
}
public Dimension minimumLayoutSize(Container parent) {
return parent.getMinimumSize();
}
public void layoutContainer(Container parent) {
int w = parent.getWidth();
int h = parent.getHeight();
//標題欄總是固定高度
caption.setBounds(0, 0, w, CAPTION_HEIGHT);
//抽屜只顯示抽出的比例
drawer.setBounds(0, CAPTION_HEIGHT, w, h - CAPTION_HEIGHT);
drawer.setContentWidth(w);
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -