Java实现类Windows导航栏

在Windows系统中,通常都会有左侧导航栏以供选择,而Java架构下并没有给我们提供同样的组件,但是构建同样的东西实际上是很容易的。

Java实现类Windows导航栏packageorg.loon.framework.swing.test;
Java实现类Windows导航栏
Java实现类Windows导航栏
importjava.awt.BorderLayout;
Java实现类Windows导航栏
importjava.awt.Color;
Java实现类Windows导航栏
importjava.awt.Component;
Java实现类Windows导航栏
importjava.awt.Dimension;
Java实现类Windows导航栏
importjava.awt.EventQueue;
Java实现类Windows导航栏
importjava.awt.Font;
Java实现类Windows导航栏
importjava.awt.GradientPaint;
Java实现类Windows导航栏
importjava.awt.Graphics;
Java实现类Windows导航栏
importjava.awt.Graphics2D;
Java实现类Windows导航栏
importjava.awt.GridLayout;
Java实现类Windows导航栏
importjava.awt.Insets;
Java实现类Windows导航栏
importjava.awt.Rectangle;
Java实现类Windows导航栏
Java实现类Windows导航栏
importjava.awt.event.ComponentAdapter;
Java实现类Windows导航栏
importjava.awt.event.ComponentEvent;
Java实现类Windows导航栏
importjava.awt.event.MouseAdapter;
Java实现类Windows导航栏
importjava.awt.event.MouseEvent;
Java实现类Windows导航栏
importjava.util.ArrayList;
Java实现类Windows导航栏
importjava.util.Iterator;
Java实现类Windows导航栏
importjava.util.List;
Java实现类Windows导航栏
Java实现类Windows导航栏
importjavax.swing.BorderFactory;
Java实现类Windows导航栏
importjavax.swing.ButtonGroup;
Java实现类Windows导航栏
importjavax.swing.JCheckBox;
Java实现类Windows导航栏
importjavax.swing.JComponent;
Java实现类Windows导航栏
importjavax.swing.JFrame;
Java实现类Windows导航栏
importjavax.swing.JLabel;
Java实现类Windows导航栏
importjavax.swing.JPanel;
Java实现类Windows导航栏
importjavax.swing.JRadioButton;
Java实现类Windows导航栏
importjavax.swing.JScrollPane;
Java实现类Windows导航栏
importjavax.swing.JSplitPane;
Java实现类Windows导航栏
importjavax.swing.SpringLayout;
importjavax.swing.WindowConstants;
Java实现类Windows导航栏
importjavax.swing.border.Border;
Java实现类Windows导航栏
Java实现类Windows导航栏Java实现类Windows导航栏
/***//**
Java实现类Windows导航栏*<p>
Java实现类Windows导航栏*Title:LoonFramework
Java实现类Windows导航栏*</p>
Java实现类Windows导航栏*<p>
Java实现类Windows导航栏*Description:
Java实现类Windows导航栏*</p>
Java实现类Windows导航栏*<p>
Java实现类Windows导航栏*Copyright:Copyright(c)2007
Java实现类Windows导航栏*</p>
Java实现类Windows导航栏*<p>
Java实现类Windows导航栏*Company:LoonFramework
Java实现类Windows导航栏*</p>
Java实现类Windows导航栏*
Java实现类Windows导航栏*
@authorchenpeng
Java实现类Windows导航栏*@email:[email protected]
Java实现类Windows导航栏*
@version0.1
Java实现类Windows导航栏
*/

