资源简介
JAVA SWING可折叠菜单
代码片段和文件信息
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import javax.swing.border.Border;
public class ExampleAccordion extends JPanel {
private static final long serialVersionUID = 1L;
private final JPanel panel = new JPanel();
private final JLabel label = new JLabel();
private final JSplitPane split = new JSplitPane();
private final JScrollPane scroll;
public ExampleAccordion() {
super(new BorderLayout());
panel.setOpaque(true);
panel.setBackground(new Color(116 149 226));
scroll = new JScrollPane(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED
JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
scroll.getVerticalScrollBar().setUnitIncrement(10);
scroll.getViewport().add(panel);
List panelList = makeList();
accordionListener exr = new accordionListener() {
public void accordionStateChanged(accordionEvent e) {
initComponent();
}
};
for (Iterator it = panelList.iterator(); it.hasNext();) {
AccordionPanel epl = (AccordionPanel) it.next();
addComponent(epl); epl.addaccordionListener(exr);
}
scroll.getViewport().addComponentListener(new ComponentAdapter() {
public void componentResized(ComponentEvent e) {
initComponent();
}
});
label.setPreferredSize(new Dimension(200 260));
scroll.setPreferredSize(new Dimension(200 260));
scroll.setMinimumSize(new Dimension(200 260));
split.setLeftComponent(scroll);
split.setRightComponent(label);
split.setDividerSize(1);
split.setBackground(Color.WHITE);
add(split BorderLayout.CENTER);
}
public void initComponent() {
Rectangle re = scroll.getViewport().getViewRect();
Insets ins = panel.getInsets();
int cw = (int) re.getWidth() - ins.left - ins.right - 20;
int ch = 10;
Component[] list = panel.getComponents();
for (int i = 0; i < list.length; i++) {
JComponent tmp = (JComponent) list[i];
int th = tmp.getPreferredSize().height;
tmp.setPreferredSize(new Dimension(cw th));
ch = ch + th + 10;
}
panel.setPreferredSize(new Dimension((int) re.getWidth() ch + ins.top + ins.bottom));
panel.revalidate();
}
public void addComponent(Component label) {
SpringLayout layout = new SpringLayout();
Component[] list = panel.getComponents();
if (list.length == 0) {
layout.putConstraint(SpringLayout.WEST label 10 SpringLayout.WEST panel);
layout.putConstraint(SpringLayout.NORTH label 10 SpringLayout.NORTH panel);
} else {
JComponent cmp = null;
for (int i = 0; i < list.length; i++) {
JComponent tmp = (JComponent) list[i];
layout.putConstraint(SpringLayout.WEST tmp 10 SpringLayout.WEST panel);
if (cmp
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 301 2013-04-15 16:38 SWING可折叠菜单\.classpath
文件 396 2013-04-15 16:38 SWING可折叠菜单\.project
文件 629 2013-04-15 16:38 SWING可折叠菜单\.settings\org.eclipse.jdt.core.prefs
文件 401 2013-04-15 17:05 SWING可折叠菜单\bin\accordionEvent.class
文件 168 2013-04-15 17:05 SWING可折叠菜单\bin\accordionListener.class
文件 1149 2013-04-15 17:05 SWING可折叠菜单\bin\AccordionPanel$1.class
文件 880 2013-04-15 17:05 SWING可折叠菜单\bin\AccordionPanel$2.class
文件 4147 2013-04-15 17:05 SWING可折叠菜单\bin\AccordionPanel.class
文件 637 2013-04-15 17:05 SWING可折叠菜单\bin\ExampleAccordion$1.class
文件 652 2013-04-15 17:05 SWING可折叠菜单\bin\ExampleAccordion$2.class
文件 1412 2013-04-15 17:05 SWING可折叠菜单\bin\ExampleAccordion$3.class
文件 1342 2013-04-15 17:05 SWING可折叠菜单\bin\ExampleAccordion$4.class
文件 1678 2013-04-15 17:05 SWING可折叠菜单\bin\ExampleAccordion$5.class
文件 516 2013-04-15 17:05 SWING可折叠菜单\bin\ExampleAccordion$6.class
文件 5356 2013-04-15 17:05 SWING可折叠菜单\bin\ExampleAccordion.class
文件 9132 2013-04-15 17:05 SWING可折叠菜单\src\ExampleAccordion.java
目录 0 2013-04-15 16:38 SWING可折叠菜单\.settings
目录 0 2013-04-15 17:00 SWING可折叠菜单\bin
目录 0 2013-04-15 17:00 SWING可折叠菜单\src
目录 0 2013-04-15 16:38 SWING可折叠菜单
----------- --------- ---------- ----- ----
28796 20
相关资源
- 数据结构 各种排序算法 java图形界面
- 数据结构 图(邻接矩阵) java图形界
- 使用JAVA实现HTTP多线程
- 微信扫码支付模式二功能实现完整J
- 计算机图形学全部源码JAVA版by中南民
- Java2D之Text实现艺术字编码
- java网络聊天室课程设计报告代码和文
- Java 模拟进程调度算法
- [测试通过]JAVA调用第三方DLL的简单方
- javax.servlet.jsp包
- 基于java使用DDA、Bresenham算法、中点画
- mysql-connector-java-5.1.18-bin.jar
- 目标代码生成 java版
- PageOffice Java 动态填充Word模版
- PageOffice Java中动态填充Word模版生成正
- 决策树ID3算法Java实现
- 会员管理系统代码java编写
- 彩色图转灰度图加权,最大值,平均
- java编写的简单通讯录使用容器类,未
- java3d设置视点的初始位置
- java里提取word里的图片
- kmeans中文文本聚类java源码包括对文本
- luajava-1.1-win32-lua51.zip
- java编写的食堂售饭系统
- 手机游戏 涂鸦跳跃 Java版
- java班级管理系统
- 基于Java的socket的网络聊天程序
- Java版超级玛丽
- 外排序之多路归并的java实现
- 带有动画的java龟兔赛跑源代码 绝多
评论
共有 条评论