Java手风琴效果
Java中实现手风琴效果可以使用Swing组件和动画效果来实现。以下是一个简单的示例:
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class AccordionExample {
public static void main(String[] args) {
JFrame frame = new JFrame("Accordion Example");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLayout(new BorderLayout());
JPanel accordionPanel = new JPanel();
accordionPanel.setLayout(new BoxLayout(accordionPanel, BoxLayout.Y_AXIS));
JButton button1 = new JButton("Section 1");
JButton button2 = new JButton("Section 2");
JButton button3 = new JButton("Section 3");
JPanel contentPanel1 = new JPanel();
contentPanel1.setBackground(Color.RED);
contentPanel1.setPreferredSize(new Dimension(200, 100));
JPanel contentPanel2 = new JPanel();
contentPanel2.setBackground(Color.GREEN);
contentPanel2.setPreferredSize(new Dimension(200, 100));
JPanel contentPanel3 = new JPanel();
contentPanel3.setBackground(Color.BLUE);
contentPanel3.setPreferredSize(new Dimension(200, 100));
button1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
contentPanel1.setVisible(!contentPanel1.isVisible());
frame.pack();
}
});
button2.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
contentPanel2.setVisible(!contentPanel2.isVisible());
frame.pack();
}
});
button3.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
contentPanel3.setVisible(!contentPanel3.isVisible());
frame.pack();
}
});
accordionPanel.add(button1);
accordionPanel.add(contentPanel1);
accordionPanel.add(button2);
accordionPanel.add(contentPanel2);
accordionPanel.add(button3);
accordionPanel.add(contentPanel3);
frame.add(accordionPanel, BorderLayout.CENTER);
frame.pack();
frame.setVisible(true);
}
}
在上面的示例中,使用了JFrame作为主窗口,并在其中创建了一个JPanel作为手风琴面板。手风琴面板使用BoxLayout进行布局,并包含了多个按钮和内容面板。
每个按钮都绑定了一个ActionListener,当按钮被点击时,对应的内容面板的可见性将被切换,并调用frame.pack()来重新计算并调整窗口大小以适应内容的更改。
这只是一个简单的手风琴效果示例,你可以根据需要进行自定义和扩展
原文地址: https://www.cveoy.top/t/topic/iRC5 著作权归作者所有。请勿转载和采集!