如何创建幻灯片

我尝试更改面板的布局,但是存在问题,因为当我更改布局时,组件保留在面板上并且有许多袋子。

import java.awt.LayoutManager; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; public class LayoutTest extends JFrame { public LayoutTest() { initComponents(); } private void initComponents() { jPanel1 = new javax.swing.JPanel(); jButton = new JButton(); jPanel1.setBackground(new java.awt.Color(204, 204, 255)); jPanel1.setBorder(javax.swing.BorderFactory.createEtchedBorder()); jButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { LayoutManager tempGroupLayout = jPanel1.getLayout(); jPanel1.setLayout(layoutManager2); jPanel1.getParent().validate(); layoutManager = layoutManager2; layoutManager2 = tempGroupLayout; } }); javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1); jPanel1.setLayout(jPanel1Layout); jPanel1Layout.setHorizontalGroup( jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING). addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup(). addContainerGap(286, Short.MAX_VALUE). addComponent(jButton, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))); jPanel1Layout.setVerticalGroup( jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING). addComponent(jButton, javax.swing.GroupLayout.DEFAULT_SIZE, 442, Short.MAX_VALUE)); layoutManager = jPanel1Layout; javax.swing.GroupLayout jPanel1Layout2 = new javax.swing.GroupLayout(jPanel1); jPanel1Layout2.setHorizontalGroup( jPanel1Layout2.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING). addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout2.createSequentialGroup(). addComponent(jButton, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))); jPanel1Layout2.setVerticalGroup( jPanel1Layout2.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING). addComponent(jButton, javax.swing.GroupLayout.DEFAULT_SIZE, 442, Short.MAX_VALUE)); layoutManager2 = jPanel1Layout2; getContentPane().add(jPanel1); pack(); } public static void main(String args[]) { java.awt.EventQueue.invokeLater(new Runnable() { public void run() { new LayoutTest().setVisible(true); } }); } private JButton jButton; private JPanel jPanel1; private LayoutManager layoutManager; private LayoutManager layoutManager2; 

}

看看JSplitPane组件。 你可以嵌套一些。

 splitPane.addPropertyChangeListener(JSplitPane.DIVIDER_LOCATION_PROPERTY, new SplitPanePropertyChangeListener()); private class SplitPanePropertyChangeListener implements PropertyChangeListener { public void propertyChange(java.beans.PropertyChangeEvent evt) { int nv = ((Integer) evt.getNewValue()).intValue(); if (nv == 1) { //adjust this depending on your divider location setSize(new Dimension(800, 560)); } if (nv == 221) { //adjust this depending on your divider location setSize(new Dimension(1000, 560)); } } } 

检查上面的代码并根据您的要求对其进行重新设计