Java实现类Windows导航栏
Java实现类Windows导航栏Java实现类Windows导航栏
publicclassExampleAccordionextendsJPanel...{
Java实现类Windows导航栏Java实现类Windows导航栏
/***//**
Java实现类Windows导航栏*
Java实现类Windows导航栏
*/

Java实现类Windows导航栏
privatestaticfinallongserialVersionUID=1L;
Java实现类Windows导航栏
Java实现类Windows导航栏
privatefinalJPanelpanel=newJPanel();
Java实现类Windows导航栏
Java实现类Windows导航栏
privatefinalJLabellabel=newJLabel();
Java实现类Windows导航栏
Java实现类Windows导航栏
//分割窗体
Java实现类Windows导航栏
privatefinalJSplitPanesplit=newJSplitPane();
Java实现类Windows导航栏
Java实现类Windows导航栏
privatefinalJScrollPanescroll;
Java实现类Windows导航栏
Java实现类Windows导航栏
//折叠效果
Java实现类Windows导航栏Java实现类Windows导航栏
publicExampleAccordion()...{
Java实现类Windows导航栏
super(newBorderLayout());
Java实现类Windows导航栏panel.setOpaque(
true);
Java实现类Windows导航栏panel.setBackground(
newColor(116,149,226));
Java实现类Windows导航栏
//滚动条
Java实现类Windows导航栏
scroll=newJScrollPane(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
Java实现类Windows导航栏JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
Java实现类Windows导航栏scroll.getVerticalScrollBar().setUnitIncrement(
10);
Java实现类Windows导航栏scroll.getViewport().add(panel);
Java实现类Windows导航栏
Java实现类Windows导航栏
//构建数据列表
Java实现类Windows导航栏
ListpanelList=makeList();
Java实现类Windows导航栏
//设定监听
Java实现类Windows导航栏Java实现类Windows导航栏
accordionListenerexr=newaccordionListener()...{
Java实现类Windows导航栏Java实现类Windows导航栏
publicvoidaccordionStateChanged(accordionEvente)...{
Java实现类Windows导航栏initComponent();
Java实现类Windows导航栏}

Java实现类Windows导航栏}
;
Java实现类Windows导航栏Java实现类Windows导航栏
for(Iteratorit=panelList.iterator();it.hasNext();)...{
Java实现类Windows导航栏AccordionPanelepl
=(AccordionPanel)it.next();
Java实现类Windows导航栏addComponent(epl);
Java实现类Windows导航栏epl.addaccordionListener(exr);
Java实现类Windows导航栏}

Java实现类Windows导航栏
//加载滚动条监听
Java实现类Windows导航栏Java实现类Windows导航栏
scroll.getViewport().addComponentListener(newComponentAdapter()...{
Java实现类Windows导航栏Java实现类Windows导航栏
publicvoidcomponentResized(ComponentEvente)...{
Java实现类Windows导航栏initComponent();
Java实现类Windows导航栏}

Java实现类Windows导航栏}
);
Java实现类Windows导航栏
//设定大小
Java实现类Windows导航栏
label.setPreferredSize(newDimension(200,260));
Java实现类Windows导航栏
Java实现类Windows导航栏scroll.setPreferredSize(
newDimension(200,260));
Java实现类Windows导航栏
Java实现类Windows导航栏scroll.setMinimumSize(
newDimension(200,260));
Java实现类Windows导航栏
Java实现类Windows导航栏split.setLeftComponent(scroll);
Java实现类Windows导航栏split.setRightComponent(label);
Java实现类Windows导航栏
Java实现类Windows导航栏split.setDividerSize(
1);
Java实现类Windows导航栏split.setBackground(Color.WHITE);
Java实现类Windows导航栏add(split,BorderLayout.CENTER);
Java实现类Windows导航栏}

Java实现类Windows导航栏
Java实现类Windows导航栏Java实现类Windows导航栏
publicvoidinitComponent()...{
Java实现类Windows导航栏Rectanglere
=scroll.getViewport().getViewRect();
Java实现类Windows导航栏Insetsins
=panel.getInsets();
Java实现类Windows导航栏
intcw=(int)re.getWidth()-ins.left-ins.right-20;
Java实现类Windows导航栏
intch=10;
Java实现类Windows导航栏Component[]list
=panel.getComponents();
Java实现类Windows导航栏Java实现类Windows导航栏
for(inti=0;i<list.length;i++)...{
Java实现类Windows导航栏JComponenttmp
=(JComponent)list[i];
Java实现类Windows导航栏
intth=tmp.getPreferredSize().height;
Java实现类Windows导航栏tmp.setPreferredSize(
newDimension(cw,th));
Java实现类Windows导航栏ch
=ch+th+10;
Java实现类Windows导航栏}

Java实现类Windows导航栏panel.setPreferredSize(
newDimension((int)re.getWidth(),ch+ins.top
Java实现类Windows导航栏
+ins.bottom));
Java实现类Windows导航栏panel.revalidate();
Java实现类Windows导航栏}

Java实现类Windows导航栏
Java实现类Windows导航栏Java实现类Windows导航栏
publicvoidaddComponent(Componentlabel)...{
Java实现类Windows导航栏SpringLayoutlayout
=newSpringLayout();
Java实现类Windows导航栏Component[]list
=panel.getComponents();
Java实现类Windows导航栏Java实现类Windows导航栏
if(list.length==0)...{
Java实现类Windows导航栏layout.putConstraint(SpringLayout.WEST,label,
10,
Java实现类Windows导航栏SpringLayout.WEST,panel);
Java实现类Windows导航栏layout.putConstraint(SpringLayout.NORTH,label,
10,
Java实现类Windows导航栏SpringLayout.NORTH,panel);
Java实现类Windows导航栏Java实现类Windows导航栏}
else...{
Java实现类Windows导航栏JComponentcmp
=null;
Java实现类Windows导航栏Java实现类Windows导航栏
for(inti=0;i<list.length;i++)...{
Java实现类Windows导航栏JComponenttmp
=(JComponent)list[i];
Java实现类Windows导航栏layout.putConstraint(SpringLayout.WEST,tmp,
10,
Java实现类Windows导航栏SpringLayout.WEST,panel);
Java实现类Windows导航栏Java实现类Windows导航栏
if(cmp==null)...{
Java实现类Windows导航栏layout.putConstraint(SpringLayout.NORTH,tmp,
10,
Java实现类Windows导航栏SpringLayout.NORTH,panel);
Java实现类Windows导航栏Java实现类Windows导航栏}
else...{
Java实现类Windows导航栏layout.putConstraint(SpringLayout.NORTH,tmp,
10,
Java实现类Windows导航栏SpringLayout.SOUTH,cmp);
Java实现类Windows导航栏}

Java实现类Windows导航栏cmp
=tmp;
Java实现类Windows导航栏}

Java实现类Windows导航栏layout.putConstraint(SpringLayout.WEST,label,
10,
Java实现类Windows导航栏SpringLayout.WEST,panel);
Java实现类Windows导航栏layout.putConstraint(SpringLayout.NORTH,label,
10,
Java实现类Windows导航栏SpringLayout.SOUTH,cmp);
Java实现类Windows导航栏}

Java实现类Windows导航栏panel.add(label);
Java实现类Windows导航栏panel.setLayout(layout);
Java实现类Windows导航栏initComponent();
Java实现类Windows导航栏}

Java实现类Windows导航栏
Java实现类Windows导航栏Java实现类Windows导航栏
privateListmakeList()...{
Java实现类Windows导航栏ListpanelList
=newArrayList();
Java实现类Windows导航栏Java实现类Windows导航栏panelList.add(
newAccordionPanel("列表1")...{
Java实现类Windows导航栏Java实现类Windows导航栏
/***//**
Java实现类Windows导航栏*
Java实现类Windows导航栏
*/

Java实现类Windows导航栏
privatestaticfinallongserialVersionUID=1L;
Java实现类Windows导航栏
Java实现类Windows导航栏Java实现类Windows导航栏
publicJPanelmakePanel()...{
Java实现类Windows导航栏JPanelpnl
=newJPanel(newGridLayout(0,1));
Java实现类Windows导航栏JCheckBoxc1
=newJCheckBox("aaaaaa");
Java实现类Windows导航栏JCheckBoxc2
=newJCheckBox("bbbbbb");
Java实现类Windows导航栏c1.setOpaque(
false);
Java实现类Windows导航栏c2.setOpaque(
false);
Java实现类Windows导航栏pnl.add(c1);
Java实现类Windows导航栏pnl.add(c2);
Java实现类Windows导航栏pnl.setSize(
newDimension(0,60));
Java实现类Windows导航栏pnl.setBorder(BorderFactory.createEmptyBorder(
5,15,5,15));
Java实现类Windows导航栏
returnpnl;
Java实现类Windows导航栏}

Java实现类Windows导航栏}
);
Java实现类Windows导航栏Java实现类Windows导航栏panelList.add(
newAccordionPanel("列表2")...{
Java实现类Windows导航栏Java实现类Windows导航栏
/***//**
Java实现类Windows导航栏*
Java实现类Windows导航栏
*/

Java实现类Windows导航栏
privatestaticfinallongserialVersionUID=1L;
Java实现类Windows导航栏
Java实现类Windows导航栏Java实现类Windows导航栏
publicJPanelmakePanel()...{
Java实现类Windows导航栏JPanelpnl
=newJPanel(newGridLayout(0,1));
Java实现类Windows导航栏pnl.add(
newJLabel("辛苦遭逢起一经"));
Java实现类Windows导航栏pnl.add(
newJLabel("干戈寥落四周星"));
Java实现类Windows导航栏pnl.add(
newJLabel("山河破碎风飘絮"));
Java实现类Windows导航栏pnl.add(
newJLabel("身世浮沉雨打萍"));
Java实现类Windows导航栏pnl.setSize(
newDimension(0,100));
Java实现类Windows导航栏pnl.setBorder(BorderFactory.createEmptyBorder(
5,15,5,15));
Java实现类Windows导航栏
returnpnl;
Java实现类Windows导航栏}

Java实现类Windows导航栏}
);
Java实现类Windows导航栏Java实现类Windows导航栏panelList.add(
newAccordionPanel("列表3")...{
Java实现类Windows导航栏Java实现类Windows导航栏
/***//**
Java实现类Windows导航栏*
Java实现类Windows导航栏
*/

Java实现类Windows导航栏
privatestaticfinallongserialVersionUID=1L;
Java实现类Windows导航栏
Java实现类Windows导航栏Java实现类Windows导航栏
publicJPanelmakePanel()...{
Java实现类Windows导航栏JPanelpnl
=newJPanel(newGridLayout(0,1));
Java实现类Windows导航栏JRadioButtonb1
=newJRadioButton("aa");
Java实现类Windows导航栏JRadioButtonb2
=newJRadioButton("bb");
Java实现类Windows导航栏JRadioButtonb3
=newJRadioButton("cc");
Java实现类Windows导航栏b1.setOpaque(
false);
Java实现类Windows导航栏b2.setOpaque(
false);
Java实现类Windows导航栏b3.setOpaque(
false);
Java实现类Windows导航栏pnl.add(b1);
Java实现类Windows导航栏pnl.add(b2);
Java实现类Windows导航栏pnl.add(b3);
Java实现类Windows导航栏ButtonGroupbg
=newButtonGroup();
Java实现类Windows导航栏bg.add(b1);
Java实现类Windows导航栏bg.add(b2);
Java实现类Windows导航栏bg.add(b3);
Java实现类Windows导航栏b1.setSelected(
true);
Java实现类Windows导航栏pnl.setSize(
newDimension(0,80));
Java实现类Windows导航栏pnl.setBorder(BorderFactory.createEmptyBorder(
5,15,5,15));
Java实现类Windows导航栏
returnpnl;
Java实现类Windows导航栏}

Java实现类Windows导航栏}
);
Java实现类Windows导航栏
returnpanelList;
Java实现类Windows导航栏}

Java实现类Windows导航栏
Java实现类Windows导航栏Java实现类Windows导航栏
publicstaticvoidmain(String[]args)...{
Java实现类Windows导航栏Java实现类Windows导航栏EventQueue.invokeLater(
newRunnable()...{
Java实现类Windows导航栏Java实现类Windows导航栏
publicvoidrun()...{
Java实现类Windows导航栏createUI();
Java实现类Windows导航栏}

Java实现类Windows导航栏}
);
Java实现类Windows导航栏}

Java实现类Windows导航栏
Java实现类Windows导航栏Java实现类Windows导航栏
publicstaticvoidcreateUI()...{
Java实现类Windows导航栏JFrameframe
=newJFrame("JAVA实现类Windows导航栏");
Java实现类Windows导航栏frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
Java实现类Windows导航栏frame.getContentPane().add(
newExampleAccordion());
Java实现类Windows导航栏frame.pack();
Java实现类Windows导航栏frame.setLocationRelativeTo(
null);
Java实现类Windows导航栏frame.setVisible(
true);
Java实现类Windows导航栏}

Java实现类Windows导航栏}

Java实现类Windows导航栏
Java实现类Windows导航栏Java实现类Windows导航栏
classaccordionEventextendsjava.util.EventObject...{
Java实现类Windows导航栏Java实现类Windows导航栏
/***//**
Java实现类Windows导航栏*
Java实现类Windows导航栏
*/

Java实现类Windows导航栏
privatestaticfinallongserialVersionUID=1L;
Java实现类Windows导航栏
Java实现类Windows导航栏Java实现类Windows导航栏
publicaccordionEvent(Objectsource)...{
Java实现类Windows导航栏
super(source);
Java实现类Windows导航栏}

Java实现类Windows导航栏}

Java实现类Windows导航栏
Java实现类Windows导航栏Java实现类Windows导航栏
interfaceaccordionListener...{
Java实现类Windows导航栏
publicvoidaccordionStateChanged(accordionEvente);
Java实现类Windows导航栏}

Java实现类Windows导航栏
Java实现类Windows导航栏Java实现类Windows导航栏
abstractclassAccordionPanelextendsJPanel...{
Java实现类Windows导航栏
abstractpublicJPanelmakePanel();
Java实现类Windows导航栏
Java实现类Windows导航栏
privatefinalString_title;
Java实现类Windows导航栏
Java实现类Windows导航栏
privatefinalJLabellabel;
Java实现类Windows导航栏
Java实现类Windows导航栏
privatefinalJPanelpanel;
Java实现类Windows导航栏
Java实现类Windows导航栏
privatebooleanopenFlag=false;
Java实现类Windows导航栏
Java实现类Windows导航栏Java实现类Windows导航栏
publicAccordionPanel(Stringtitle)...{
Java实现类Windows导航栏
super(newBorderLayout());
Java实现类Windows导航栏_title
=title;
Java实现类Windows导航栏Java实现类Windows导航栏label
=newJLabel(""+title)...{
Java实现类Windows导航栏Java实现类Windows导航栏
/***//**
Java实现类Windows导航栏*
Java实现类Windows导航栏
*/

Java实现类Windows导航栏
privatestaticfinallongserialVersionUID=1L;
Java实现类Windows导航栏
Java实现类Windows导航栏Java实现类Windows导航栏
protectedvoidpaintComponent(Graphicsg)...{
Java实现类Windows导航栏Graphics2Dg2
=(Graphics2D)g;
Java实现类Windows导航栏
//绘制渐变
Java实现类Windows导航栏
g2.setPaint(newGradientPaint(50,0,Color.WHITE,getWidth(),
Java实现类Windows导航栏getHeight(),
newColor(199,212,247)));
Java实现类Windows导航栏g2.fillRect(
0,0,getWidth(),getHeight());
Java实现类Windows导航栏
super.paintComponent(g);
Java实现类Windows导航栏}

Java实现类Windows导航栏}
;
Java实现类Windows导航栏Java实现类Windows导航栏label.addMouseListener(
newMouseAdapter()...{
Java实现类Windows导航栏Java实现类Windows导航栏
publicvoidmousePressed(MouseEventevt)...{
Java实现类Windows导航栏openFlag
=!openFlag;
Java实现类Windows导航栏initPanel();
Java实现类Windows导航栏fireaccordionEvent();
Java实现类Windows导航栏}

Java实现类Windows导航栏}
);
Java实现类Windows导航栏label.setForeground(
newColor(33,93,198));
Java实现类Windows导航栏label.setFont(
newFont("宋体",1,12));
Java实现类Windows导航栏label.setBorder(BorderFactory.createEmptyBorder(
2,5,2,2));
Java实现类Windows导航栏panel
=makePanel();
Java实现类Windows导航栏panel.setOpaque(
true);
Java实现类Windows导航栏BorderoutBorder
=BorderFactory.createMatteBorder(0,2,2,2,
Java实现类Windows导航栏Color.WHITE);
Java实现类Windows导航栏BorderinBorder
=BorderFactory.createEmptyBorder(10,10,10,10);
Java实现类Windows导航栏Borderborder
=BorderFactory.createCompoundBorder(outBorder,inBorder);
Java实现类Windows导航栏panel.setBorder(border);
Java实现类Windows导航栏panel.setBackground(
newColor(240,240,255));
Java实现类Windows导航栏add(label,BorderLayout.NORTH);
Java实现类Windows导航栏}

Java实现类Windows导航栏
Java实现类Windows导航栏Java实现类Windows导航栏
publicbooleanisSelected()...{
Java实现类Windows导航栏
returnopenFlag;
Java实现类Windows导航栏}

Java实现类Windows导航栏
Java实现类Windows导航栏Java实现类Windows导航栏
publicvoidsetSelected(booleanflg)...{
Java实现类Windows导航栏openFlag
=flg;
Java实现类Windows导航栏initPanel();
Java实现类Windows导航栏}

Java实现类Windows导航栏
Java实现类Windows导航栏Java实现类Windows导航栏
protectedvoidinitPanel()...{
Java实现类Windows导航栏Java实现类Windows导航栏
if(isSelected())...{
Java实现类Windows导航栏label.setText(
""+_title);
Java实现类Windows导航栏add(panel,BorderLayout.CENTER);
Java实现类Windows导航栏setPreferredSize(
newDimension(getSize().width,
Java实现类Windows导航栏label.getSize().height
+panel.getSize().height));
Java实现类Windows导航栏Java实现类Windows导航栏}
else...{
Java实现类Windows导航栏label.setText(
""+_title);
Java实现类Windows导航栏remove(panel);
Java实现类Windows导航栏setPreferredSize(
newDimension(getSize().width,
Java实现类Windows导航栏label.getSize().height));
Java实现类Windows导航栏}

Java实现类Windows导航栏revalidate();
Java实现类Windows导航栏}

Java实现类Windows导航栏
Java实现类Windows导航栏
protectedArrayListaccordionListenerList=newArrayList();
Java实现类Windows导航栏
Java实现类Windows导航栏Java实现类Windows导航栏
publicvoidaddaccordionListener(accordionListenerlistener)...{
Java实现类Windows导航栏
if(!accordionListenerList.contains(listener))
Java实现类Windows导航栏accordionListenerList.add(listener);
Java实现类Windows导航栏}

Java实现类Windows导航栏
Java实现类Windows导航栏Java实现类Windows导航栏
publicvoidremoveaccordionListener(accordionListenerlistener)...{
Java实现类Windows导航栏accordionListenerList.remove(listener);
Java实现类Windows导航栏}

Java实现类Windows导航栏
Java实现类Windows导航栏Java实现类Windows导航栏
publicvoidfireaccordionEvent()...{
Java实现类Windows导航栏Listlist
=(List)accordionListenerList.clone();
Java实现类Windows导航栏Iteratorit
=list.iterator();
Java实现类Windows导航栏accordionEvente
=newaccordionEvent(this);
Java实现类Windows导航栏Java实现类Windows导航栏
while(it.hasNext())...{
Java实现类Windows导航栏accordionListenerlistener
=(accordionListener)it.next();
Java实现类Windows导航栏listener.accordionStateChanged(e);
Java实现类Windows导航栏}

Java实现类Windows导航栏}

Java实现类Windows导航栏}

Java实现类Windows导航栏


效果图:
Java实现类Windows导航栏

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-10-14
  • 2021-09-21
  • 2022-12-23
  • 2021-09-28
  • 2021-12-25
猜你喜欢
  • 2021-12-05
  • 2021-11-29
  • 2021-11-03
相关资源
相似解决方案