我试着做了一个
主界面:
import java.awt.*;import javax.swing.*;
import dandy.swing.JPuckerMenuPanel;/**
* <p>折叠菜单</p>
*
* <p>Like QQ</p>
*
* <p>Copyright: Copyright (c) 2004</p>
*
* @Dandy
* @version 0.1
* 2004.12.10.1
*/public class Pucker extends JFrame {
private FlowLayout flowLayout1 = new FlowLayout();
private JPuckerMenuPanel jPuckerMenuPanel1 = new JPuckerMenuPanel();
private JPuckerMenuPanel jPuckerMenuPanel2 = new JPuckerMenuPanel(); public Pucker() {
try {
this.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
jbInit();
} catch (Exception exception) {
exception.printStackTrace();
}
} private void jbInit() throws Exception {
setSize( 200,500 );
getContentPane().setLayout(flowLayout1);
jPuckerMenuPanel1.setButtonName( "QQ好友" );
jPuckerMenuPanel1.addJComponent( new JButton( "Dandy" ) );
jPuckerMenuPanel2.setButtonName( "手机好友" );
this.setResizable(false);
this.getContentPane().add(jPuckerMenuPanel1);
this.getContentPane().add(jPuckerMenuPanel2);
} public static void main(String[] args) {
Pucker pucker = new Pucker();
pucker.show();
}
}
主界面:
import java.awt.*;import javax.swing.*;
import dandy.swing.JPuckerMenuPanel;/**
* <p>折叠菜单</p>
*
* <p>Like QQ</p>
*
* <p>Copyright: Copyright (c) 2004</p>
*
* @Dandy
* @version 0.1
* 2004.12.10.1
*/public class Pucker extends JFrame {
private FlowLayout flowLayout1 = new FlowLayout();
private JPuckerMenuPanel jPuckerMenuPanel1 = new JPuckerMenuPanel();
private JPuckerMenuPanel jPuckerMenuPanel2 = new JPuckerMenuPanel(); public Pucker() {
try {
this.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
jbInit();
} catch (Exception exception) {
exception.printStackTrace();
}
} private void jbInit() throws Exception {
setSize( 200,500 );
getContentPane().setLayout(flowLayout1);
jPuckerMenuPanel1.setButtonName( "QQ好友" );
jPuckerMenuPanel1.addJComponent( new JButton( "Dandy" ) );
jPuckerMenuPanel2.setButtonName( "手机好友" );
this.setResizable(false);
this.getContentPane().add(jPuckerMenuPanel1);
this.getContentPane().add(jPuckerMenuPanel2);
} public static void main(String[] args) {
Pucker pucker = new Pucker();
pucker.show();
}
}
package dandy.swing;import javax.swing.*;
import java.awt.BorderLayout;
import java.awt.*;
import java.awt.event.*;/**
* <p>可折叠菜单</p>
*
* <p>Like QQ</p>
*
* <p>Copyright: Copyright (c) 2004</p>
*
* @Dandy
* @version 0.1
* 2004.12.10.1
*/public class JPuckerMenuPanel extends JPanel {
private BorderLayout borderLayout = new BorderLayout();
private JToggleButton jToggleButtonPuker = new JToggleButton();
private JPanel jPanelMain = new JPanel(); public JPuckerMenuPanel() {
try {
jbInit();
} catch (Exception ex) {
ex.printStackTrace();
}
} public JPuckerMenuPanel( String buttonName ) {
try {
jbInit();
} catch (Exception ex) {
ex.printStackTrace();
}
} private void jbInit() throws Exception {
this.setLayout(borderLayout);
jToggleButtonPuker.setText("jToggleButton1");
jToggleButtonPuker.setPreferredSize( new Dimension( 150,23 ) );
jToggleButtonPuker.addActionListener( new ButtonEventHandler(this) );
jPanelMain.setBackground(UIManager.getColor("window"));
jPanelMain.setVisible( false );
this.add(jToggleButtonPuker, java.awt.BorderLayout.NORTH);
this.add(jPanelMain, java.awt.BorderLayout.CENTER);
} public void setButtonName( String name ) {
jToggleButtonPuker.setText(name);
}
public void addJComponent( JComponent jComponent ) {
jPanelMain.add( jComponent );
} private class ButtonEventHandler implements ActionListener {
JPuckerMenuPanel adaptee;
public ButtonEventHandler(JPuckerMenuPanel adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed( ActionEvent e ) {
if( jToggleButtonPuker.isSelected() )
jPanelMain.setVisible(true);
else
jPanelMain.setVisible(false);
}
}
}